December 6th, 2008
Framework is incomplete, though concrete, driving solution to recurring high-value problem. To elaborate more, let me go through properties of framework one by one.
1. Framework is concrete.
In other words, framework has physical components - usually files usable during production.
Java and .Net frameworks are set of concrete components like dlls, arjs, exes etc.
GoF Design Patterns are not framework as they are practical design ideas. It is up to you to apply those ideas to context. Design patterns are logical ideas which you convert to concrete software in a project, whereas framework is concrete already.
2. Framework is incomplete.
Framework itself is not usable on its own. Framework does leave some fill-in-the-blanks for its user.
If you deploy Java/.Net framework to a end-user computer, it does not add any usability value unless you write your own code to use Java/.Net and then deploy that code in executable form along with framework.
More powerful is framework, less complex are fill-in-the-blanks and more efforts in learning to use framework.
Frameworks pose trade-off challenge between learning curve and saving-coding-time.
3. Framework drives solution.
Framework dictates how you do fill-in-the-blanks. Framework dictates overall architecture of complete specific solution.
You have to follow ASP.Net rules, if you have to use ASP.Net framework to build a website.
4. Framework helps solving recurring problems.
That just means that framework are very much reusable as they are helpful in many recurring problem contexts. This also implies commercial case for building a framework for set of problem contexts.
5. Framework deal with high-valued problems.
How to add two number is a problem. Solution is a routine in a form of library. But then it is not a framework as problem is not high-valued.
Providing object persistence is high-valued problem and you can build framework for same. Note that value is relative term.
If you look at these properties, it does not make sense to try to solve any specific non-trivial problem without help from a already existing and proven framework!
Posted in Tech | 11 Comments »