SAN FRANCISCO—The newly installed CEO of Sun Microsystems, Jonathan Schwartz, and the newly reinstalledhead of Sun Software, Rich Green, took the stage Tuesday morning to officially open the 11th annual JavaOne with plenty for this open source-loving community to dig its teeth into. But on the one topic everyone is salivating for the most, they offered just a whiff of a bounty yet to come.
Schwartz and Green didn't bother to evade the big question on everyone's mind—will Sun ever open source Java?—but fell slightly short of making a definitive announcement: "It's not a question of whether [Sun will open source Java]," said Green, "but a question of how." Green and Schwartz emphasized the difficult issue of a forking effect that could easily result from a fully open sourced Java platform—an issue that Sun has cited for its Java balk for two years, ever since open source luminaries and IBM executive Rod Smith began to lobby Sun publicly to concede Java to open source. "Compatibility will remain the priority and then we can provide [Java] to all," said Green. To back up the point, Green invited a representative from each company that was involved in the Java EE 5 working group on stage, who then joined in a prearranged bit, revealing a banner that read: "Compatibility Matters."
Green appealed to the audience to join the JCP in the hopes that a larger base of community involvement would help Sun get more quickly to a point of resolving the fears of breaking compatibility. In a press conference after the general session, Schwartz rejected the implication that open sourcing Java would detract from the company's financial disposition, saying that open source provides fewer barriers to creating revenue. "Don't mistake free software for lower revenue. Free software is pro market and pro opportunity," said Schwartz.
While attendees will have to wait some time for open source Java, executives proudly touted an array of other projects that have been parceled out to open source.
- Sun Java Studio Creator
- Sun Java Message System (JMS)
- Web Services Interoperability (nee Project Tango)
- The BPEL Engine
- The Java System Portal Server
While Schwartz confirmed Sun's commitment to the open source community during Tuesday's keynote, he also threw the mobile development community into the mix, inviting Motorola CEO (and former Sun President) Ed Zander to the stage. Zander in turn confirmed Motorola's commitment to the Java/Linux axis. "The Internet is going mobile," Zander said, "...and I can't think of a better [service delivery platform] than Java."
|Everything about Java EE 5 reduces complexity for the developer, helping Java get closer to the promise of appealing to a broader group of developers and further away from the age-old conundrum that Java is too complicated for developers who aren't interested—or don't have time for—underlying architectural concerns.
Schwartz cited Motorola's projected 200 million phones shipped this year—outselling PC sales—as supporting evidence that the future of computing belongs to mobile. With the release of new standards like JSR 209 alleviating some of the problems in coding for multiple devices, mobile carriers are announcing toolkits that promise to bring Java mobile developers closer than ever to Java's holy grail of "write once, run anywhere." To that end, Zander requested that Schwartz help make sure Java "stays unified for mobile." The comment echoed concerns that open sourcing Java will result in forking and breaking compatibility.
Java EE 5 Breakdown
Sun's primary accomplishment for this JavaOne is clearly the completion of the Java EE 5 specification, an SDK for which is available now for download. Though the "news" is hardly unexpected—the JSRs and features targeted for inclusion in the 5.0 enterprise specification have been known for months—the collection of technologies that are delivered with this version are invaluable, albeit by almost any standard, quite overdue. Key among these:
- Enterprise JavaBeans (EJB) 3.0 —"The biggest area of change in Java EE," said Jeff Jackson, Senior Vice President of Java EE Platforms and Developer Products in a press conference last week. It simplifies all bean types, supports plain old Java objects (POJOs), offers better defaults, and dependency injection a la Spring, which eliminates the need for JNDI.
- Annotations—Annotations, which can be used in EJBs and Web services, eliminates the need to rely on deployment descriptors or JavaDoc and allows you to map Java classes to databases.
- JavaServer Faces (JSFs) —JSF enables you to easily create user interfaces for Web-based applications, with prepackaged components for developers to call. There are more than 200 JSF components available today from 20 vendors, many including AJAX support.
- A new Java Persistence API—This persistence interface for mapping Java objects to relational databases draws from Hibernate, TopLink, and Java Data Objects (JDO) technology—camps that once were at odds about which was the best Java persistence solution. Developers can also use the persistence API to make POJOs persistent—and eliminates the need to use the very complicated CMP (container-managed persistence) bean from version 2.0.
- JAX-WS 2.0—With JAX-WS 2.0, Java will use annotations to declare Web services endpoints, significantly reducing the amount of code needed to call a Web service.
- JAXB 2.0—This standard lets you bind Java classes directly to XML Schema, and, as demonstrated in the technical session Tuesday, what took 308 lines in JAXB 1.0 takes only 62 lines of code in 2.0.
- Application packaging—With Java EE 5, you don't need to declare a classpath with manifest headers to deploy your application. You can put a .war file inside of an .ear and distribute it.
The common ground? Everything about Java EE 5 reduces complexity for the developer, helping Java get closer to the promise of appealing to a broader group of developers and further away from the age-old conundrum that Java is too complicated for developers who aren't interested—or don't have time for—underlying architectural concerns.
A demo showed how using annotations significantly reduces the amount of code necessary for a J2EE 1.4 "Hello World" Web service. Sun Distinguished Engineer Bill Shannon pointed out that while Web services in Java EE 5 are based on JAX-WS and JAXB 2.0, the developer wouldn't need to know anything about either standard to build the Web service with annotations.
All together the release makes application packaging simpler, to the tune of 36 percent fewer classes and more than 500 fewer lines of code to build the sample Adventure Builder application in Java EE 5 versus J2EE 1.4, according to Shannon.