The enterprise variant of Java faced off against the Spring Framework this week in a debate over which one developers should use for Java application development.
A panel of experts discussing Java EE (Java Platform, Enterprise Edition) got off on a bit of a tangent Wednesday, pitting the formal Java EE standard platform against the alternative Spring Framework, which has been downloaded several million times. The panel session took place at the JavaOne conference.
"I would never put Spring in [with] Java EE 6 because it's too much overlap," said Adam Bien, a consultant, author, and speaker. Complexities could result such as use of both Spring and Java EE annotations, he said. "For most projects, my personal opinion is separate things. Either Spring or Java EE 6," he said. Developers, however, could use Spring utilities on top of EE 6, Bien said.
But Reza Rahman, lead engineer at Caucho Technology, stressed competition amongst the two technology sets. "Java EE needs Spring as much as Spring needs Java EE," Rahman said. Fundamental characteristics of Java EE are type safety and Java-centric configuration, said Rahman. Spring offers a different mindset, developers must tell a container on an ad hoc basis what services are desired and how they will be delivered, he explained.
Interviewed afterward, Rahman cited Spring as having advantages in lower level integrations for its container over what Java EE now supports. Java EE, however, has ease of use benefits and requires less configuration, he said. "Things just work out of the box," he said.
But the two technologies are not mutually exclusive. "I think people should take very seriously the possibility of using them together," Rahman said.
Bien said he did not think Spring and Java EE 6 will work together in mission critical projects because users would have to buy support services from two different companies who "probably don't like each other."
Panelists also briefly discussed ambitions for a planned Java EE 7 release. Modularity has been cited as an improvement planned for the EE 7 specification. But modularity "can't be the only value proposition of Java EE 7," Rahman said. "That's far too little." Developers of the specification need to be careful to not make modularity too complex, he stressed.
Rahman cited other possible improvements including better alignment with CGI (Common Gateway Interface), a higher level security API, and better compatibility between HTML5 and JavaServer Faces. "Maybe what could be the most significant feature of EE 7 would be to open up the JCP (Java Community Process)," said panelist Emmanuel Bernard, principal software engineer at JBoss. His suggestion drew a round of applause from the audience.
A debate has been ongoing in the industry about whether the JCP should continue to be dominated by a single vendor, in this case Oracle. Previously, Sun Microsystems led the JCP. Sun was acquired by Oracle early this year.
On Thursday, JavaOne featured whiz-bang technologies based on Java, such as the Livescribe "smartpen," which offers such capabilities as speech synthesis. "This is a computer. It's a fully multimodal computer. We call it a smartpen," said Jim Margraff, Livescribe chairman and CEO.
Inventor and futurist Ray Kurzweil, meanwhile, gave a presentation on the growth of embedded technology and how it is spreading to new realms. Kurzweil predicted, "There will be thousands, ultimately millions, of devices running Java inside your body."