miércoles, abril 29, 2009

Spring Roo, ¿competencia para Grails?

miércoles, abril 29, 2009 por Martín


Interesante lo de Spring Roo. No lo conocía pero he llegado a él a través de la lista de Grails.

El link de arriba, el oficial, la verdad es que no deja nada claro que es Roo (el nombre parece que está todavía abierto). Según la descripción de esa página, pues casi que podría ser cualquier cosa. Pero bueno, básicamente Spring Roo viene a ser la alternativa Spring a Ruby on Rails o Grails. Es decir, un framework creado bajo los principios de convención frente a configuración y que aprovecha al máximo Java y Spring.

Hace un par de días, uno de sus autores publicó esta entrada en su blog donde muestra como construir una aplicación web Java totalmente funcional en solo 11 comandos. Vamos, muy en la línea de cualquier tutorial de grails o rails pero siendo todo Java, sin nada dinámico. En la misma entrada hay un link a la primera versión descargable de Roo por si lo queréis probar.

Ni que decir tiene que el framework está totalmente centrado en torno a Spring, Maven, JPA, muchas anotaciones, el soporte de REST de Spring 3.0 y AspectJ, siendo este último lo que se utiliza para introducir el llamemos "dinamismo" en la aplicación. La verdad es que de buenas a primeras a mi esta propuesta se me antoja muy pero que muy interesante. Especialmente por las ventajas de ser estático en cuanto al soporte del entorno de desarrollo, que es lo que a mi más me atrae. ¡Pero dónde estabas hace un año por favor!

En esta otra entrada de blog comentan algunas impresiones sobre Roo extraidas del keynote de Rod Johnson en la SpringOne.

Bueno y ahora la pregunta, ¿y por qué Spring Roo si SpringSource acaba de comprar G2One y por consiguiente tiene Grails entre sus proyectos? Graeme Rocher contesta en la lista de Grails.

We're working on a formal FAQ to help answer some of these questions, but fundamentally SpringSource is about enhancing developer productivity and those who cannot move to Grails (due to corporate policy mandating Java for example) shouldn't suffer from an unproductive environment hence the existence of Roo. Ultimately whether you use Grails or Roo you're going to be using Spring so we don't necessarily see them competing.

Now Roo can only achieve so much within the limitations of a statically typed language and in fact does most of its tricks through AspectJ and code generation. We hope that it is a gateway drug so that users eventually move to Grails and experience the full productivity benefits of both the Groovy language and the Grails framework. Until then people sticking with only Java at least have Roo as an option.


La explicación tiene todo el sentido del mundo. El único problema es que no evita que se trate de dos frameworks muy parecidos. ¡Y ambos hechos en Java! Con la única diferencia de que Grails soporta y requiere groovy. No sé yo si mantener los dos tiene demasiado sentido, por lo que esto siembra algunas dudas. ¿Podrian converger en el futuro? Dejo abierta la pregunta por si alguien quiere opinar.

comments

3 Respuestas a "Spring Roo, ¿competencia para Grails?"
Joserra dijo...
22:12

Vaya, no había oido nada de esto todavía. Tiene pinta interesante. Supongo que tiene sentido eliminar Grrovy de la ecuación, pues en la mayoría de desarrolladores o sistemas puede generar rechazo la introducción de "tecnologías" nuevas. Me imagino por ejemplo en un entorno como puede ser el de banca...


Martín dijo...
8:59

Ahí tienes razón. De hecho yo creo que se nota bastante la influencia de la gente de SpringSource para bajar un poco a los desarrolladores de grails al mundo real.

Un ejemplo es que en 1.2 Grails pasa a estar basado en Tomcat en lugar de en Jetty. Jetty está muy bien pero a la hora de la verdad todo el mundo usa Tomcat. Así que es un poco un sin sentido el pasarse meses programando en Jetty para que al final todos los despliegues se hagan en Tomcat.

Respecto a la banca. Pues bueno, la banca nunca aceptaría un Jetty desde luego. Si se lo das en forma de WAR para Tomcat sí que te lo aceptarían. Pero vaya, que no creo que ni Groovy ni Grails estén en el portafolio de herramientas admitidas para desarrollo, así que tienes toda la razón ahí.


Alvaro Sanchez-Mariscal dijo...
12:00

El "miedo" a Grails no lo termino de entender. Al final te doy un WAR que lo puedes desplegar donde te dé la gana. ¿Qué más te da los jars que haya dentro?

Respecto a Roo, más les valdría dedicar más recursos al soporte de los IDE's. Aunque parece ser que habrá novedades en breve: http://twitter.com/graemerocher/status/1649622059