What a difference a year makes! Twelve months ago, the world of Java was beset by fear and uncertainty. There was grave concern about Oracle's takeover of the language via its acquisition of Sun Microsystems. Many people wondered how committed the company was to the forward progress of the language. And given the Oracle's initial ham-fisted handling of several developer communities (such as Open Solaris and the Hudson project), there was a pervasive feeling that the company could easily ruin the language through either neglect or, more likely, by pursuing its own agenda so aggressively that it would destroy the existing Java community. The then-recent lawsuit against Google only furthered these concerns.
So, as last year's JavaOne conference rolled around, there was considerable concern about how big the show would be, whether anyone would care, whether it would be the last show, and so forth. The uncertainty was heightened by Java parent James Gosling's campaign to have attendees wear T-shirts that assailed Oracle. The campaign fizzled; JavaOne went forward but at a conspicuously diminished size and with almost no buzz. It was a dark, lifeless event.
From this nadir, things have rather unexpectedly moved upward and forward. In July, Oracle released the long awaited Java 7. Despite notable execution lapses, this release delivered important under-the-hood features that make the JVM an attractive platform for new languages. The details were presented at a packed Oracle JVM Summit Conference this summer, along with schedule details for Java 8 and Java EE 7. This much information was considerably more than Sun offered during the final years of ownership of the platform. (Note: It took five years four of those under Sun's aegis for Java 7 to ship.)
This year's JavaOne conference, held last week in San Francisco, continued the buzz. The show and conference were significantly larger than last year, and there was far more electricity in the crowd than in the past two years. In part, this was due to Oracle's announcements about features and revised dates for the upcoming releases, the unveiling of a significantly better version of JavaFX, the elaboration of a new process to put Java apps on the iPad, and the company's plans for overhauling the Java Community Process (JCP). For the first time in a long time, attendees had reason to listen and good reason to believe. Oracle committed to progress on many fronts; it had specific plans; and the plans made sense. (Eric Bruno captured details of these announcements in his blog.)
To me, the most suprising of the announcements was certainly the reworked JavaFX 2.0. When Oracle acquired Java, JavaFX was viewed as a moribund technology interesting, well implemented in parts, but so poorly marketed that it would never gain traction. To everyone's surprise, Oracle CEO Larry Ellison committed publicly to JavaFX in his very first speech after the acquisition of Sun. This support sounded then (and even in retrospect) like an extravagant promise that would quickly be forgotten. However, the company rearchitected JavaFX from top to bottom: It got rid of the scripting portion, refurbished the APIs, and made the product far easier to use. In addition, it anointed JavaFX as the client interface product of choice for Java going forward. That is, it takes over from Swing, the expansive, but little loved, amalgamation of interface toolkits and APIs that has been Java's client development framework for a decade. JavaFX might be one of the primary beneficiaries of Oracle's announcement that it will get Java apps on iOS (by integrating a shrunken-down JVM in the app). Either way, columnist Eric Bruno will shortly begin a series of deep dives into JavaFX 2.0.
Another long-needed change Oracle announced was a top-to-bottom reform of the Java Community Process (JCP). The JCP was instituted by Sun in response to pressure from the community of users to participate in Java's future growth. Despite this provenance, the JCP was formed of committees comprising self-appointed experts who were interested in adding some piece of functionality to the Java platform or the libraries, generally at the behest of their employers. The JCP documents were obscure, the committee activities unclear, and the whole system had the feel of a series of fiefdoms, working in anarchy, with a few reaching the tipping point of proposal adoption. Many committees were stillborn, while others died from atrophy, often as the result of a change of course by the primary sponsoring company.
Oracle is cleaning this up. JCP projects will begin using publicly visible mailing lists for all communication, and they'll make test code available to all interested parties. I'd like to see more done, but this is an excellent start at making the JCP more transparent and, I hope, participatory and useful.
Between the clear articulation of features and calendars, delivery on the commitment to JavaFX, solving the iOS problem, and providing new transparency to the JCP, the collective feeling last week was that Oracle is moving Java very much in the right direction.