Una posible definición de Groovy podría ser la siguiente: Groovy es un lenguaje de programación ágil y dinámico diseñado para la Plataforma Java con determinadas características inspiradas en lenguajes como Python, Ruby o Smalltalk, poniéndolas a disposición de los programadores Java mediante una sintaxis típica de Java.
Groovy tiene la posibilidad de compilarse a bytecode y ejecutarse en el entorno de la Máquina Virtual de Java, con lo que es posible utilizar prácticamente cualquier API en Java. Además, cuando con su propia API con funciones propias y mejoradas.
El hecho de que se pueda utilizar el API de Java, permite a los desarrolladores Java aprender el lenguaje de forma rápida y la curva de aprendizaje se reduce bastante en comparación con otros lenguajes que se pueden ejecutar en la JVM.
Las características que resaltan de Groovy son:
- Cuenta con la potente base de Java y algunas características de lenguajes de programación tan productivos como Python, Ruby o Smalltalk.
- El código generado es fácil de leer y mantener
- Permite la creación de lenguajes DSL (Domain Specific Language)
- Puede mezclarse con aplicaciones Java al permitir la compilación en bytecode
- Tipado estático y dinámico
- Existencia de closures que básicamente es un trozo de código empaquetado como un objeto y definido entre llaves. Actúa como un método, al cual se le pueden pasar parámetros y pueden devolver valores.
A día de hoy Groovy va ya por la versión 1.6.3 y puede ser descargado desde su web oficial http://groovy.codehaus.org. Su instalación es muy sencilla, ya que simplemente consiste en descomprimir el archivo y establecer un par de variables de entorno. La instalación dispone incluso de una consola para probar los fragmentos de códigos desarrollados con Groovy.