Anyone can write a Framework
"Anyone can play guitar", says Radiohead, and go further by (almost) saying that just playing a guitar doesn't make you Jim Morrison.
Writing a framework is more than just having a good idea, just like playing well on a guitar is not enough to become the next Jim Morrison: The framework has to be unique. I guess there's an exception to that rule, which is when you write a framework for personal or corporate-internal use.
A framework, not being unique in any way, will eventually fail because of lack of interest. When people aren't interested in your framework, when no-one is using it, the writer of the framework (usually You) loses motivation to continue maintaining it and eventually drops it. Since no-one used it in the first place, no-one takes over the code and the framework "dies".
So how do you determine if the framework you write is unique? I could name a few that pop to my head:
- Something completely new
- Integration of components
- Substantial ease of use
Something completely new
I am one of the more sceptic people you would find about writing completely new things, but since someone had to write the first framework of anything, then you still have a chance. For example, want to write a framework that provide transparent data storage for your data classes? Sure, Hibername and Cayenne have done that first, but someone had to be the first to write them, right? If you have a new idea, and can't find anyone else doing it yet (see later about that), then go for it! The world needs people like you.Substantial ease of use
Sometimes, a framework is provided and is heavily cumbersome. You find yourself writing the same code, knowing that others have written that code before you, to use the provided framework, and you just know how to write something generic enough for everyone to use. This can be done by writing a sort of a toolkit which:- Provides a set of implemented classes for known interfaces
- Provides utility classes which call different parts of the underlying framework at a specific, well-known sequence
- Provides code generators that work externally to the framework to supply its demands
Comments (1)