This post originated from an RSS feed registered with Java Buzz
by Norman Richards.
Original Post: How JEE was Saved
Feed Title: Orb [norman richards]
Feed URL: http://members.capmac.org/~orb/blog.cgi/tech/java?flav=rss
Feed Description: Monkey number 312,978,199
It's interesting to watch people's reactions to EJB3. Everyone who uses it seems to love it, but there are always the skeptics. I guess I can understand where Brandon is coming from. I went through a very similar set of emotions when I realized that XDoclet was really being replaced by annotations, or perhaps more appropriately, when I realized that metadata with runtime interpretation was better simply more powerful than static code generation.
The comparison of XDoclet to annotations isn't perfectly analgous to spring/hibernate to EJB3, but it isn't that far off either. In both cases you have very powerful technologies developed to solve J2EE problems. And, in both cases, you have the standards-based technologies ultimately returning to pick away the nice parts of those technologies and integrate them into the standard stack.
Brandon's argument though isn't about technology, it's about process. Essentially, he's arguing for Spring by arguing that we don't need standards based technologies. Look at AJAX. Having 15,961.02 different AJAX frameworks is clearly a success, right? We should be modeling the brave Ajaxian framework utopia, right?
While I think it's great that we have a great diversity of AJAX frameworks, ultimately AJAX is a bit too wild west now. Good ideas are slowly bubbling up, and I hope we'll soon see compelling AJAX technologies make it into standards-based technologies. But make no mistake, the ultimate goal should be standards-based technologies that rank and file web developers can learn as part of their core skill set.
Now that EJB3 is out, I see very little call for pure Hibernate applications or Spring-based applications. They've done their job in paving the way for EJB3. Now it's time to take those great ideas and move our focus onto other parts of the stack. Technologies like Seam, Facelets and Avatar are innovating in places where the I think JEE stack needs the most help. You might have your own ideas on what is needed, but that is kind of the whole point of innovation.
I do feel for the Spring guys who feel that they've pioneered all this stuff and now aren't invited to the party, but Java is just better off with a standards-based technologies. We've lived so long with the benefits of standards that it's easy to overlook just how valuable they are. I don't see as how this should truly worry Spring developers. I think Spring will soon be a complete EJB3 container to allow people to move back towards standards. However, Spring is a nice foundation on which to develop surrounding technologies and continue the JEE innovation. It can even continue to innovate in the core technologies and help make EJB3 even better. Or, we can sit around and whine about how unfair life is. I somehow think we'll see much more of the former than the latter, and Java will be much better off.