Datos esenciales
2003, creado por James Strachan. Lenguaje dinámico para la JVM, interoperable con Java, con type checking opcional y soporte a closures y metaprogramación.
Lenguaje #32
Groovy es Java con esteroides: sintaxis concisa, dinámico pero con opcional estático, y scripting sobre la JVM. Potenció DSLs, automatización (Gradle) y servicios ligeros sin perder interoperabilidad con Java.
2003, creado por James Strachan. Lenguaje dinámico para la JVM, interoperable con Java, con type checking opcional y soporte a closures y metaprogramación.
Comienza como scripting para la JVM. Groovy 1.x populariza builders y GStrings. Groovy 2.x añade static type checking opcional. Se estandariza en Apache (2015). Gradle adopta Groovy para sus build scripts; Spock trae BDD y pruebas elegantes.
James Strachan (creador), Guillaume Laforge lidera el proyecto, equipos de Gradle y Spock impulsan su uso. La fundación Apache lo hospeda.
Scripts en JVM, DSLs (Gradle builds, Jenkins pipelines), pruebas (Spock), servicios web con Grails, automatización y glue code con acceso directo a librerías Java.
Closures, GStrings, builders, dynamic dispatch, optional typing (def vs static), categorías/metaClass para metaprogramación, colecciones con métodos enriquecidos, safe navigation y operador Elvis.
Gradle (build), Spock (testing BDD), Grails (web), Jenkins pipelines, Apache Groovy SDK, integración con todas las librerías Java, gestores de paquetes como Grape.
Demostró que la JVM puede hospedar un lenguaje dinámico conciso. Influenció Kotlin (interoperabilidad y sintaxis amigable) y scripts de build modernos. Gradle y Jenkins pipelines son su huella más visible.
El operador Elvis (?:) y safe navigation (?.) son distintivos. Muchos proyectos de Android usaron build.gradle en Groovy. Spock es apreciado por pruebas legibles.
Groovy sigue activo bajo Apache. Aunque Kotlin creció, Groovy permanece en Gradle, Jenkins y entornos que valoran DSLs dinámicos y compatibilidad total con Java.