Frameworks get a bad wrap because everyone has a story about how they were on a project that tried to build a framework and it spiraled out of control and the whole project failed and everyone died a firey death. I contend frameworks fail for pretty much the same reason any other software project fails. If it's not done properly it will fail. If it's done properly yet get a huge ROI.
From dictionary.com:
frame·work Pronunciation Key (frmwûrk) n. 1. A structure for supporting or enclosing something else, especially a skeletal support used as the basis for something being constructed. 2. An external work platform; a scaffold. 3. A fundamental structure, as for a written work. 4. A set of assumptions, concepts, values, and practices that constitutes a way of viewing reality.
There's no reason a framework must apply accross multiple applications, there's no reason for it to be OO based, and there's no reason for it to be complete.
My definition of a framework in the context of programming would be something like:
The systemization of a domain expressed in code to solve a particular class of problems in a particular ecology.
The framework could be large or small. It could work in one application or many applications. The primary point is a framework allows developers to solve their problem in terms of the framework. If done well it can provide a lot of leverage (ROI). A framework doesn't solve all problems in every application.
They keys are: 1. Systemization is an experienced based process otherwise the probablity of success is reduced greatly. Experience comes from working on the same or similar problem in multiple projects. It never stops which is why a framework is never perfect and is never done. Systemization is a key to success in other fields and it can be a key in software.
2. The restriction of solving a particular class of problems in a domain is related to notion of ecology. A domain may be very large and have many niches. Solutions (organisms, frameworks, etc) survive best in the niche for which they evolved. Move to a different ecology and the solution will probably die. By being general you weaken yourself against other opponents. It's not realistic to expect a framework to thrive in many niches across many domains.
3. Every project is an ecology. The framework evolves in that ecology and the better adapted it is to the ecology the more chance it has to live and reproduce.
4. As in nature frameworks can catalyze each other to build a much richer world. As in nature there isn't a single hand in charge of creation and coordination, they evolve together in response too each other and to changes in the environement.

Recent comments
23 weeks 1 day ago