I recently finished reading Venkat Subramaniam's latest book, Programming Groovy: Dynamic Productivity for the Java Developer. Over the past couple of years I've read quite a few books covering the Groovy language, but Venkat's book has by far been the best.
I've had the chance to hear Venkat speak a few times and his presentation skills are top-notch. Not surprisingly, I discovered that many of those strong communication skills transferred into his writing as well. The book is written in a clear and concise manner. Each chapter is relatively short and focused making the book easy to digest.
Programming Groovy is divided into three sections:
1. Beginning Groovy - This section covers basic topics in the Groovy language such as working with dynamic typing, closures, and collections.
2. Using Groovy - This section introduces Groovy's built in libraries and demonstrates how they can be used to simplify everyday programming tasks such as working with a database and reading/writing XML.
3. MOPping Groovy - This section alone makes this book worth every penny of its cover price. Before reading this book I personally found it slightly difficult to find good information about Groovy's metaprogramming capabilities. In this book however, Venkat dedicates seven well written chapters to the subject. Plenty of examples are given that illustrate the practical uses of Groovy's metaprogramming capabilities as well.
The sections and chapters in Programming Groovy are relatively isolated so it is pretty easy to jump around in this book making it a great reference for the Groovy language. As the title suggests, this book is strongly geared towards Java developers. Since Java and Groovy are such similar languages there is a very low learning curve and most Java developers will be able to read through this book pretty quickly.
In summary, Venkat's book is certainly worth looking at if you're interested in learning about the Groovy programming language. It also serves well as a "training wheels" approach for Java developers who are looking for an easy introduction into the world of dynamic languages.

Comments
Post new comment