|New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About| |
Keywords: Java, programming languages Title: Java : The Good Parts Author: Jim Waldo Publisher: O'Reilly ISBN: 0596803737 Media: Book Level: Intermediate/Advanced Java Verdict: An interesting read |
New Java titles are few and far between these days, so O'Reilly's latest tome on the topic stood out instantly. The 'Good Parts' series gives authors the chance to wax lyrical on their language, and in this case it's veteran Sun developer Jim Waldo who gets to pick his favourite things about Java.
In a series like this there's obviously a high degree of subjectivity involved. Jim Waldo interprets his brief in the widest sense and looks at the broadest definition of Java. So he covers language topics, the platform itself and even takes a brief look at NetBeans and Eclipse.
In terms of the platform he points out the wonderfulness of the Java virtual machine - providing an abstraction over the particularities of whatever operating system you're running on. Not only does this give us the possibility of write once run anywhere, it also frees us from dependence on particuylar memory models. The benefits of the JVM have meant that it is increasingly a target for other programming languages - and not just those, like Groovy, which are based on Java.
Other topics that are picked as 'good parts' include the collections framework, interfaces, remoting (reflecting the authors own involvement in its development) and more. The discussion in each case takes in not just the benefits but also discusses inconsistencies, compromises made during development and downright annoyances at all. This is by no means a biased song of unbridled song of praise but a realistic appraisal by someone who was on the inside track for some of these developments.
One could argue that certain topics are missing or that there's too much focus on others. For example an advantage of Java is that there is a vast ecosystem of supporting tools, documentation and developer communities. And, as a downside an increasing feeling that the languag is becoming bloated and complex (a topic that is touched on in discussing generics in the chapter on the collectins framework).
In all, however, experienced Java developers looking for a book fix will probably appreciate the read. For those new to Java there's some interesting topics (for example the discussion on memory leaks bears careful study), but this isn't really a tutorial (despite a fair amount of sample code included throughout the text).