Java: Meta-Frameworks

Duncan Mills recently posted an excellent article on the JDJ website titled "J2EE vs .NET: Where Is Application Development Going?". In the article he talks about the rise of meta-frameworks (frameworks that pull together individual frameworks into a single API/model) as the next trend in application development. The Spring Framework gets some good press here since it matches Duncan's definition of meta-framework to a tee.

Why meta-frameworks? Duncan has some great points including this:
This then is the major carrot that meta-frameworks can offer to enterprise development shops - stability, but without stagnation. A meta-framework has to evolve and offer it's consumers the latest and greatest whilst at the same time maintaining a rock solid foundation for existing applications.
I think the isolation from the underlying APIs is a nice benefit of meta-frameworks. However, I also think that after the associated learning curve, a good meta-framework can speed development of good development practices. In fact, sometimes they encapsulate best practices. For example, with Spring you don't have to write Factory classes/methods any more. So, it makes it easier and faster to write loosely coupled code with all the benefits of the Factory pattern.

As I mentioned in my previous post, I just finished the design phase of a new project. On this project, I'm specifying that we use Spring. I'm excited to start the development phase and experience a real world example of a clean architecture built around Spring.

No comments: