Oracle's Plans for Java Unveiled at JavaOne
Oracle made a number of announcements about current and future versions of Java at the annual JavaOne conference this week, including the availability of an early access version of JDK 7 for the Mac OS, plans to "bridge the gap" between Java ME and Java SE, an approach to modularizing Java SE 8 that will rely on the Jigsaw platform, a new project that aims to use HTML5 to bring Java to Apple's iOS platform, the availability of JavaFX 2.0, a pending proposal to open source that technology, gearing up Java EE for the cloud and a delay in the release of Java 8.
Adam Messinger, Oracle vice president of development for Fusion Middleware, told a keynote audience gathered in the Hilton Hotel in San Francisco that, although Java Micro Edition (ME) will continue to target mobile devices and Java Standard Edition (SE) will continue to target embedded systems, Java ME will "evolve" through the submission of new Java Specification Requests (JSRs) to the Java Community Process (JCP).
Java ME and SE "sprung from the same root" of Java 1.4, Messinger said, but they diverged over time. "We think it is time to bring them together and bridge the divide between them," he said.
The plan calls first for an update of ME's Connected Limited Device Configuration (CLDC) virtual machine, which is primarily used on feature phones. Oracle plans to submit a proposal to update that version's library specifications to enable better alignment with Java Development Kit (JDK) 7. It would primarily be an upgrading of CLDC to use the language features of SE 7, Messinger said, but it would continue to be a subset of Java SE.
The Connected Device Configuration (CDC) component of Java ME, which is a HotSpot implementation that is optimized for resource-constrained devices, such as Blu-ray players and tablet PCs, will become a subset of SE enabled by project Jigsaw, Messinger said.
Nandini Ramani, director of development for client Java at Oracle, announced the availability of JavaFX 2.0, the first update of the Java user interface (UI) platform to come from Oracle. In a post keynote press conference, Ramani said that Oracle had exceeded the number of features the company promised last year to deliver on JavaFX, including an HTML editor and Scene Builder (a WYSIWYG GUI design tool). Scene Builder is essentially a Flash XML (FXML) editor, and Ramani pointed out that support for FXML, a Flash/ActionScript markup language, was also among the extra features delivered with this release.
But perhaps most importantly, all of the JavaFX script APIs have been converted to 100 percent Java.
Ramani also disclosed Oracle's intention to submit a proposal to open source the JavaFX platform as a new project within the OpenJDK Community. The company plans to start by contributing the JavaFX UI controls and related libraries, she said, and will contribute other JavaFX components in multiple phases.
"I think [open sourcing JavaFX] is the right decision," Ramani told reporters during a post-keynote press conference. "Now that we've reverted back to Java APIs, it's part of Java and makes sense there. And we believe that clients on the UI side need an updated, state-of-the-art set of APIs, and JavaFX is the right solution for that. It just makes sense for it to be in the community."
"As a general principle, as much as possible of the JDK is open source," Messinger added. "There are a few places we haven't been able to do it for two reasons: There are some pieces of the JDK we licensed from someone else and so it's not ours to open source; and there's code that we haven't had a chance to go through ourselves to get it to the quality we want it to be before we open source it."
During his portion of the keynote, Cameron Purdy, vice president of development at Oracle, talked about the success of the Java EE SDK, which has generated more than 40 million downloads, and 7 different groups implementing Java EE 6, including Oracle, IBM, RedHat, Fujitsu, among others. It has been the fastest implementation rate of an EE specification.
In Java EE 7, the big emphasis is going to be on making the platform compatible with the cloud, Purdy said. Although he admitted that Java EE was probably behind the curve on cloud, he insisted that that is the best place from which to standardize.
"The question we have to answer is how do we create the next generation of the Java EE platform that is geared for the style of application and the infrastructure represented by cloud computing environments?" he said. "We're talking about being able to run on any of the Infrastructure-as-a-Service offerings, for example, being able to create application containers that run on anything from EC2 to private cloud infrastructures, all the way down to virtualization technologies."
"When you look at cloud computing, you know that's the future of infrastructure," he said. "The question is, are we going to have 50 different proprietary ways of doing it? I think you know that once companies realize that there's a way for this to be standardized and their investments to be largely secure from vendor lock-in, the companies will flock to it just as they did to the original Java2 EE 10 years ago."
Oracle is now "revisiting" all the specifications in Java EE, looking at them from a multitenancy point of view, Purdy said.
Purdy and Messinger also announced a new project, dubbed "Avatar," which will allow developers to create hybrid applications using HTML5 and Java. By combining HTML5 and Java, Messinger said, developers will be able to create apps that run on a range of devices, including the iPhone. The integration will allow Java code to manipulate the HTML DOM (Domain Object Model). Messinger demoed a hybrid app onstage on an iPod Touch. The HTML5 component from iOS was merged with a Java VM. The UI was designed by "an HTML5 person." Purdy said he expects HTML5 eventually to underlie 99 percent of enterprise applications.
The Oracle Java team also announced that an official developer preview of the JDK 1.7 for Mac OS X has been completed. It should be available to developers in the second quarter of 2012, Messinger said, with a general availability release to come soon after.
They also announced the first beta release of the NetBeans 7.1 IDE, which supports JavaFX 2.0. Ramani pointed out that developers can now use NetBeans to create JavaFX applications. The IDE now allows the full compile, debug and profile development cycle for JavaFX 2.0 app.
During the morning keynote, Rob Benson, director of runtime systems at microblogging juggernaut Twitter, joined Messinger and Purdy onstage to announce that his company has joined both the OpenJDK Community and the Java Community Process (JCP). Twitter wants to work with members of the JCP and the OpenJDK Community, Benson said, to help evolve the Java platform.
A number of company representatives -- including IBM, Intel, Red Hat, ARM, GetJar and Harris IT Systems -- appeared on the JavaOne stage on Tuesday to declare their ongoing support for Java.
IDC analyst Al Hilwa says he was disappointed to hear about the delayed release of Java SE 8, which has capabilities that enterprise developers have been anticipating for five years. But if it means a better integration of Java ME and Java SE, it'll probably be worth the wait. He added that the Java EE announcements about a new focus on the cloud, multitenancy capabilities and better support for HTML5 frontends was great news for enterprise developers.
"PaaS is not mainstream yet and Java workloads may not be the first to move to the cloud," Hilwa said in an e-mail, "but having strong capabilities in this area is an important part of keeping Java dominant."
He was also enthusiastic about the planned convergence of Java ME and Java SE, which he said was "the right thing to do to really leverage the early lead that ME had in mobile and bring it back into relevance in the age of smartphones.... Seeing investment in ME around mobile services for developers answers an important question about Oracle, in that it is going to place itself in the midst of the mobile revolution."