¿Vale la pena aprender Rails en 2017? ¿O hay algo aparte de Node.js es una pérdida de tiempo?

Me parece que la escritura está en la pared, y que Rails está saliendo.

Ya no es la mejor manera de hacer casi cualquier cosa, y tiene problemas terribles para escalar.

Node.js es fuerte, aunque aconsejo a los desarrolladores serios que elijan TypeScript (para usar con Node.js). Sin embargo, está bien comenzar con JavaScript. TypeScript es un estricto superconjunto de ES2015, después de todo. Si solo estás aprendiendo, JavaScript es un buen trampolín.

Pero Node.js no es el único contendiente. También hay Go. Es incluso más rápido (y escala mejor en uso de memoria) que Node.js. Su ecosistema también es fuerte.

Pero lo que la gente no siempre entiende es que la razón completa de la existencia de Rails, la aplicación web, ha evolucionado de tal manera que el enfoque de Rails es simplemente incorrecto. (El enfoque PHP está igualmente roto).

Se están diseñando nuevas aplicaciones con Angular / React / Vue.js / Mithril.js.org en el cliente, y principalmente páginas estáticas y API simples en el servidor. Node.js y Go son ideales para ese patrón. Algunas personas lo llaman JAMstack. [1]

Ruby y PHP también pueden soportar el patrón, pero no ofrecen ninguna ventaja sobre Node.js o Go, y ambos ofrecen problemas de escala significativos. Puede necesitar entre 50 y 100 veces más servidores de aplicaciones Ruby que los servidores Node.js o Go para manejar la misma carga.

Notas al pie

[1] JavaScript, API y marcado

Tu pregunta compara dos cosas diferentes.

Rails es un software escrito utilizando el lenguaje de programación y el tiempo de ejecución de Ruby. Es un software de servidor de aplicaciones web de uso general. Rails generalmente se empaqueta como una biblioteca de gemas que funciona con Ruby. Gem “instala” Rails y lo pone a disposición para codificar.

Node.js no es como Rails, no es un software de servidor web. Puede escribir ese software usando Node o encontrar un módulo NPM que ofrezca características similares a Rails. Node tiene algunos excelentes módulos de aplicaciones web que funcionan con él, pero ninguno tan completo como Rails para una aplicación de sitio web de propósito general.

Rails es útil y relevante en 2018 si desea crear rápidamente una aplicación web con todas las funciones. Ha resuelto muchos problemas en ese espacio y continuará siendo relevante mientras se desarrolle activamente. De manera similar, puede resolver esos problemas en Node. En última instancia, debe coincidir con la solución tecnológica basada en las propiedades del espacio problemático al que se enfrenta. Node es más capaz en muchos sentidos que Ruby, pero ningún idioma es una panacea.

Node tiene un caso de uso limitado (a. Aplicaciones pequeñas, escalables y muy rápidas que se ocupan de grandes cantidades de transacciones muy livianas, b. Como un motor de plantillas), por lo que si pretende utilizarlo como un instrumento contundente multipropósito, sería haciendo algo seriamente mal. Rails también tiene un caso de uso relativamente limitado (a. Prototipos de aplicaciones web muy rápidamente, b. Aplicaciones web que pueden ser construidas y mantenidas por equipos muy pequeños). Ha conocido problemas fuera de estos casos de uso (aunque los casos de uso ideales cubren una cantidad bastante amplia de productos posibles).

Entonces tal vez y no sería la respuesta. Pero si desea hacer el desarrollo de Rails, hay muchos trabajos (además de saber cómo se estructuran los frameworks MVC es generalmente útil). Y si conoce Node, hay muchos trabajos.

Estás haciendo dos preguntas diferentes.

¿Vale la pena aprender Rails en 2017?

Si quieres ser desarrollador de Rails, sí. Si no lo haces, entonces no.

Rails ha tenido su día al sol, tal vez estoy juzgando totalmente mal la situación, pero solo está bajando desde aquí.

¿Hay algo aparte de Node.js que sea una pérdida de tiempo?

Diablos no.

Pero realmente, debe decidir qué tipo de desarrollo desea hacer. Si quieres escribir aplicaciones iOS, aprende Swift, si quieres hacer aplicaciones Android, entonces Java.

Si quieres ser un desarrollador de Rails, entonces, por supuesto, aprende. Si aún no está seguro de lo que quiere hacer, elija un idioma que le brinde la mayor posibilidad de conseguir un trabajo, y actualmente es Java.

Depende de tus objetivos. Probablemente NodeJS tenga un mercado más grande que Ruby hoy, pero Ruby sigue siendo un lenguaje de programación fantástico que puede enseñarle mucho.

Learning NodeJS significa aprender Javascript, que es el lenguaje del momento, pero no el único.

Si solo quieres aprender un idioma para conseguir un trabajo, aprende Javascript y PHP, si quieres aprender algo nuevo, (Intenta) aprender Haskell u otro lenguaje de programación funcional, no solo aprenderás el idioma sino también el paradigma que está recibiendo mucho amor en estos días.

Vea ¿Qué hace que Rails sea un marco que vale la pena aprender en 2017?