JavaOne 2008 – Day 2

The day started out with a keynote from Oracle. Some interesting stuff. The mentality of Oracle hasn’t changed much over the years. They provide an IDE, runtimes, database integration that is very seamless but hopelessly proprietary. It’s all “standards based” meaning where they use standard plumbing and interfaces. However the key thing here is LOCK-IN. They have tons of Java code to make all the magic happen and it all starts with “com.oracle”. So do you use the magic (and their tool), embrace it, debug it, or just learn to use open source solutions? Very slick Oracle, but no thanks. They ran way over time too.

The first session I attended was a panel (PAN-5435). This was a fun idea for a panel. They had 4 script language presenters (Groovy, JRuby, Jython, and Scala). They had 3 rounds to show similar features with demos and you voted on your cell for the winner in each round and a final winner. I think the winners in order were JRuby, Groovy, Scalia, Jython). If all the presenters had done their labs it would have been better (some didn’t do the example they were given). I would have done JavaScript probably as well. Decent session, fun.

Next I missed the Hands on Struts2 session for a work-related conference call. After grabbing some food I hooked up with Bob Lee for some coffee and we discussed a variety of interesting topics from Android to twitter. Always fun to talk with Bob – hopefully we can get you to move back to St. Louis some day!

The next session was a JRuby versus Groovy – TS-6050 (noticing a trend?) This was arguably the best session I’ve attended. The presenter (Neal Ford) was highly knowledgeable, gave a ton of thought of how to compare, and was an excellent speaker (bring this guy back Sun on any topic!!!). Bottom line is Groovy is a lot like Java and carries some of the verbosity and restrictions. It is an excellent choice for many applications. Things I liked about Groovy: Operator Overloading, closures, ignores private (great test tool), dynamic… JRuby had a ton of things I liked but not very “Java”. The ability to layer a DSL for a framework, expressions, mix-ins (modules), mature, very cross platform (it generated a distributable exe and app file). I think the JRuby language, save the fact it is very different than Java, has a lot of things going for it over Groovy. Top notch presentation and session, I learned a ton of stuff that would have taken a lot of time to sift through on my own.

The next really interesting session was something I deal with a lot in my job – open source – and the politics of it. What really is open source? How do trademarks affect it? Is M$ shared source really “open source”? What is OSI and how do they categorize open source licenses? Those were some of the questions I got answers for at TS-7064. Great advice to corporations participating in open source. Anytime you can see Simon Phipps speak it is worth it.

We spent some time in the Pavilion with some vendors, one interesting tool was project Wonderworld. They have some very interesting ways to use SecondLife type of environments for corporate/business collaboration and visualization. Very great ideas but I think a bit before their time.

We were fortunate enough to have dinner with some of the JRE engineering team (compiler, gc, and other developers). That was very interesting. I got to ask a java compiler guy all my crazy stupid questions (well a few of them). Very interesting to hear some of the guts of how the new JRE (6 update 10) works with the smaller JVM bundle you can bootstrap with. Some of this is way overdue and exciting to see it happen. My own company is so far behind the latest releases I know it will be a while before we can use it.

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!