RealTime IT News

Is Java EE's Complexity Its Worst Enemy?

UPDATED: Java Platform, Enterprise Edition is such an unwieldy beast that developers are moving away from it, cherry picking the few pieces they need or looking at open source alternatives. And if the trend continues, Java EE could die on the vine.

That's the conclusion of a report from The Burton Group, written by an analyst who has authored three books on Java 2 Enterprise Edition (its old brand name). "So it's not like I want this to be the case," joked Richard Monson-Haefel, senior analyst for Burton and author of the report.

Java EE 5, is a comprehensive collection of Java services and middleware for building large-scale, distributed enterprise applications. The price of defining such a comprehensive platform has been overt complexity. The platform has too many fine-grain APIs too deal with, making it more work than it's worth, posits Monson-Haefel.

"Some parts of Java EE are really good, like the servlets and JDBC," he said. "But when you put them together as a collection, the whole is not greater than the sum of its parts. Sun exposes so much complexity at the same time, so even if they aren't using the entire platform, developers have to be familiar with a major portion of it to use it effectively."

Monson-Haefel wrote a report two years ago warning that J2EE faced multiple threats and one of them was the definition of the spec itself. He said then that Sun had to make the platform much simpler to save it from its own complexity.

Java EE 5, released last month, is better than previous releases but remains very complex, to the point that it's driving people away from the platform, he said. People are either moving to new platforms like Microsoft .NET, Ruby on Rails, Spring and Tomcat, or they are cherry picking the pieces they need.

The problem is not entirely Sun's responsibility, said Monson-Haefel. The Java Community Process (JCP), which is used to develop the Java platform, moves a lot faster than most standards bodies, but can't compete with the more nimble open source method of development.

Sun Microsystems was closed for the Fourth of July holiday week and couldn't be reached for comment.

"Other frameworks like Ruby on Rails are gaining traction too fast and the JCP moves too slowly in order to accommodate all the changes necessary, which is a complete rewrite of the platform," he said. Sun should simply offer the various pieces of Java EE 5, like Enterprise JavaBeans or Java Servlets, a la carte, so people can get just the pieces they need.

"They should retire Java EE and work with the open source community to come up with a better solution," said Monson-Haefel. "The Java solution is so bad people are willing to go their own way and cobble together their own framework to avoid the complexity of Java EE."

Andrew Binstock, Java programmer and principal analyst with Pacific Data Works, LLC, thinks Monson-Haefel is correct, to a point.

"Their point of view is that Java EE is basically at its apex and is going to slowly start a long decline as a result of the advent of Ruby on Rails and Spring and so forth. That may be true but I think that decline will happen extremely slowly," he said.

First, there's a huge amount of time and money invested in enterprise Java, and that won't go away overnight. But more important is the fact that these new frameworks aren't enterprise scale.

"Those are great solutions for small sites, but as they work their way up the enterprise, they will need new features, and guess what? With new features comes complexity," said Binstock.

True enterprise scale software is complex and requires a level of complexity in the framework these applications will run on. You can't make a framework large, comprehensive, and simple, said Binstock. You can only reduce complexity but it will always be there.

"Java EE 5 has done a very good job of reducing the level of complexity, but it's still complex, and that's how it's got to be."