Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Developer Reading List

, August 20, 2013 New books on Windows internals, JavaScript, Groovy, Python, and P=NP
  • E-mail
  • Print

Programming Groovy, Second Edition

by Venkat Subramaniam

As I discussed earlier this year, Groovy is an excellent language for scripting on the JVM. It's also excellent for writing large programs that go well beyond what we call scripting. The release of Groovy 2.0 late last year brought considerable new magic to an already useful language. The big problem, as I explained, is that documentation of the new features has been slow to come to market.

This new edition of Subramanian's earlier book on Groovy does a very good job in filling the need for a usable tutorial. Its approach is to dedicate one chapter to each feature that truly distinguishes Groovy. In those chapters, Subramanian's ease with explaining difficult topics is very much in view — even discussions of AST transformations and compile-time metaprogramming are easily approachable. (Subramanian's earlier book with Andy Hunt, Practices of an Agile Developer, won the 2007 Jolt Award. So, he's been a good writer for a while.)

While I can recommend the book, it has some weaknesses to note. Subramanian's approach to all explanations is to present the code as scripts. As a result, there is no main() function presented anywhere, nor discussion of assembling and building large programs from all Groovy code. My second complaint is that the unusual ordering of the chapters — a problem in the first edition — has been carried forward to this edition. After two initial chapters on background info (installation and IDE options, then the differences between Java and Groovy), the third chapter dives into Groovy's complex optional typing, its implementation, and related esoteric topics such as multimethods. All this before the reader has looked at anything more than tiny snippets that compare Groovy code with Java. A reader new to JVM languages would be completely lost.

For seasoned developers, the latter gripe won't matter terribly. But even experienced developers will be forced to address the first complaint by looking up the material elsewhere — which is not what you want when reading a language tutorial.

In sum, this book is the best Groovy 2.0 title available at present; it's well written and very clear, and should be the first choice for developers interested in Groovy — despite its limitations. For Groovy developers, it's a must-buy update.

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.