What's Wrong With JavaEE 6?
Members of the Java Community Process (JCP) voted to approve the JavaEE 6 specification this week, concluding two years of discussions and development. Yet even after JCP members' approval for JSR-316, the Java Specification Request (JSR) that defines the new Java spec, the release still has its detractors.
Work on JSR-316 began in 2007 with a vote to start the engineering work that would formalize the final specification. The end result, JavaEE 6, introduces a number of new constructs to Java. Among those additions is the concept of profiles, which is intended to help make Java easier to use and more lightweight.
Still, critics contend that developers want an even lighter-weight Java framework.
"There are moves in the right direction, such as the profile concept, but overall we're disappointed," JCP member and Spring Founder Rod Johnson told InternetNews.com. "We don't think it followed up on the initial goals that we had endorsed. Once more, we see unproven technologies being rushed into the platform, despite abundant proof that attempts to innovate by committee don't work. The smallest profile still contains more than most developers choose to use."
Johnson's disfavor with JavaEE 6 is not new. Johnson's company SpringSource develops the Spring lightweight Java framework as well as providing commercial support for the popular Apache Tomcat server. VMware acquired SpringSource earlier this year.
On the other hand, there is Red Hat. The Linux vendor is in favor of JavaEE 6 even though it sees use cases where a more lightweight Java approach, like the one taken by Tomcat, makes sense.
"With Tomcat, what you find is people end up building their own application server on top of Tomcat -- as their app grows in sophistication, they need to add transactions, caching, high availability," Rich Sharples, Red Hat's director of middleware product management, told InternetNews.com. "Not everyone wants or has the expertise to maintain their own application server infrastructure."
For Sharples, the JavaEE 6 profiles approach is somewhere between simple Tomcat and a full-blown JavaEE.
"It will avoid people starting with the lowest common denominator -- Tomcat -- and building capabilities up from there," he said. "I personally think the Web Profile is going to be very compelling for a very broad range of workloads."
Red Hat plans on having a JavaEE 6-compliant community release ready by mid-2010, after which a commercial enterprise release would follow.
The company hasn't been waiting for the EE 6 specification to be finalized, however. Sharples noted that Red Hat already include some of the EE 6 features in its current JBoss Enterprise release.
Likewise, Java leader Sun Microsystems has had some JavaEE 6 features on the market for over a year as well, courtesy of its GlassFish Enterprise Server v3 Prelude release.
Even Spring's Johnson said his company would support some JavaEE 6 components.
"We will continue to do what we've always done and embrace good technologies," Johnson said. "Spring Framework also already implements the new JSR-330 specification for dependency injection. We'll continue to integrate with a variety of Java EE technologies that benefit our community, although we don't feel equally enthusiastic about all the parts of EE."
The heft of the new framework isn't the only JavaEE development issue about which Johnson and others have voiced concerns.
There's also the JCP itself. Johnson said he would like to see a more open process, which some are optimistic could happen following Oracle's pending purchase of Sun, which now leads JCP governance.
Oracle has been trying to complete its acquisition of Sun for much of 2009.
"The future of the JCP partly depends on what happens to Sun," Johnson said. "But it's important to make a difference between 'enterprise Java' and Java EE. Enterprise Java is very healthy and much broader than the Java EE specifications."
Johnson reiterated the fact that many Java production deployments today are on Tomcat, which is not a full JavaEE implementation. From a big-picture perspective, Johnson now sees the industry at an inflection point.
"By the time another version of EE is released, the Java landscape will be different from the present scenario in which applications tend to be written to work with relational databases inside an enterprise," Johnson said. "We're seeing more different data stores, and increasing cloud deployment. It's no longer about trying to get right the familiar problems we've been working with for the last 10 years, but enabling new architectures."