Also, the Google Web Toolkit has been integrated with Spring Roo, a tool that generates Spring code that conforms to preset requirements in performance security or other aspects. "Now Roo can generate a rich Internet client application using the Google Web Toolkit," Abrams said. Lastly the, Google Speed Tracer, a performance analyzer found in the Chrome browser, has been bundled into Spring Insight, which is SpringSource Tool Suite's own performance analyzer.
While VMware touts Spring chiefly as a development component for cloud-based applications, Johnson noted that it has achieved popularity as an alternative to Java Enterprise Edition's EJB (Enterprise Java Beans) for enterprise application development. The company claims that 2.5 million developers use the Spring framework.
"The open-source community in general has taken the baton from the Oracle technologists. Spring overtook EJB several years ago and continues to pull ahead," Johnson said.
Red Hat engineers, however, have argued that the latest version of Java Enterprise Edition, JEE 6, eliminates the need for frameworks such as Spring. In particular, it features the inclusion of JSR (Java Specification Requests) 299, a specification that covers how to handle dependency injection, a set of much-needed procedures that allow software components to interact. One of Spring's chief features is that it handles context and dependency injection.
To boost his argument in his blog post, Badani pointed to a write-up from fellow Red Hat employee, and JBoss core developer, Lincoln Baxter, which discussed the process of migrating an application from Spring to Java EE 6.
"It's no secret that the Spring Framework cropped up as a lightweight alternative and abstraction to programming for Java EE because the perception was that Java EE had become cumbersome and overly complex," Baxter wrote. "When it comes right down to it, using Java EE can be even simpler than using Spring, and take much less time. You just have to find the right guides and the right documentation."
Johnson admitted that Java EE 6 has borrowed some ideas from Spring, and, in general, is easier to use than the previous versions, whose complexities may have driven developers to Spring. But Java EE 6 still doesn't have the full range of features that Spring does, such as a full-fledged Web framework and productivity boosters like Roo.
Nor is it widely implemented across application servers, Johnson argued. While the next version of the Red Hat JBoss application server will support Java EE 6, IBM's Websphere does not support it, and the open-source Tomcat server only supports a subset of Java EE 6 functionality.
"I don't think comparing Java EE and the Spring programming models is an apples-to-apples comparison, and, secondly, Java EE as an alternative to Spring is just not viable in the vast majority of production deployments today," Johnson said.