Google I/O es uno de los más importantes acontecimientos para desarrolladores que suceden cada año.

En éste foro es donde Google y otras compañías anuncian sus aportaciones más novedosas. Uno de los protagonistas en este evento ha sido Google Web Tolkit (GWT), centrando la atención de numerosas presentaciones y sobre el que se han conocido numerosas mejoras. Muchas compañías han aprovechado para subirse al carro de GWT, y entre ellas, SpringSource ha anunciado la incorporación de GWT en su producto Spring-Roo.

Resultado de imagen de spring roo
Resultado de imagen de Gwt

Roo es la apuesta de SpringSource para crear aplicaciones web de una manera muy rápida en el mundo Java. La primera vez que tuve la oportunidad de experimentar con Roo fue en el Spring2gx de Madrid, y mi primera pregunta fue ¿por qué SpringSource desarrolla Roo si ya tiene Grails?, la respuesta es bastante simple: hay muchas empresas que todavía no están preparadas para (o no quieren) hacer una migración a Grails, unas veces por razones políticas, otras por miedo a introducir nuevas tecnologías, por rendimiento, etc.

Roo aporta en estos casos toda la potencia de las herramientas que acompañan a frameworks ágiles como Rails, Grails, etc., pero sin renunciar a la entrega de aplicaciones puramente java.

Algunas preguntas

Un ejemplo WEB

Vamos a crear una simple lista de contactos que nos permita añadir, modificar y eliminar amigos.

project --topLevelPackage com.project.contacts

persistence setup --provider HIBERNATE --database HYPERSONIC_PERSISTENT

database properties set --key database.url --value jdbc:hsqldb:/var/tmp/contacts.db

entity --class ~.domain.Contact

field string nombre --notNull --sizeMin 1 --sizeMax 30 --class ~.domain.Contact

field string apellido --notNull --sizeMin 1 --sizeMax 30 --class ~.domain.Contact

field string telefono --notNull --sizeMin 1 --sizeMax 15 --class ~.domain.Contact

test integration

controller all --package ~.web

exit

- Ejecuta la aplicación mvn jetty:run y abre tu navegador http://localhost:8080/contacts

<h1 class="block block-header h--h20-175-500 left  add-last-dot">
  El mismo ejemplo en versión RIA con GWT
</h1>

- Ejecuta roo.sh y escribe éstas órdenes: ```

gwt setup 
exit

Limitaciones

Conclusión

Aunque no habrá una versión estable de Roo+GWT hasta dentro de algunos meses, la tendencia de SpringSource es facilitar al desarrollador hacer aplicaciones web de una manera rápida.

Justamente ésta es la característica que ha hecho a muchas empresas considerar Rails, Grails u otros frameworks ignorando otros inconvenientes (rendimiento, knowhow, etc). ¿Quién no está harto de ver presentaciones donde se defienden las bondades de estos frameworks haciendo una aplicación en 10 minutos con un par de entidades y un 'scaffolding'?

GWT proporciona a las aplicaciones RIA numerosas ventajas: usar Java en lugar de JS, testeabilidad, reutilización, rendimiento, detección de errores, etc., y Spring todo un ecosistema para desarrollar aplicaciones grandes. Ahora Roo añade la facilidad de la puesta en marcha de un proyecto y la velocidad en hacer tareas que son pesadas: crear entidades, beans, tests, controladores, vistas, etc.

Cuéntanos qué te parece.

Enviar.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.