"The more you rely on other people's code the less you are the master of your own fate"
To head it off at the pass, comparison with shared libraries and the like are unfair.
A typical library has one, usually simple, well documented demarcation point between your code and it. A framework is a global construct where you interact with the filesystem, the combined sum of all code in the entire framework (most of which you won't understand unless you're a dev on the same framework...) AND everything else in your app.
Using a framework is often like writing one big app all global variables all one giant function. Everything interacts with everything else and when it works thats nice, but when it doesn't...
Finally a framework is the ultimate SPOF single point of failure. Don't like the play! framework router? tough cookies do write your own entire framework or forklift upgrade to Lift. On the other hand if library implementation #7 of a base64 decoder doesn't work or you hate it, try ten other implementations or write your own, its just one small-ish function not a giant overbearing framework.
Finally don't throw out the baby with the bathwater. If the syntactic sugar of MVC design works for your app, run with it. You don't need a framework to tell you how to design to split your views and controllers and models. Or if you're just in love with the template engine component of a framework, go for just a template engine.
Someone should write the framework to rule them all which supports multiple plugins. An infrastructure.
To head it off at the pass, comparison with shared libraries and the like are unfair.
A typical library has one, usually simple, well documented demarcation point between your code and it. A framework is a global construct where you interact with the filesystem, the combined sum of all code in the entire framework (most of which you won't understand unless you're a dev on the same framework...) AND everything else in your app.
Using a framework is often like writing one big app all global variables all one giant function. Everything interacts with everything else and when it works thats nice, but when it doesn't...
Finally a framework is the ultimate SPOF single point of failure. Don't like the play! framework router? tough cookies do write your own entire framework or forklift upgrade to Lift. On the other hand if library implementation #7 of a base64 decoder doesn't work or you hate it, try ten other implementations or write your own, its just one small-ish function not a giant overbearing framework.
Finally don't throw out the baby with the bathwater. If the syntactic sugar of MVC design works for your app, run with it. You don't need a framework to tell you how to design to split your views and controllers and models. Or if you're just in love with the template engine component of a framework, go for just a template engine.
Someone should write the framework to rule them all which supports multiple plugins. An infrastructure.