¿Ruby on Rails está muerto?

La sensación general de los que escriben éste artículo es que Ruby on Rails está muerto. O mejor dicho: el efecto Ruby on Rails ha muerto. El objetivo de éste artículo es plasmar un breve análisis que hemos realizado entorno a Ruby on Rails (en adelante, RoR) , tratando de comprobar si realmente el efecto RoRls está muerto. Y, sobre todo, queremos abordar la cuestión abandonando todo fanatismo y defensa sectarea de cualquier lenguaje.

No es difícil observar cómo se ha incrementado la popularidad de Ruby en los últimos años. Desde el nacimiento y popularización de su framework RoR se han escrito ríos de tinta a favor y en contra de ésta solución para el desarrollo web.

Nuestra tesis dice que:

  1. pese a RoR nada más salir parecía netamente mejor que otras opciones como PHP o Java, se demuestra que realmente es débil donde PHP o Java son fuertes con lo que, si es mejor que PHP o Java, lo es sólo en parte.
  2. PHP y Java han ido absorbiendo o absorberán la mayoría de las ventajas de RoR con lo que las razones para pasarse a RoR desaparecerán casi completamente.

Es por ello que el descubrimiento de que RoR tiene desventajas y la reacción de PHP y Java para igualarse en sus ventajas hace que desaparezca la necesidad de aprender o adoptar RoR.

Reacción de PHP a la llegada de RoR
Existen frameworks profesionales en PHP de una calidad comparable a la de RoR como por ejemplo Symphony o Cake. Sin embargo, el ejemplo claro sería el Zend Framework que nació directamente como reacción a RoR. Los otros dos existían antes. El Zend Framework es un conjunto de clases muy desacopladas que siguen conceptos como MVC, Active Record, Inyección de dependencias, DSL, pruebas unitarias, etc. Hace poco se ha publicado la versión 1.0 que ofrece suficientes garantías como para ser utilizada en producción.

Reacción de Java frente a la llegada de RoR
No se puede hablar de una absorción de Ruby puramente dicha, pero si que es verdad que sus ideas se han tomado en serio en varios sectores de la comunidad.

Actual estandar en Java Spring considerado por muchos la nueva J2EE, habrá que esperar a ver que hacen estos chicos en la versión 3, si apuestan por adoptar estas ideas ya se pueden ir despidiendo los de Ruby, lo que no se como de costoso es adaptar el actual framework para que funcione con las ideas de Ruby, a lo mejor es peor el remedio que la enfermedad. Tendrían eso pendiente e incorporar la posibilidad de utilizar componentes Ajax desde Spring MVC.

Fortalezas y debilidades de RoR

Desventaja:La paradoja de Ruby on Rails.
La genialidad del lenguaje Ruby mezclada con el acierto del espíritu Conventions over Configurations convierte Ruby on Rails en una estupenda opción para desarrollar sitios realmente grandes (menos código, más fácil de mantener, más reusable)…. pero Ruby no escala para sitios grandes, con lo que se convierte en una opción útil sólo cuando quieres programar sitios grandes y complejos con pocos usuarios…

Desventaja:Problemática de la escalabilidad
Existen dos problemas relacionados con el rendimiento de las aplicaciones web: cómo se incrementa el coste (de desarrollo o de hardware) cuando se incrementa el número de usuarios, y cómo afecta al coste el necesitar enormes transacciones con bases de datos. Java tradicionalmente es la opción elegida cuando se trata de transacciones: tiene una probada eficacia en bancos, etc. PHP, en cambio, es la opción dominante en la mayoría de portales con miles de usuarios.

Ventajas: qué hace a Ruby un lenguaje orientado a objetos más poderoso que el resto

  • Closures (Blocks): Es la posibilidad de pasar como argumento trozos de código.Una orientación a objetos total. Realmente poderoso.
  • mixing: es otra forma de reutilizar código. No es exactamente herencia múltiple, si no más bien la posibilidad de hacer el include de una clase en otra.

Cosas de RoR que también hay en los otros lenguajes:

Conclusión
Con la información que tenemos disponible resulta difícil concluir categóricamente que el efecto RoR esté muerto. Resulta sorprendente la baja calidad de muchas de las críticas que se realizan entre los diferentes partidarios de los distintos lenguajes. Cuando pensamos en éste artículo nos sentimos con la suficiente fuerza como para demostrar que RoR no tenía futuro. Admitimos que nos hemos quedado un poco a medias. De todas formas esperamos que ayude a reflexionar sobre el tema y a abrir debate.

Algunas de las fuentes más interesantes:

8 Comentarios

  • 1. noth  |  Octubre 26th, 2007 at 11:55 pm

    genial!!, un articulo muy bueno. gracias por compartirlo

  • 2. Lek  |  Noviembre 6th, 2007 at 1:23 pm

    Hombre, hay algo que (creo) no es muy correcto en el planteamiento del artículo:

    PHP y Java han ido absorbiendo o absorberán la mayoría de las ventajas de RoR con lo que las razones para pasarse a RoR desaparecerán casi completamente

    Digo yo que RoR también puede absorber ventajas de los demás, ¿no? Reconozco un desconocimiento técnico de las entrañas de la plataforma, pero parece que (al menos en lo que a Ruby se refiere) la cosa está evolucionando, ¿no?

  • 3. Luis Artola  |  Noviembre 6th, 2007 at 1:28 pm

    Lo que pasa es que, en nuestra opinión, hace falta que Ruby sea mejor para ue la gente lo adopte. No le basta con ser igual de bueno. Nadie se cambia a un nuevo lenguaje para estar igual, sino para estar mejor.

    Creo que RoR lo tiene muy difícil para convertirse en mainstream…

    gracias por el comentario!

  • 4. Juan Lupión  |  Noviembre 11th, 2007 at 2:07 pm

    Otra de las ventajas de Ruby es lo dinámico del lenguaje. Por ejemplo, dada una tabla de nombre Mymodel con los campos field1, field2 y field3 la implementación de ActiveRecord nos permite invocar (sin tener que definir ninguna función) lo siguiente:

    Mymodel.find_by_field1(valor1)
    Mymodel.find_or_create_by_field2(valor2)

    o, rizando el rizo, estas invocaciones serían equivalentes:

    Mymodel.find_or_create_by_field3_and_field2(valor3, valor2)
    Mymodel.find_or_create_by_field2_and_field3(valor2, valor3)

    Y esto podría extenderse para tablas con, por ejemplo, 20 atributos. Obviamente esto no deja de ser una forma de azúcar sintáctico, pero lo que cabe destacar aquí no es tanto que implementar algo parecido en Java o PHP no es precisamente trivial (si es que es posible) sino que Rails está lleno de este tipo de argucias, y se aplican no sólo a cuestiones sencillas de modelado de datos sino para funcionar con técnicas más complejas como guardar modelos en memoria, cachear páginas, etc.

  • 5. Luis Artola  |  Noviembre 11th, 2007 at 4:20 pm

    Hola Juan (por cierto, gran página sobrerailes):

    sin duda, Ruby es un lenguaje superelegante y Rails sabe aprovecharse de ello. Me encanta ese “azúcar sintáctico” jejeje

  • 6. deigote  |  Junio 13th, 2008 at 6:37 pm

    Os habeis olvidado de Grails, que es realmente interesante dentro del mundo Java :-)

  • 7. Closures en PHP 5.3 | WEB&hellip  |  Julio 22nd, 2008 at 7:49 am

    […] la posibilidad de pasar como argumento un trozo de código. Es una de las principales ventajas de Ruby frente a PHP y amplía enormemente las posibilidades de reutilización de […]

  • 8. PHP 6 traerá “trai&hellip  |  Julio 29th, 2008 at 10:03 am

    […] El análisis que hicimos en programanía del “efecto Ruby” sobre otros lenguajes como PH… […]

Comenta el articulo:

Requerido

Requerido,