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.

"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."

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.

Related Articles

"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.

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.

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."