Durante los últimos 5 años, la comunidad internacional de desarrollo de software empresarial ha hablado mucho acerca de un framework que ya es considerado legendario, como lo que le sucedió a Java en los 90’s: Ruby On Rails también conocido como RoR.
Debido a su éxito, nacieron otros proyectos intentando reproducir la belleza de este framework de desarrollo web ágil para otros ambientes. Entre estos se han destacado: Grails, TurboGears, MonoRail y más recientemente Roo y Scooter.
Lo que principalmente caracteriza a estos frameworks es:
– El Patrón Convención por sobre Configuración
– El Patrón MVC (Model-View-Controller)
– El Patrón Dependency Inyection con el uso de Contenedores de Inversion of Control
– El uso de ORMs (Object Relational Mappers) para la capa de acceso a datos implementando además el Patrón ActiveRecord
– Generadores de esqueletos de código mediante Scaffolding
– Y finalmente la utilización de algún lenguaje orientado a objetos dinámicamente tipeado (como Ruby, JRuby, Groovy o Python) en contraste con los lenguajes fuertemente tipeados (como Java o C#). Scooter ha tenido que eliminar algunos comportamientos dinámicos para poder trabajar con código 100% Java mientras que Roo, que también utiliza código Java, ha podido mantener el comportamiento dinámico característico de esta clase de Frameworks mediante la implementación de AspectJ.
¿Qué significa todo esto en la práctica? ¿Qué beneficios puede traer el uso de estos frameworks a las empresas o a la universidad? ¿Qué beneficios aportan ellos a la formación de un profesional de desarrollo de software?