JavaOne 11: Friday
By templedf on May 19, 2006
The keynote this morning was great. McNealy did a 20-minute routine, and he was really on his game. He gave his top 10 list of advantages to not being CEO. After that James Gosling did the "new & cool" keynote. At the end, he held the final heat of the Java™-driven slotcar competition. The second-place winners were a team of German high school students! Very nice.
Since I had nothing else planned, I went to the repeat of Josh Bloch's Effective Java Reloaded presentation. Josh very effectively reminded me that there is a lot of depth to generics. They may be simple once you get your head around them, but there are a lot of subtleties involved. Go see the slides for details. The only tidbits I'll share here is that Josh is now pushing the ideas that 1) you should make everything final that you can, and 2) you should use @Override on all methods that override parent methods.
Again, since I had nothing better to do, I dropped in on an architecture talk: To Know the Dependencies is to Know the Architecture. Honestly, I expected to walk out 10 minutes into the talk. Much to my surprise, it was a very useful talk about a new way to model dependencies in complex systems. The idea is that dependecies among modules can be graphed in a dependency matrix. From the matrix it's then possible to optimize system to reduce complexity and increase maintainability. The talk was ultimately a product pitch for Lattix, but it was nonetheless interesting. Using the Lattix tool, the speaker analyzed the architectural creep that happened between Ant 1.4.1 and 1.6.1. A really cool demo.
My last session of this JavaOne was the presentation from the NetBeans team on how to design API's that last. The presentation essentially boiled down to a recap of Josh Bloch's Effective Java book with a healthy dose of lessons learned the hard way. The 60 second summary is that you should always make sure to separate your API's from your SPI's, because clients like it when you extend your API, but service providers get testy about extending your SPI. Also, plan for evolution, because you won't get the API right on the first try.
That does it for JavaOne '06. Wow, what a conference! Every year it gets better, and this year was no exception. I can't wait until next year!