Panelists at the conference debate merits of the rival programming technologies -- and the merits of using them together

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 in San Francisco.

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

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.

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