JavaOne 2008 – Day 1

The keynote had the typical stuff, music, dancing, and of course the infamous t-shirt catapult. I was happy to have one bounce of a Sun rep, hit my coffee, and land at my feet. The main keynote theme hit a few interesting items. Probably the most interesting was the JavaFX demo where they had a 100 HD movies playing and rotating in a cube and you could click one to watch. They also had some interesting JavaFX demos for social networking that ran as an applet, desktop app, or mobile app (it would have been really great if it had not bombed a few times). This year they are using the tags and sensors around the building to track our movements.

The first session I attended was an JRuby (TS-5416). Since I’m often asked about scripting languages, and I’m a general scripting bozo I decided to get more information. JRuby is essentially Ruby running on a JavaVM. It adds things like native threading, ability to call Java classes, and the ability to call Ruby from Java. The Ruby language is pretty interesting. It is dynamically typed, OO – class based with single inheritance. One nice thing was the inclusion of modules which can be pulled into classes without needed in have “helper class” structures to contain these code fragments. Classes can be generated dynamically and augmented at runtime. It seems that JRuby or Ruby Rails (the MVC framework) is quickly mentioned. Some of the basic capabilities where detailed. The session was interesting and pretty well done with a balance of code examples and slides.

Next I went to the JAX-RS (TS-5425) session. It covered the basics of RESTful API (give things IDs, Link things together, etc). This was a great level set to then walk through the JAX-RS API and see how it implements each of those features. Some of the API was done simply with annotations (great idea). Some of it had (what seemed to me) unnecessary API calls to do things like get builders, etc. Then the demo spent a lot of time on how to create XML representations and it slowed down and got a bit boring (I think he generated some code with
a macro and then didn’t really explain it). I had to leave early for the next thing but overall very interesting and useful session on how to host a RESTful app or consume one.

I was lucky enough to get into a small group meeting (about ten) with James Gosling. For about an hour we did Q&A on everything from “why didn’t your demo in the keynote work?” to JDK update pains, and should we use Swing instead of JEE? James is a funny and insightful guy but he doesn’t really think a lot about how we use Java – large enterprise applications. It was fun to meet him and he has a lot of interesting stories to share.

After this I went over to the Pavilion and met some vendors. Got to see Chuck and Eric from Instantiations, met with the Atlassian folks to ask some questions (and make some good contacts).
The JavaScript sucks presentation was a deep dive into crazy Javascript stuff, it didn’t interest me since I’m not a Javascript developer. The last presentation I went to was Building Secure Mashups with OpenAjax (TS-5030). This session gave a background of OpenAjax 1.0 and where 1.1 was heading. The widget API is roughly modeled after the Google API, and they provide the ability to generate wrappers for other widget specs. It was very interesting but I’m not sure I learned much.

After spending more time in the Pavilion I headed out to dinner with a bunch of folks and got to spend a lot of time chatting with Peter Reiser from Sun on social networking which was a awesome!