Author: Benjamin J Evans & Martijn Verburg
Audience: Intermediate to advanced Java programmers
Reviewer: Mike James
What makes a well-grounded Java developer? This book has a clear opinion.
Don't bother buying a copy of this book if you are a Java beginner or not interested in learning about things that might be considered a little off-topic. The subtitle, Vital techniques of Java 7 and polyglot programming, gives you some idea how far the book ranges.
Despite the inclusion of "Java 7" in the title, this is not a guide to the latest features. Part 1 does cover specific issues with Java 7, but it is only two chapters long and the second chapter focuses on Java I/O.
Part 2 is called "Vital Techniques" and what you get out of it depends on what you are interested in. There are chapters on dependency injection, concurency, class files and bytecode, and performance tuning. Given the range there should be something that appeals to most programmers.
Each chapter attempts to explain the real world ideas and practices of the topic. The accounts are well written and offer the reader lots of reasons why things are the way they are - not so much a history lesson, more an indication of the way things were done and how it improved.
Part 3 is the detour into other languages that run on the JVM. - Groovy, Scala and Clojure. The book presents potted overviews of each and a discussion of what make them worth considering as Java alternatives.
The final part is on using a mixed-language, i.e. polyglot, approach to a project. It covers test driven development, build and CI and web development. The book ends with an overview and a look ahead to the next version of Java.
This isn't a book that solves particular problems. It is more a general reading book about a range of advanced Java topics. Don't buy it if you are new to Java or if you hope to pick up some quick hints-and-tips.This is a book to read slowly, enjoy and digest.