With JavaOne now just a few days away, it's a good time to assess how far the Java platform has come since this time last year, and where it's going. This article presents not a list of specific predictions, but of themes you might want to watch for in the keynotes, technical sessions, BoFs, and other activities.
In last year's general session, Sun Java VP Graham Hamilton announced that Java SE would be adopting 18-month release cycles. However, the pushed-back fall 2006 release date for Mustang will make its cycle closer to 24 months, as the JDK team released Tiger and started on Mustang in fall 2004.
Still, this is clearly the agenda-setting time for the next SE development cycle, when goals and a target feature set are up for grabs. Last year's general session suggested a few features that were already being considered for the Dolphin time frame:
- Direct XML support in the language: This is somewhat complicated by the fact that the
>angle brace syntax has already been "taken" by the generics feature introduced in J2SE 5.0.
- The BeanShell scripting language: An expert group has been formed for this as part of JSR 274, and it can build on the scripting support specified by JSR 223 and implemented in Mustang.
- A new packaging and deployment architecture: Acknowledging that the JAR has been stretched beyond its intended purposes, a new standard could be developed to improve versioning of libraries and their inter-dependencies.
- More new I/O APIs: Adding on to the high-performance
java.niopackage introduced in J2SE 1.4, JSR 203 includes some of the APIs that were dropped from JSR 51, including access to file attributes, change notification, escape to filesystem-specific APIs, etc.
- One or more new bytecodes to support dynamic languages: The process to add
invokedynamicis underway as part of JSR 292.
So those are things that, having been mentioned before, are likely to appear in more concrete form on the roadmap. In fact, most of them already have JSRs attached to them, and several state their intention to deliver their feature-set as part of Dolphin.
But what else might be on the Dolphin roadmap? There's always the possibility that one or more open source Sun projects could be the source of new Dolphin features. For example, the JDIC project's "System Tray" API is part of Mustang, which led the Java Desktop team to comment:
This project shows that there is a simple way to contribute to the Java SE platform: participate in or start a highly demanded feature project (preferably on java.net), and one day it may become integrated into the Java SE platform!
Where might Dolphin draw on existing extensions? SwingX seems a likely extension, especially when it provides much-desired functionality like the
MultiSplitPanefeatured recently on java.net. But who knows, maybe they're thinking bigger. For example, what if Project Looking Glass were adopted as a consistent, runs-everywhere, 3D desktop environment?
Then there's the possibility that Dolphin will speak to some of the top requests for enhancement. Some of these are obvious slam dunks (4977599, "Provide documentation in Chinese"), some are non-starters (4499904, "RFE: Ogg Vorbis and Tarkin support for JMF"), and most are intriguing, at least. For example, while it's only number nine on the list, 4267080("break up rt.jar into downloadable-on-demand components to reduce JRE size") would be a compelling response to critics who say the JRE's download size is a deployment deal-killer. This might also be part of a larger versioning and deployment story. We can hope so, anyways.
On the enterprise front, we can expect a big push behind Java EE 5. With its feature set having just received final unanimous approval a few weeks ago in the form of JSR 244, the challenge is now to get developers to adopt it.
As always, the EE story seems dominated by the EJB story, overshadowing other commonly used elements of EE, such as the new versions of JAXB, JAX-WS, and JSTL that are included in EE 5.
But the fact is, EJB 3.0 is a big deal, and has been ever since it was proposed. Seemingly learning lessons from the rejection of programming models that many developers considered pedantic, if not utterly unworkable, EJB 3.0 relies heavily on annotations to simplify programming, reducing the role of deployment descriptors to an optional override, rather than a requirement.
The question now is, will developers listen? Some have been burned by earlier EJBs, or scared away by the rhetoric, and have instead adopted alternative, non-JCP frameworks like Spring or abandoned the idea of the enterprise framework altogether, in favor of rolling their own. The value proposition that EE has to deliver at JavaOne is that the effort extended in learning and adopting EE will more than pay off in terms of maintainability, robustness, scalability, etc. You'll probably hear both sides of this value proposition--easier development, more payoff--stressed in the general session and the technical sessions.
What's JavaOne without a little drama? For the last few episodes, we've been on the edge of our seats wondering if Sun would open source its Java implementation. Now the new A-plot is the turnover in the corner office, with Jonathan Schwartz replacing Scott McNealy as CEO. Not that Scott is gone, which means there'll surely be some kind of hockey reference in his part of the general session. But since this will be Schwartz's first appearance in front of a JavaOne crowd since taking the reins, many in the crowd will clearly be looking for some sign of how he intends to handle Java, and whether it will be different from his predecessor's approach.
Schwartz's openness, both in his personal opinions (what other CEO blogs a few times a week?) and his commitment to open standards and open source software, could make for a significantly different topic list in the general session. As some see Schwartz driving Sun in the direction of being an open source software company, it wouldn't be surprising to see a general session dominated more by software initiatives and partnerships than by talk of new UltraSPARCs, blade servers, and massively multithreaded CPUs.
Beyond Java continually reasserts that the most typical enterprise programming task is hooking up a database to a web application, and that languages and tools should be optimized for that classic use case. This is the obvious advantage that Ruby on Rails enjoys, with its "money shot" of typing
rails project-nameto instantly create the structure of a basic application.
The lessons of convention-over-configuration are being learned throughout the Java community, with projects that take a straightforward approach to Rails-like functionality in Java (such as Trails and the Groovy-based Grails). Similarly, NetBeans 5.5 promises a zero-effort feature to connect to a database and create a web app from it by way of mapping a database to entity classes and entity classes to JSPs, as described in a recent two-part (1,2) blog entry. The "set up the standard use case instantly" approach got a pretty hostile reaction from some quarters when Maven first did it, but now it's all but a standard expectation within the Java community.
When the Java Posseheard that Borland was putting JBuilder up for sale, they regretted the apparent end-of-line not only for a beloved IDE--but also for what they considered one of JavaOne's best parties. And while that might have been a hasty conclusion--Borland will be at the show--it's an open secret that the free food and drink is somewhat less plentiful than in years before. Budgets seem to be tightening among many conference participants, and some of the things to go have been the expensive ballroom rentals and open bars. The "Java Communities in Action" event that java.net has participated in before is not happening, and a number of private events that were fixtures for those "in the know" are off the agenda this year.
It's not necessarily a bad sign for JavaOne, as the same participants are still at the show, after all. It may just be that the bean counters are taking a second look at what does and doesn't achieve their strategic goals, and looking to see if JavaOne parties really help the bottom line.
Still, the net result is that if you planned on doing dinner in the form of heavy hors d'oeuvres and free drinks, you might want to think again.
So where's the fun at JavaOne? In large part, many of the best events are reserved for the hours after sunset. While the suits rule the technical sessions, the birds-of-a-feather (BoF) sessions collect some of the most interesting personalities and subcultures within the Java community. A set of "Meet the X" BoFs put the people behind Java's most essential APIs behind the mic: Swing, security, Java2D, core libraries, etc. Well-known personalities hosting BoFs include Google's Josh Bloch on collections, Howard Lewis Ship on Tapestry, Kito Mann on web app architecture, and the Java Posse doing their podcast.
Representing the subcultures and alternate currents in the Java community team, the Apache Harmony team checks in with a BoF to update their progress developing a F/OSS Java implementation, and Apple offers a status update on their Java runtime and tools.
And then there's the just plain cool "stuff you won't see anywhere" else BoFs, like Bruce Boyes and company showing off "an intelligent swarm of heterogenous Lego robots," and a BoF on 3D animation with Java. And James Gosling's t-shirt hurling contest, which sometimes seemed a curious-at-best capper to the general sessions, has movedto the Thursday night AfterDark party.
With Java now in its second decade, it would be too easy for JavaOne to become a predictable annual event, especially given that Java's features are generally known years in advance; the platform is not given to Steve-Jobs-like surprise announcements. But look past the obvious headlines and you can see different currents running through each show, the rumblings of one becoming the headlines of the next, as enthusiastic BoFs of one year become tech-session fodder the next, and keynote demos later. JavaOne is a conference of 10,000-member crowds and five-person chats, a show where the most interesting idea has an equal chance of coming from John Gage or James Gosling as from the guy playing Maddenon the Xbox next to you in the lounge area.
The best approach may be to find your own JavaOne, with the topics of interest to you in the tech sessions, BoFs, and on the pavilion floor.
And speaking of the pavilion floor, that's where you'll find java.net. Our Community Corner is a place to meet up with community leaders and fellow developers, and to check out one of several dozen 20-minute mini-talks, which will also be available on the java.net podcasts feed. Come find us and tell us what you're up to. We're here to help make it happen.