Low ceremony languages are surging in popularity. Developers are discovering the pleasure of working in a language they can mold to meet their problem. For developers new to these languages, the problem is often where to start. There are so many! Should it be Python? Perl? Ruby? JavaScript? Lua? Lisp? Groovy? Smalltalk?
Despite differences in syntax, these languages share important similarities. For example, they tend to make it easy to create, pass around, and invoke functions, even at runtime. If you have lived long in the kingdom of nouns, this is certainly an interesting change.
But if you are choosing a language to learn, you are probably more interested in how the various languages are different. The place where the low-ceremony languages differ most is in their support for metaprogramming. Unfortunately, good information on this topic is hard to come by. I am always on the lookout for good books on the metaprogramming features of languages, and Groovy finally has one (third). Part Three of Venkat Subramaniam's Programming Groovy is devoted entirely to Groovy's metaprogramming features. Sweet.
I won't tell you which language to use (unless you drink a Lagavulin or two with me), but if you are considering Groovy, read part three of Programming Groovy.