A Final Report on JavaOne 2007
May 8th to the 11th (or the 7th if you count CommunityOne Day) in the Moscone center, San Francisco saw this year's JavaOne conference. I will say up front that I love the spectacle of JavaOne and look forward to it every year for many reasons.
JavaOne is, according to Sun Microsystems, the world's single largest developer conference. While I don't know if this is true or not, It certainly is the largest one I have ever been to year after year, and I have no reason to doubt it.
JavaOne means many different things. There are the technical sessions of course - the chance for Java developers and luminaries to share their achievements and breakthroughs with their peers. While these are some of the best technical sessions you will see anywhere, they are only a small part of the overall experience. There are the BoFs (Birds of a Feather) sessions, which are a chance for peer groups with common interests to meet and discuss topics of interest (these are more interesting to me personally, especially after my recent first experience with an Open Space conference earlier this year). There are also Hands On Labs - some supervised and some not, which help you learn applied tools or techniques.
But some of the more interesting features of a conference like JavaOne are not part of the advertising or schedule. It is the concentration, for a week, of many like-minded Java enthusiasts and luminaries. A chance for engineers to engage in some cross between learning, discussion and power networking at an incredible rate. It is a fantastic breeding ground of new ideas, new projects and much more. These activities tend to happen organically, in between technical sessions, over lunch, at the dinner table or during one of the many parties that happen late into the nights.
This year's JavaOne had more energy than the last few years. My speculation is that it is because of a combination of factors - a new Web/.com bubble certainly helps (let's hope it is a little more cautious than last time though), but I also believe that the open sourcing of Java, and the new and increasing focus on community, is a real shot in the arm. Add to that a level of pragmatism that has been absent in previous years (for example, a recognition and acceptance that multiple languages on the JVM, even to the point of supporting them in tools, realization that we can learn from other sources, say .NET and Ruby on Rails, but also that we still have a thing or two to teach them as well, and so on).
Whatever the reason, this year was a fine vintage for JavaOne.
Strictly speaking, this was not a part of JavaOne, but it was a free event on the day before, organized by Sun and taking place in the Moscone center. Couple that with some nice packaging of the event with JavaOne enticements (for example, if you registered for the event you could get a free JavaOne one-day pass for the Tuesday which included technical sessions) and really this could be viewed as a great JavaOne kick-off event.
In previous years, Sun has organized a NetBeans Developer Day on the day before JavaOne, and indeed there was a NetBeans Developer Day rolled in to CommunityOne, but there was a lot more besides. In addition to NetBeans, there were tracks on Glassfish (and Enterprise Java), Open Solaris, Open JDK (including mobile and embedded Java), a RedMonk unconference, web 2.0 and startup camps.
Also previously, these events have taken place in one of the nearby hotels, but this year the event was held in the Moscone itself.
CommunityOne was a great and welcome free bonus, and I hope Sun continues it for next year but I wonder if the expense might be too great for it to be held every year. Perhaps, because Moscone is already booked and being set up for JavaOne, holding it there might keep the costs down. Either way, this is much less of a "sales pitch" than you might think (although make no mistake, Sun products are very much the focus of at least the Sun tracks).
I am the co-host of a podcast called the Java Posse, and the four of us (me and my three compadres: Tor Norbye, Carl Quinn and Joe Nuxoll) were invited to provide the lunchtime entertainment by doing a podcast while people tucked into their box lunches. It was fun to be asked, and we made a few predictions and talked about the news from the week leading up to JavaOne.
The event also featured key Sun personnel heavily, for example Jonathan Schwartz and Rich Green gave a pre-lunch address to the NetBeans crowd, followed by another for the Glassfish track.
If CommunityOne does take place next year, I would encourage people to attend. If you are going to JavaOne, well - what's one extra day before spending the rest of the week at the conference, and if you are not going to JavaOne, it's a free taster for the event, and a chance to do much of the talking and networking that is possible during JavaOne proper.
In the evening of the Monday I headed to the Groovy/Grails party hosted by the No Fluff Just Stuff guys, and with Guillaume Laforge, Graeme Rocher et al. This was a fun event although perhaps a little more eyes-forward than I would have liked. It is good to see that strong progress is still being made in Groovy and Grails (Groovy is getting close to a 1.1 release with new Annotations support, while Grails is warming up for a 1.0 release in the not too distant future).
Tuesday brought the start of the conference proper, and the all-important general session/keynote. The key announcements from this, at least in my opinion, were:
Open Source Java
It was at JavaOne 2006 that the beans were first spilled about Java going open source (actually hints were made at last year's NetBeans day, and confirmed at JavaOne). One year later, and the platform and language have been open sourced as fully as they can be in present form (some small encumbrances still exist - more on that below).
Although this is great and monumental news, it was clear that this was an expected announcement rather than a surprise one. It is easy to overlook the magnitude of the effort which was started just one year ago and has led up to this point, in fact I have read some very negatively spun articles on the subject (along the lines of "finally! one year later..."). I will simply say that in my opinion, this is a tremendous achievement and a contribution to the open source community on a par with the Apache web server, Gnu tools and Linux.
There is a catch though, small parts of the JDK are still not open source, due to remaining intellectual property encumbrances. These include font rendering and some other parts of the Java 2d API. At present, it is necessary to download these parts in binary form to build the rest of the system into a complete and compatible JVM.
These pieces are also a problem that is not so easily solved. Sun engineers working on the Open JDK cannot simply re-write these pieces. They have seen the original code and are hence considered "tainted", for them to write replacements now could be a legal minefield.
This is also a great opportunity for the community to prove its mettle. Volunteers with 2d and font rendering skills, and who have not seen the source code that currently provides this functionality within the JDK, could step up and help provide replacements that are not IP encumbered. If this sounds like something you would be interested in, please consider getting involved with this very worthwhile effort at http://openjdk.java.net/.
Another, smaller part of this announcement was also that it is now much easier to actually build your own JVM/JDK. NetBeans projects are available to make building from the source yourself much easier, providing you are using NetBeans (in fact a very recent version of the NetBeans 6 Milestone builds is required). Let's hope we see interest from other IDE supporters as well providing similar build projects for Eclipse, IntelliJ IDEA and so on.