Algunas impresiones sobre Groovy

Poco a poco me está gustando más Groovy, a priori, se puede pensar que como es un lenguaje de programación dinámico es un lenguaje sencillo, nada más lejos de la realidad.

Es un lenguaje que tiene una sintaxis parecida a Java pero con sus añadidos resulta más compleja, existe un documento donde se nombran las principales diferencias entre Groovy y Java. Además, usando Groovy contamos con la ventaja de que podemos aprovechar el conocimiento que ya tenemos, además de por su sintaxis, por su integración con librerías java.

Además, me gustan las capacidades dinámicas del lenguaje y su ExpandoMetaClass para añadir comportamientos a una clase(añadir métodos, atributos y constructores usando closures), me falta empezar a utilizar estas features del lenguaje a las que les tengo ganas :) y que me ayuda a pensar cómo estarán desarrolladas algunas partes de grails.

Para empezar a “jugar” con el lenguaje no puedo dejar de recomendar los artículos que escribió Andrés Almiray en groovy.org.es de Introducción a Groovy(partes 2 y 3), dónde explica con detalle muchas de esas diferencias entre Java y Groovy.

6 Responses to “Algunas impresiones sobre Groovy”

  1. Christian Barahona Says:

    A mí me desanima el rendimiento de Groovy contra Java, es en promedio el doble más lento que Java.

  2. Jordi Says:

    Jeje, tiempo al tiempo Christian, lo que no se puede es obtener un rendimiento similar al de Java en tan poco tiempo cuando hace practicamente nada que tenemos la 1.5.

    Por otra parte para mi una de las grandes ventajas de utilizar groovy es utilizarlo como complemento. Puedes utilizar tus procesos críticos con Java y lo que no importe tanto en rendimiento groovy :) .

    Por otra parte creo que estamos demasiado obsesionados en intentar obtener un rendimiento brutal en todo lo que hacemos. Personalmente si tengo que perder un poco de rendimiento pero ganarlo en productividad estoy encantado de pagarlo (en según que procesos, ojo).

    Saludos.

  3. Dani Says:

    Como dice Jordi, habrá que dejar que madure Groovy. No se van a centrar en tratar de tener un rendimiento fantástico desde el principio, sin saber a ciencia cierta por dónde les vendrán los problemas. Y lo dicho, con su integración con java no hay ningún problema en combinarlos si tienes necesidades de mejoras de rendimiento.

    Por cierto, creo haber leído en alguna parte que para la 1.6 trabajarían en mejorar el rendimiento.

  4. Kike Says:

    Una preguntilla, que me interesa el tema: ¿con qué framework trabajas? No logro instalar la del netbeans 6M1….

  5. » Usando ExpandoMetaClass Says:

    [...] Como ya comenté, una de las cosas interesantes que veía en groovy era ExpandoMetaClass. [...]

  6. idecasso Says:

    Hola, se supone que el rendimiento de Groovy en 1.6 es de 150% a 450% más rápido de lo que era hasta ahora. En realidad su sintaxis es sencilla, lo que necesitamos es acostumbrarnos al uso de las clousure y otras cosas. Aparte de los Expando, podemos usar MetaClass para añadir nuevos métodos y atributos a las clases existentes, aunque por experiencia propia no puedes modificar ciertas clases y metodos; por ejemplo, para añadir un objeto String nombre a la clase String(una clase final y que no podemos extender) seria el código asi:

    String.metaClass.nombre = “”
    String s = “Hola mundo”
    println s
    println s.nombre
    s.nombre = ” idecasso”
    println s
    println s.nombre

    la salida de la consola es
    Hola mundo

    Hola mundo
    idecasso

    Groovy viene integrado en Netbeans 6.5, para estoy hay que instalar la version completa.

    Groovy resulta útil para implementar rápido grandes partes del sistema y dejar las partes críticas a Java, además de que se integra por completo con Java(Salvo los Expando y los MetaClass que no se pueden usar en Java).

Leave a Reply