I started to learn and use Groovy last month. I feel like Groovy is like a programming language “Eintopf“, it aggregates some best characteristics of a variety of programming languages. No matter which programming style you prefer – procedural, functional, object-oriented, meta-programming, static typed, dynamic typed… – Groovy has much to offer. The most beautiful thing is, you can easily combine different programming styles in one language and write most concise and self-explanatory code to solve your problem. With Groovy, you suddenly have so much mind-freedom, you have the choice of expressing your algorithms as close to the nature of the problems as possible.
There are languages having very concise syntax but the code is not easy for human to read. There are languages and APIs require more strikings on keyboard than thinking. Groovy is different. You have all kinds of syntax sugar while the code still tells a literal story in your problem domain.
The only fields I think Groovy might not be suitable are the machine-level infrastructures and image/audio/video processing. C and assembly languages are not replaceable by Groovy.
I started off by simply renaming all .java files in my test packages to .groovy files. Worked. Then tried out it’s closures and curry calls. For me there are a lot more to explore. Haskel fans will like Groovy. Smalltalk fans will like Groovy. Python fans will like Groovy. Lisp fans maybe too. Java folks? I for one, have already been conquered. If you program at all, by all means do yourself a favour and have a look at Groovy.