Ya no sorprende ver cada día un nuevo framework para desarrollo web ágil empleando técnicas de andamiage (scaffolding), modelado Objeto-Relacional, sistema de plugins, integración con la nube, ... todo lo que se viene llamando un Full Stack Web Framework. Desde el "boom" de Ruby on Rails fueron muchos los desarrolladores que implementaron su stack empleando herramientas de consola para automatizar la creación de código (CakePHP, symfony, Zend_Tool, django, Grails, ...)
En el mundo "puramente" Java, con lo cúal elimino de esta afirmación Grails (ya que es lenguaje Groovy), parece que eran más reticentes a esto de las herramientas para automatización de código y los desarrolladores preferían perder tiempo en interminables ficheros de configuración XML, véase la configuración de un proyecto Struts.
No deja de ser cierto que lenguajes como Ruby, Python o PHP, son más flexibles y permiten la implementación de estas funcionalidades de un modo más simple y directo (no necesariamente más eficiente) mediante metaprogramación o por el simple hecho de generar un fichero de texto con el código a interpretar.
PERO es aquí cuando la gente de SpringSource decide incrementar la productividad de los desarrolladores java creando Spring Roo. Esta herramienta facilita el acceso a todas las principales y más importantes tecnologías Java del momento, para crear aplicaciones empresariales sin perder en rendimiento. Haciendo uso de la consola que proporciona roo podemos crear la estructura del proyecto, las entidades JPA, los controladores y las vistas en Spring MVC, la interface en GWT, las búsquedas con Solr, flujos con Spring Web Flow, desarrollar nuestros propios «addons», ... y finalmente paquetizar nuestra aplicación en un fichero WAR para posteriormente desplegarlo en un contedor web.