GROOVY




Groovy es un lenguaje de programación orientado a objetos implementado sobre la plataforma Java. Tiene características similares a Python, Ruby, Perl y Smalltalk. La especificación JSR 241 se encarga de su estandarización para una futura inclusión como componente oficial de la plataforma Java.

Groovy usa una sintaxis muy parecida a Java, comparte el mismo modelo de objetos, de hilos y de seguridad. Desde Groovy se puede acceder directamente a todas las API existentes en Java.

 El bytecode generado en el proceso de compilación es totalmente compatible con el generado por el lenguaje Java para la Java Virtual Machine (JVM), por tanto puede usarse directamente en cualquier aplicación Java.

 Todo lo anterior unido a que la mayor parte de código escrito en Java es totalmente válido en Groovy hacen que este lenguaje sea de muy fácil adopción para programadores Java; la curva de aprendizaje se reduce mucho en comparación con otros lenguajes que generan bytecode para la JVM, tales como Jython o JRuby.

 Groovy puede usarse también de manera dinámica como un lenguaje de scripting.

Groovy 1.0 apareció el 2 de enero de 2007. Después de varias versiones beta y otras tantas candidatas a release, el 7 de diciembre de 2007 apareció la versión Groovy 1.1 que finalmente fue renombrada a Groovy 1.5 con el fin de notar la gran cantidad de cambios que ha sufrido con respecto a la versión 1.0. En diciembre de 2009 se publicó la versión 1.7.





Otras características incluyen:

  • Curva de aprendizaje corta.
  • Soporte para lenguajes específicos de dominio (domain-specific languages)
  • Sintaxis compacta
  • Soporte para tipado dinámico
  • Potentes primitivas de procesamiento
  • La facilidad de desarrollo de aplicaciones Web
  • Soporte para las pruebas unitarias.

El concepto Groovy fue introducido en 2003 por James Strachan. Las versiones beta se hicieron disponibles desde 2004 a 2006. Versión 1.0 fue lanzado en enero de 2007 y la versión 1.1 fue lanzado en diciembre de 2007. Groovy está atravesando normalización en Java Specification Request (JSR) 241. El director del proyecto es Guillaume Laforge.

Veamos unos pequeños ejemplos

Hello World:

def name = 'World'
println "Hello $name!


Definiendo una clase:


class Greet {
    def name
 
    Greet(who) { 
        name = who[0].toUpperCase() + who[1..-1] 
    }
 
    def salute() { 
        println "Hello $name!"
    }
}
 
g = new Greet('world')  // create object
g.salute()              // output "Hello World!"


Utilizando las bibliotecas de Java:
import static org.apache.commons.lang.WordUtils.*
 
class Greeter extends Greet {
    Greeter(who) { 
        name = capitalize(who) 
    }
}
 
new Greeter('world').salute()

En línea de comandos:
groovy -e "println 'Hello ' + args[0]" World


 

No hay comentarios:

Publicar un comentario