I have tried few languages on JVM - Scala, Jython, jRuby and finally Groovy. I really liked Groovy for the following reasons and I believe I will be sticking with Groovy for long,
* Nearly a superset of Java. I can use what I know already. I was able to start immediately with what I know and what I hate (boiler plates). Entry barrier for a Java programmer is very low.
* Reuse Java libraries which I already know. Other JVM languages also provide this.
* Tooling - Eclipse. I can use the tool which I used for over a decade.
* Flexibility - No need to use Groovy fully. I can switch between Java and Groovy wherever I need/like.
* Incrementally learn groovy - I don’t have to learn Groovy completely. Iteratively i learn new ways of doing things - if I like I will retain, otherwise I will throw away.
* Reduce noise and boiler plate - Finally I don’t have to define getter and setters, public key words etc. It reduces lot of noise and let me focus on the implementation. This leads me to write programs which are simple and readable.
* Dynamic typing - I feel light when I use dynamic typing.
Java on steroids == Groovy!