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.
Java FX, FX Script and FX Mobile
This was, if anything, the big surprise of the keynote announcements and of JavaOne in general. After years of Java languishing on the desktop, it looks like Sun is ready to make another (perhaps it’s last?) assault. With recent announcements from Adobe (Flex and Apollo – Flex is a framework to take advantage of Flash UIs in much the same capacity as Java Applets, and Apollo is more like Java Webstart, providing a way of running flash applets as desktop applications), and Microsoft’s Silverlight (a flex/flash competitor based on Microsoft’s .NET technology), Java FX might well be the last chance for Java to make an impression in this space.
It is easy to be confused by the initiative though. The new FX branding is being applied to a number of different pieces of the puzzle. For one, there is Java FX script – a new scripting language that favors declarative creation of slick Java based UIs, and drawn from the work Chris Oliver has done with F3. As you would probably expect by now, Java FX script is open source.
There is also Java FX Mobile. This is a next generation mobile device (particularly phone) platform that runs a full Java VM on top of a Linux base, and includes technology that Sun recently acquired from SavaJe (a company that was trying to realize the same stack, and who’s phone won a Dukie award and made a big splash at last year’s JavaOne). For me, this is a very exciting announcement. An open source and developer friendly next generation mobile phone platform should be enough to wake anyone up. With Apple’s iPhone capturing much interest right now, but reportedly with a fairly developer hostile stance, having something that I can write really useful and powerful Java applications for will win my vote and dollars. Not only that, but the prototype demonstrations looked beautiful, and the Java FX devices should be available in a number of configurations with different features (and price tags) so you can choose the entry level that you are happy with.
From the keynote announcements, you could be forgiven for thinking that these were the only pieces to Java FX, but as we found out in subsequent interviews and conversations, there is much more. For one thing, in order to compete against Flash in the web space, there are issues with the Java applet experience that must first be addressed. A large download size, slow startup of applets and a less than ideal JRE download and install experience must all be improved upon to give Java FX a fighting chance. Sun is well aware of these issues and is working hard to sort out the problems – in fact there are already reports that the next update of the JRE will have a greatly reduced download size (between 3 and 4 megabytes) and will seamlessly download extra modules as required and a better user download experience as well.
It is worth remembering that Java doesn’t necessarily have a late start on all of these fronts. There is work to do for sure, but also remember that Java has a number of advantages in many areas. For one, the Java VM has better raw performance and a wealth of libraries (including third parties) that give it an advantage over its competition. For example, at present it is not really sensible to try and create a real-time, powerful audio processing filter in, say, flash while it is eminently possible in Java. For another, Java has a strong foothold in the mobile and embedded space which Flash and Silverlight do not enjoy (although the foothold is largely based on a very limited form of Java right now).
Will Java FX be a success? I believe Sun’s commitment to it is strong – this will not be something abandoned lightly because if they do, any credibility Java may have on the desktop will evaporate. I hope it will be enough, Java still offers a lot on the desktop that is not possible with flash (yet) and has a much better cross platform story than Silverlight/.NET (someone should tell Microsoft that Windows and Mac OS X is not a full cross platform story – what about Linux, Symbian, and so on?)
Java Real Time 2.0
The Java Real Time System version 2.0 was also announced. This is the historic JSR 1 (the first new feature to go through the Java Community Process (JCP) and was announced in the version 1.0 reference implementation at last year’s JavaOne. This version brings real-time garbage collection (previously using the real time system required extreme discipline with memory usage, most memory had to be declared up-front and there could be almost no heap activity during the run time). Also, the NASDAQ usage of Java Real Time was showcased (150,000 transactions per second).
Not really about the Java, but more about the conference, the aim was to make JavaOne 2007 a carbon neutral conference. During the course of this, some discoveries were made that led John Gage to question the cost for offsetting carbon (is it enough – it almost certainly isn’t yet). Anyway, it is heartening to see this kind of effort being made – I wonder how many people traveling to the event also offset their emissions?
Curriki and Engineers Without Borders
Continuing the feel good message, Sun talked about two new initiatives. The first – Curriki – is aimed at being wikipedia for education, providing international resources for K-12 learning (although not all countries use the K-12 curriculum so it will be interesting to see how this is incorporated). Also Sun announced that, along with the UN, it would be setting up an Engineers Without Borders program similar to the Doctors without Borders.
Day one after lunch also brought the Sun technical keynote that delivered a bit more meat for us developers who like to see code. There were several standout demonstrations in this keynote including JRuby in Netbeans running a real Ruby application (a popular blogging application that was run unaltered).
Also, NASA demonstrated World Wind – a Google Earth like application written (now) in Java. The original was written in .NET and ran only on windows. The new version is impressive – very fast performance, cross platform execution, and fully open source. In fact the viewer is a swing component and can be embedded in other applications very easily – there was a demo of this using a simple Java flight simulator with the real world data from World Wind – this makes for a pretty realistic world to fly though.
The other standout, not just of the technical keynote, but also of the conference (in my opinion) was the SunSpots. These are small devices, about the size of a compact cell phone, that have sensors and servo controllers on board, and run Java. They also have wireless networking and the ability to set up mesh networks, and a whole host of other neat features like built in accelerometers. They are a robot enthusiast’s best friend and quite a bit more capable than the popular Lego Mindstorms. The price is perhaps a little high right now ($550 for a pack consisting of the sunspot and two extra sensor units) but I must say the price seemed less outrageous after I saw them first hand (they are really, really nice). Perhaps in time a more commodity priced package will be available.
I admit that I missed the Oracle keynote due to an extremely late night, but understand that Oracle announced a preview of JDeveloper 11g. I did see the Motorola keynote, which had some very interesting points to make, and promised a future rich with G3 networks and always connected Internet devices. I was vaguely hoping for some bombshell announcement that they would be shipping Java FX mobile devices by month’s end but that was just wishful thinking on my part.
James Gosling’s Toy Show
I must mention some of the standout moments from James Gosling’s Friday keynote as well though. The biggest by far for me was Project Wonderland.
I don’t know if you will remember back a couple of years, but Sun demonstrated a 3d desktop environment called Project Looking Glass that showed a lot of promise at the time, and then went very quiet. As it turns out, development was still happening around this project and the result is Project Wonderland.
While still early days for it, Project Wonderland has fantastic potential. It is a lot like Second Life from Linden Labs, but with some important advantages for business use. For one thing, you can have real voice conversations. Walk up to people talking, and the sound will fade up until you are joined in the conversation (they will hear what you say as well), walk away and it will fade down until you can’t hear them any more.
This feature alone would make Wonderland a lot more useful for business than Second Life is, but there is another, even more important one. Surfaces in Wonderland can be a host to a running application, for example your office desk could have a browser running in it. Multiple people in the vicinity can then control this application. Just think of the potential – two developers in different countries could meet face to face, discuss design or code issues, and actually peer program using the same IDE application on the wall of the virtual office they are in!
I also enjoyed the NetBeans demo – there are a lot of new features in NetBeans 6.0 and this demo covered a dizzying number of them, almost incidentally. The robot demos were good too – dancing robosapiens and the fastest accelerating robot in the world (which drew a line sketch of a picture of James Gosling).
If the vitality of either Java or the software industry as a whole can be judged in any way by the amount of free stuff given away at booths, then either Java or the software industry (or both) are in good shape right now. The first few hours of Tuesday seemed to be a swarming free-for-all (literally) of people lining up to pick up T-shirts, mouse pads, CDs, things with flashing lights, key fobs and all of the other good stuff grouped under the “swag” moniker. Fortunately things calmed down after a few hours and then it was possible to see the pavilion and the booth exhibitors for what they were.
For anyone that hasn’t been to JavaOne, exhibitors run from having their own villages (themed booths grouped together) to having fairly generic looking small quarter booths. Some of the high points from looking around the pavilion included Fortify software – who had the man from “Hackistan” raising awareness of exploits and security issues, the java.net community booth with constantly running tech talks throughout the pavillion opening times and the Sun open-source projects corner. Of course, singling these out is to do an injustice to the many other vendors (I got to see nearly all of them), but these are the ones that left an imprint on me. There was also a “Project Blackbox” planted in one corner – this is a portable data center that Sun makes, basically a large shipping container packed with network and server hardware. Just plop it down, hook up power, water (for cooling) and networking, and you have a super computer or instant Internet node. This felt like a little bit of a missed opportunity to me though – it was good to see it, but there really wasn’t anyone to talk to about it when I visited – just a train of people walking through, oohing and aahing, and then moving on to the next exhibitor.
The pavilion is a great place to walk through at JavaOne. Some of the most new and experimental stuff you will see at JavaOne can be found in the pavilion – from folks who either didn’t get a technical session accepted, or maybe weren’t organized enough to even get one together, but who have compelling products or technologies nonetheless. It is also the perfect place to rub shoulders with anyone you can think of – everyone is equal in the pavilion, you might find yourself having a conversation with someone delivering a not-to-miss technical session later in the day.
One more thing of note from the pavilion – the slot car competition was running again – this is a challenge to use Java to control a slot car on a timed lap of the track and get the lowest time. This was a popular attraction last year and appeared to be just as popular this year, so I suspect they will be back in the future if you want to test your control skills (or try your luck if you prefer).
BoFs and Parties
Sometimes there is not as much of a difference between BoFs and parties as you might think (especially when you roll in the unofficial un-BoFs which also spring up organically around JavaOne). This is the nightlife of JavaOne – a combination of geeking and having fun – usually late into the night (or early morning). While the legendary Borland party was nowhere to be seen this year (if it did happen, I wasn’t cool enough to get an invitation), there were some good parties and networking events. As always (and particularly this year) getting enough sleep is the real problem.
Some of the best value came from the evening events, if you do attend JavaOne, definitely try to stay in a hotel near the event if you can as this will let you get the most value out of these late night happenings. They can also be invitation only and exclusive through to open to anyone and thrown together at the last second. Again, if the vitality of the nightlife is any indication, we seem to be in another .com bubble or upturn.
The trend of the last few years, that of an expanding and more energetic JavaOne, continued this year. While it is not up to the size and excitement of the .com years (around 1999 and 2000), some of that is returning year by year. JavaOne is still the largest single developer conference in the world and it shows.
The addition of the CommunityOne day this year was a real plus. I hope it continues in future years. I wonder, since it is free admission for that, if it won’t get as big or bigger than JavaOne itself in time. Certainly it is a great way to touch the Java community if you can’t get a ticket to JavaOne (and I can understand that problem as an individual or for small startup companies).
One more thing, if you weren’t able to make it to JavaOne this year, or if you did but missed Technical Sessions you were interested in anyway (I know there were many I missed), the slides and hands on labs are already available and the multimedia versions (with the voice-over by the presenter) will be available soon too.
About the Author
Dick Wall is a Software Engineer at Google based in Mountain View. He also co-hosts the Java Posse podcast – a regular Java-centric news and interviews show which can be found at http://javaposse.com.