While we all happy that python, ruby, js and other languages developers understood the JVM strengths and decided to port their code to run over the JVM using JRuby, Jython etc….porting from one language to another is typically worse comparing to writing in a unique scripting language that has been developed for the Java community!
Groovy is such a language, it’s a scripting language for the Java developers, and that’s how Groovy’s creator thought about it when they had develop it.
The main advantage is the ability to use the J2SE API internally in groovy (all of course all the advantages of scripting).
In example , the Java collection API is so mature and it is awesome that a Groovy developer can use it naturally, moreover, the Java community is blossoming and provide us with millions of external cool libraries which can be used by the Groovy developer.
Other than that, the root object in groovy ,as in Java, is java.lang.Object, which give us “for free” the .hashCode() and .equals() important methods …
The groovy language is trivial to grasp for a Java develop, which is bidirectional!
Think of groovy as a Python like language that is tightly integrated with the Java which allowing you the same powerful and concise coding syntax as Python but allowing you to stay on the JVM and protect your investment in J2SE, J2EE and all the plethora of great useful Java code out there without any parallel API sets or adapter layers.