Lenguaje #32

Groovy 2003

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.

Dominio: JVM scripting / DSL Paradigma: dinámico con opción estática Compila a bytecode JVM
Ficha técnica

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.

JVM Dinámico DSL
Historia y evolució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.

Personas e hitos

James Strachan (creador), Guillaume Laforge lidera el proyecto, equipos de Gradle y Spock impulsan su uso. La fundación Apache lo hospeda.

Uso y propósito

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.

Sintaxis y estructuras

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.

Ecosistema

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.

Influencias y legado

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.

Anécdotas y cultura

El operador Elvis (?:) y safe navigation (?.) son distintivos. Muchos proyectos de Android usaron build.gradle en Groovy. Spock es apreciado por pruebas legibles.

Estado actual

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.

Groovy aportó sintaxis concisa, DSLs y pruebas expresivas a la JVM, dejando su marca en herramientas como Gradle y Spock.