Java: The Good Parts
"Java: The Good Parts" by Jim Waldo (O'Reilly Media)
Jim Waldo discusses ten things he likes about Java, as well as provides an overview of what he thinks the language is good for (spoiler: large projects; multi-platform, long-lived, reliable software). Although Waldo has an impressive biography, and can certainly claim an in-depth knowledge of Java, he wears his experience (and learning) lightly. This book is conversational in style, amusing (for a programming book!) and not light on details.
My chief concern with this book is that I'm not clear who it's written for. On the one hand, there are chapters on packages, Javadoc and "the developer ecology" (essentially the tools that make the Java programmer more productive). However, each should be familiar, even to the beginner; and several can't really claim to be good parts of Java alone (Eclipse and Netbeans, for example, are excellent all-round IDEs and Javadoc-style documentation exists for several other languages). On the other, if you think that these topics are included to fill a gap between a 'teach yourself' introduction and Josh Bloch's Effective Java, think again; the chapter on remote method invocation and object serialization isn't for the faint-hearted, whilst the take-home message from the concurrency chapter is that programming for more than one processor is fraught with problems.
Waldo is clear that the things he likes about the language are based on his experience as a systems programmer. In this sense, the title is too general (maybe a subtitle is required?). If you (like me) write relatively small, single-user, graphical applications, then you might not find much of immediate interest. That said, one of the nice features of this book is that it gives an insider's account of some of the design decisions that underpin Java. And an understanding of the language at this level is both useful and interesting for all who use it on a regular basis.
In short, a good read that suffers for want of a specific audience. Unless you are a beginner, be prepared to skim over some familiar material before you get to the juicy bits. (And if you are a beginner, then this isn't the book for you!)
(Full disclosure: I received a free copy of this book through O'Reilly's Blogger Review Program.)