Recently I ran into an interesting blog post, where Bob Lee is trying to understand what “s so good about Spring Framework comparing with J2EE. This post has sparkled hot discussions in different online forums as if lots of people where quietly waiting for someone to start bashing Spring.
I did not work with Spring on a real-world project, but I like the ideas (implemented in Spring) such as dependency injection, use of AOP, ability to test POJOs, caching, DAO, etc. I “m not sure though why the word “lightweight rdquo; is often associated with Spring as well as other frameworks. Is Hibernate so light comparing to EJB? In my opinion, iBatis is lighter than Hibernate and SQL/JDBC combo is lighter than everything else. But for some reason, writing SQL is not a fashionable activity any longer. These days some Java developers prefer spending most of their time trying to get afloat in a steadily growing XML code base of their projects performing mapping between classes and database tables.
But if you think about a Java community as a small model of a real world, with a fierce competition, big and small guys, smart people who are trying to invent new things and make the world a better place to code, it seems that all these multiple Java frameworks and libraries will eventually be swallowed up by one or another Java or J2EE API. Is this a bad thing? I do not think so.
Remember the excellent library of concurrency utilities written by Doug Lea? This library was tested and polished during its independent phase of life, and now it “s a part of the core Java. It comfortably resides in java.util.concurrent package. Log4J was reincarnated in the java.util.loggfing package. Popularity of XDoclets help in spreading of Java annotations. Hibernate leads us to EJB 3.0. AOP will also find it “s place in new EJBs.
Java developers like myself can enjoy the never ending stream of new ideas, techniques, technologies, etc. Creators of the frameworks are visionaries, luminaries, and definite leaders of Java community. Spring, Hibernate, iBatis, Abc, Xyz hellip; will always play an important role in Java evolution, but most of them eventually will be pushed away from the enterprise landscape into the hard-boiling J2EE pot.
On the other hand, smaller businesses will definitely use various frameworks, but these decisions will be mostly driven be preferences of local Java architects.
Another somewhat related hot online discussion was sparkled by the IndicThreads interview with the creator of Rails framework, David Heinemeier Hansson. As he put it, “Rails is optimized for programmer happiness… rdquo; and “Let Java retire from the spotlight of web applications in dignity… rdquo;. Both statements are way too strong. I “m sure that Ruby and Rails will increase the level of happiness of some people, but as of today, I’m pretty happy with Java, and I “m sure it “ll stay this way for quite a long time. As to Web applications, in my opinion, most of the current Web application written for businesses, should not have been Web applications in the first place. But Java feels at home in this area, and will remain one of the popular means of programming for the Web.