viernes, 2 de noviembre de 2007

Rails vs. J2EE

Si, ya lo se, J2EE es una de esas maravilla de la ingeniería del software aplicada, y ya se que es ideal para la implementación de software escalable y poco acoplado, pero me he topado con una imagen que me ha dado ganas de llorar...

Como muchos sabreis llevo varios meses desarrollando un proyecto con la tecnología J2EE con struts2 y todo eso, por lo que me he tenido que leer una gran parte de todos esos libros de la izquierda en sus versiones actualizadas. Siempre he mantenido en el punto de mira a Ruby y su framework Rails, pero no es hasta ahora, después de comprender la complejidad y la extensión de J2EE, que me doy cuenta de los beneficios de Ruby on Rails.
El hecho de que no haya que preocuparse de la persistencia gracias a genialidades como ActiveRecord o el milagro del Scaffolding, que prácticamente te pone en bandeja la arquitectura de tu aplicación hacen que Ruby on Rails destaque sobre J2EE para construir aplicaciones basadas en bases de datos de la forma más eficiente.
¿Entonces para qué queremos Java? Pues para todo lo demás... ¿Que pasa si se os encapricha construir una aplicación distribuida con interfaces portables entre sistemas operativos? Bueno, con Ruby y AJAX todo es posible, pero aún les queda un largo camino por delante..
Por tanto, apuesto por Rails fuertemente para desarrollo de aplicaciones web, pero auguro una larga vida a Java dada la flexibilidad del lenguaje y la potencia de J2EE. Afortunadamente, los frameworks para java han tomado buena nota de las maravillas de Rails y ya podemos ver en Struts2 muchas de sus características, eso sí, J2EE es no apto para novatos.

Ruby on Rails
Struts2

1 comentario:

Unknown dijo...

Java es el rey en aplicaciones empresariales. Pero para aplicaciones web le queda muchisimo. Yo trabajo en desarrollo j2ee con weblogic en un banco y la norma es que para cualquier desarrollo estas 2 dias intentando corregir los errores ya sea de clases o de ambiente y el resto del tiempo te lo llevas haciendo codigo que debería estar oculta a la vista. Creo que el 20% del tiempo es para programar lógica del negocio. Java está orientado a grandes empresas que no les importa malgastar su dinero en el desarrollo. Es comun que un problema en un ejb o un servlet se soluciones simplemente borrando y recompliandolo nuevamente. ¿eso es estabilidad? Yo en mi tiempo libre hago cosas en ruby y en django y en realidad estos frameworks le llevan bastante ventaja en web. La norma es que el 90% del tiempo está origentado a la programación de la lógica del negocio. Asi que la productividad es genial. Pienso que estos frameworks pueden ser usados en grandes empresas siempre que se lleve un muy ordenado diseño de las aplicaciones. como ejemplo. Digg esta echo en ruby. Su hardware son 2 servidores y puede atender 500 mil. Ruby y otros frameworks pueden escalar sin tanta complicacion. Con todo esto lo que quiero decir es que el lenguaje no importa mucho. Lo que importa son las herramientas Con algo de imaginacion es posible crear aplicaciones fantasticas que escalen una barbaridad.