Download Day 2008

groovy

Imagen de gorlok

Groovy

Sin tener novedades sobre el proyecto AOJava, aprovecho para contarles un poco en qué ando. Cambié de trabajo hace unos meses, ahora ya casi no tengo que viajar. Me encuentro laburando a fondo con java, struts2, spring, hibernate y algunas otras cositas.
Mientras tanto, estoy investigando/aprendiendo el fantástico lenguaje Groovy, sobre el cual ya había comentado algo anteriormente.
Groovy es y no es un nuevo lenguaje. Es una vuelta de tuerca a java. Es un lenguaje de scripting con características similares a Ruby, Python y/o Perl, pero con una sintaxis "a la java". De hecho, recientemente descubrí que un programa java es un programa groovy, que todavía no ha sido "groovyficado" Sacar la lengua
Groovy es un lenguaje que ha sido estandarizado y adoptado oficialmente como el segundo lenguaje dentro de la plataforma java (siendo el lenguaje java el primero). A diferencia de otros lenguajes que han sido portados a la JVM, Groovy es un ciudadano de primera clase para el JRE. Groovy ES JAVA, pero con una sintaxys muy relajada, simplificada, dinámico, y que suma muchas características que no están presentes en java: como las tan nombradas "clousures" (o bloques de código), manejo de listas y mapas con todos los chiches, sobrecarga de operadores, aumentando la api java para agregarle uniformidad en viejas diferencias y simplificidad a su uso. Toda la api java es accesible desde groovy, y todas las clases y scripts groovy son accesibles desde java. La integración es completa y mutua.
Se dice que todo lo que puede hacerse con groovy, se puede hacer con java. ¿Entonces para qué aprender otro lenguaje? ¿Qué nos aporta? Nos aporta velocidad y simplificidad en muchos casos, permitiéndonos escribir soluciones más simples y elegantes a los problemas, al punto de permitirnos ir más allá con diseños que serían más difíciles de expresar con tanta claridad en java, lo que finalmente nos abre las puertas a pensar de otra manera (a veces mejor).
¿Entonces ahora vamos a programar todo en groovy y chau java?! NO, nada más lejos. Groovy es el complemento ideal, el amigo del alma, de java. Nos permite probar ideas rápidamente, especialmente para hacer prototipos. Nos permite hacer aplicaciones chicas o medianas en una fracción del tiempo. Nos permite hacer tests más rápido y claros. Nos permite "pegar" todos los componentes de un sistema fácil y rápidamente. Y muchas cosas más que recién estoy descubriendo.
Groovy es una pequeña maravilla, pero no es la solución a todo. Como muchos lenguajes de scripting, la ausencia de tipos (aunque podemos usarlos como en java, groovy brilla cuando nos olvidamos de ese "detalle"Guiño, hace que para código crítico no sea la mejor opción en todos los casos. También, groovy todavía no es tan rápido como java en ciertas situaciones, aunque esto mejora con cada nueva versión. Una posibilidad es prototipar con groovy, y luego trasladar a java las regiones críticas y aquellas que necesiten del máximo de performance.
Para finalizar, groovy se presenta como una alternativa seria dentro las opciones que tenemos en java. No viene a reemplazar nada, sino que viene a complementar la plataforma java cubriendo un faltante importante que había, y parece que de la mejor manera.
¿Qué estás esperando para probar groovy? Estoy seguro que te va a fascinar.
Además, ya hay algunas herramientas y frameworks muy interesantes que usan groovy, como el caso de Grails. Grails toma algunos conceptos de RoR, que los lleva a java y los potencia aprovechando todo el poder de la plataforma java. Utiliza los mismos conceptos de "programación por convención", pero se apoya en hombros de gigantes: como lo son spring, hibernate y sitemesh, en lugar de reinventar la rueda, se presenta como una alternativa viable y muy tentativa para la programación rápida de sistemas web, sin perder un minuto de vista la posibilidad que nos brinda java cuando los requerimientos escapan de lo convencional, para brindarnos lo mejor de ambos mundos Guiño

Imagen de gorlok

Usar Groovy para escribir shell scripts

Leyendo Barrapunto, encontré artículo muy interesante sobre la automatización de tareas usando Groovy, que es un interesante lenguaje dinámico que corre sobre la VM de Java.

Para conocer más sobre Groovy, pueden visitar el sitio de Groovy.org.es

Distribuir contenido