Also posted to JavaRanch's Bunkhouse in the Miscellaneous section. If you haven't noticed, by the way, the Bunkhouse now supports searching, so you don't have to guess at categories to find a review of interest.
The Bunkhouse has a 250-word limit for a review. Usually I have to edit my first draft for that. This time I wrote the short one first though, as Amazon was offering the book for pre-order only, and so not accepting reviews. As a result the Amazon review is a bit different, not just more detailed.
Today Amazon has announced it will ship Effective Java starting June 14. If you were lucky enough to attend JavaOne, however, copies were plentiful. I understand they added 2-3 additional signing sessions with Joshua Bloch to cover that demand. That is a programming rock star, friends. If that wouldn't convince you, check the attendance at Bloch's talks. Huge. Might want to take a note for your second edition, Ed Burns.
I've posted two versions of this review: one on Amazon, and a 250-word version for JavaRanch's Bunkhouse.
It wasn't a sad departure, though. As Java grew up, more people wanted to do real day-to-day work with it. Day-to-day work, alas, leaves me cold. The interest in this kind of programming has far more to do with knowing every little thing about every little problem, and less to do with creative problem-making (!) and problem-solving. I was fine with leaving Java training that seemed to be less about adopting and learning and more about doing and tracking bugs and workarounds.
Now the same thing is happening with Solaris 10. There are people far more adept at memorizing support matrices and knowing which point release changes what interface. I'd rather demonstrate, for example, how to combine ZFS and Solaris Zones for an interesting effect, or an easy (if fragile) way of growing a list of DTrace one-liners for your own use.
My conference week started out at Community One, during which I listened to the Data Charmer himself, Giuseppe Maxia, hint at some interesting hacks possible with MySQL. In that very brief hour, I remembered what it was I enjoyed so much about programming and systems to begin with -- finding useful things in unexpected places.
The next day Christine Flood presented Fortress, a programming language under development at Sun Labs. I'm far from the target audience for this sort of tool, but I'll blog later on the importance of some of its traits, including implicit parallelism, parametric polymorphism, and support for specifying units of measure. I've been waiting on this last idea a long time, as I have no idea what it takes to incorporate such a thing elegantly into a programming language.
I also heard Robert Chinnici speak enthusiastically on JavaScript -- a brave act in itself -- and was more than a little persuaded, finally, to investigate it. Lo and behold, on the Pavilion floor also was a space for another Sun Labs' project called Lively Kernel -- a means for developing web applications entirely in JavaScript. Implicit in the this project's development are some head-spinning concepts. Where's the source? Well, if you're on their page, you have it, right? Uh...um...oh yeahhhh.
Rounding out the day, I saw a presentation on JavaFX Script with Amy Fowler and Shannon Hickey. During the session, I could feel my antipathy for Swing coding, which I abhor, turning over. I had imagined that Java was doing interesting things in my long absence, but now I wanted to know what those things were. Any tool that could persuade me to give Swing coding another chance -- and JavaFX certainly did that -- merits praise.
Finally, I saw a presentation on a game engine, jMonkeyEngine, that made me think I could play with such a thing and enjoy it. Also very cool. The presentaions Monday alone made my entire week. Never mind that I got to hear Joshua Bloch talk and get a couple of his books signed; it turns out that part of my Amazon review of Effective Java is one of the praises printed in the 2nd edition. I was a long overdue for a geek thrill (I had breakfast with Brian Wong, another hero in my nerd pantheon, three years ago), and was very happy to have one now, especially after waiting a bit in line for an autograph.
Talks of more immediate importance to me centered on Java Business Integration, Service-Oriented Architecture, Composite Application design patterns (the link given here is not related to the talk at JavaOne), and applying those things in Java CAPS particularly. It was very helpful to see Michael Czapski and Frank Kieviet talk on the subject (and plug Java CAPS Basics, a long-awaited book). It's a sad fact of life that technical training, as a business, can't scale to demand by offering leading authorities to deliver training session. Most customers wouldn't care to pay for that luxury anyway. And so it happens that Michael and Frank covered in a few minutes what had taken me months to figure out on my own. Oh well; it was still worth it to know that, however blind I am to the internal information on this product line, that what I had learned on my own was on target.
One more thing before I close this rather length entry -- the lab I took on troubleshooting Java with Dtrace was time well spent. Granted, I was already burnt from a long day; I was still thrilled to see several lab examples matched a lot of custom material I've written for Sun customers over the last year. There's something about eating someone else's cooking for a change, sure. But the grind of work, also, has made a lot of what I've been doing seem lifeless. Dtrace makes a lot of Java heads hurt, especially those accustomed to a Windows environment. Being a trainer, too, is problematic. I rarely feel, in this role, like I am on top of the game. The same blessing of educating -- you get to learn from everyone around you -- can be its curse: you're often made aware of a growing cloud of Stuff You Don't Know. At my best, I can turn that to an advantage. But when I'm spent, I feel inadequate to my job.
I didn't realize how much I needed to feel excited again. My thanks to all the speakers I saw for their enthusiasm and for showing the cool in all these new toys.

