Groovy Programming is an introduction to the Java-based scripting language Groovy. Groovy has much in common with popular scripting languages such as Perl, Python, and Ruby, but is written in a Java-like syntax. And, unlike these other languages, Groovy is sanctioned by the Java community for use on the Java platform. Since it is based on Java, applications written in Groovy can make full use of the Java Application Programmer Interfaces (APIs). This means Groovy can integrate seamlessly with applications written in Java, while avoiding the complexities of the full Java language. This bare-bones structure also means Groovy can be used as an introduction to Java and to programming in general. Its simpler constructions and modern origins make it ideal as a first language and for introducing principles such as object-oriented programming. This book introduces all the major aspects of Groovy development and emphasizes Groovy's potential as a learning tool. Case studies and exercises are included, along with numerous programming examples. The book begins assuming only a general familiarity with Java programming, and progresses to discuss advanced topics such as GUI builders, Groovlets, Unit Testing, and Groovy SQL.
I was torn as to whether to give this one three stars or four, but given the drek that passes for most programming language books these days, I felt like the authors deserved the credit they were due.
First off, as much as I hate to say this because it could be taken entirely the wrong way, for me this book benefits from the authors both having English be their first and primary language. I will admit that there are times I can be slow on the uptake, and as a result sometimes the language barrier - even small things like inelegant use of idioms and a lack of familiarity with proper pluralization, push me over the edge into a place where it takes me longer and requires more effort to understand something than I am willing to expend.
The book is well laid out in a logical fashion, explaining language features in an order that makes sense, and in a clear, concise tone that I find refreshing.
A real stand out here are the exercises. They are numerous, thought provoking, and genuinely server to re-enforce and expound upon the text in a way rarely seen in the genre.
Another aspect of this book that really shines in my opinion is that it is written by two educators - these are people who actually *know* how to teach a language, and their knowledge and experience lend much toward making this a smoother ride than many introductory programming language texts you'll find at the book store.
Despite its subtitle, this reads a lot more as an introduction for people who aren't familiar with Java at all. Most of the book is spent introducing concepts that a Java developer will be familiar with, and practically no time is spent on the way little differences ultimately change the way you write code. The appendices note that while Groovy supports interfaces, you don't really need them (in general, I found the appendices vastly more informative than the meat of the book). I would have also liked a bit more in-depth discussion of what makes good Groovy code.
And, while there is a lot of good information here, the authors get bogged down in odd and not-especially-relevant minutiae. Exercises involved those old standbys File IO and Swing. The authors bring up the overloaded "<<" operator several times as though it were God's gift to programmers. Maybe it IS spectacularly useful. The text didn't justify it.
So, meh. Probably a useful reference, but not a good teaching tool.