In With The New
Thursday was an interesting day, but tiring. The third day of a conference always seems to be the roughest in terms of comfort level. One or all of the following is guaranteed to be aching at any given time:
- Feet: From standing around talking to people or waiting in line
- Back: From lugging around the asymptotically increasing contents of your backpack
- Butt: From sitting on those innocent-looking, but evil, chairs
My morning started off with an informative presentation by Alan Bateman, the Spec Lead for JSR-203. JSR-203 is also known as NIO.2, the long-awaited update to the New I/O APIs first introduced in Java 1.4. I naturally have an interest in NIO since I wrote the book Java NIO for O'Reilly a few years ago.
NIO hasn't gotten much JDK love in the intervening years but that's finally about to change. The code for NIO.2 has just recently been approved for inclusion in the OpenJDK and is now available on java.net. NIO.2 includes datagram multicast, an extensive new filesystem API (file metadata, tree traversal, change notification, etc) and an asynchronous I/O framework for doing overlapped I/O with (optional) completion handler callbacks. As well as a host of smaller additions and tweaks.
Cliff Click's talk about developing lock-free data structures was fascinating. Intense, but fascinating. The secret to the highly scalable, massively concurrent algorithms he described is a rather simple Finite State Machine. By carefully defining how and when changes are made, hundreds or even thousands of threads can safely read and write a shared data structure without fear of reading stale information or clobbering another thread's update - and without using any locks. Read more about it on Cliff's blog.
As if that wasn't enough yummy goodness for one day. I met up with several friends for dinner, including Bill Venners who's co-authoring a forthcoming book on Scala. And who does Bill bring along but Martin Odersky himself, the creator of Scala. When Martin learned that I'd written a book on NIO, he perked up and said that Scala (especially Scala Actors) fit together with NIO very nicely. I beleve that Scala could turn out to have a serious impact on the Java/JVM world over the next few years. I'd like to see it getting more attention at next years JavaOne.
That's it for now. Time to trundle off to bed to rest my various aching body parts.