I picked up Groovy Recipes @ NFJS, 2008. I've found it very helpful for showing me how to do some stuff without having to think about it or reference the Groovy API. I think this is a GoodThing(tm) when learning a new language where I don't have a lot of time to devote to it, on the job.
Programming Groovy was not yet published, at the time. (I'm pretty certain this book will cover what you covered in the meta-programming area.)
So, please, enlighten me on how Programming Groovy will help make me a groovier coder.
Venkat Subramaniam
Author
Ranch Hand
Joined: Jan 28, 2008
Posts: 79
posted
0
Mike, Groovy Recipes is a great book. As you mentioned, the real strength of Scott's book is to get you up and running with examples�you want to do A, here is the way to achieve that task. He calls it a code-first book. I thoroughly enjoyed reading it.
I think Scott's book and my book complement each other nicely.
The Programming Groovy book takes a concepts first approach. Here is why you do things and here is how you do things. It also goes into the depth of how to exploit the metaprogramming features and shows how to build your own DSLs using Groovy.
I mention that it is a concepts first book, but having said that, I am a very busy developer who does not have a lot of time. I know a lot of developers are like that. So, I wrote the book in a way busy Java developers can learn and apply the concepts on their own projects quickly. It takes you through the concepts quickly without wasting time in theories and gets you down to coding and applying the concepts right away.
Having read both books, here's what I see as the key difference between them: Groovy Recipes is, as the name implies, a cookbook. You can often use examples from that book in your code by just changing the variables, filenames etc. Programming [in] Groovy is more of a learn by example book. Each topic is discussed and then examples are given and then explained. The examples are more illustrative than useful. Unless you are coding a Car with methods like drive() and turn(), you probably won't copy these examples into your code, but they are well chosen for explaining the feature being discussed. Coming up with examples that highlight and clarify a feature can be very difficult and I think this is where Venkat's teaching experience shines.