Ruby y Rails en 2019. Más que Cool

¿Es una buena idea desarrollar en Ruby en 2019?

La búsqueda de lo Cool

En estos tiempos es habitual escuchar que Ruby y Ruby on Rails “ya no son cool”. ¿Es esto cierto?

Y, lo que es más importante, ¿es una buena idea basar la elección de Ruby o Rails para iniciar un nuevo proyecto o una carrera como desarrollador web en su grado de “coolness”?

Seguro que te imaginas cuál es mi respuesta a estas preguntas. Pero que me extienda un poco …

Una pequeña historia

Comencé a programar en Ruby en 2006, justo después del lanzamiento de Ruby on Rails v1.0. Ese lanzamiento logró hacer algo de ruido en el mundo del desarrollo web (hay que reconocerle a DHH su fantástica labor de marketing), pero difícilmente se podría decir que Ruby fuera cool en aquellos días.

Por entonces, yo estaba emprendiendo Evadium, después de 5 años como consultor, alejado del desarrollo. Así que, sí, mis dotes como programador estaban más que oxidadas, y mi visión del mercado de herramientas de desarrollo era lo que podría esperarse de un consultor: muchos acrónimos, matrices de funcionalidades y diagramas DAFO, todo aderezado con un bagaje de cero líneas de código escritas en los últimos años.

Todavía recuerdo haber pedido el consejo de mi amigo David Clavera, un brillante arquitecto de aplicaciones web, y la gran consternación que sentí cuando me dijo “¡Fácil!”, mientras me entregaba un libro sobre Struts ¡que no tendría menos de 500 páginas! Hasta ese momento, yo había logrado evitar Java y XML en toda su verbosidad, así que la perspectiva no me entusiasmaba. Ese día, en mi interior, decidí que usaría PHP. No era brillante, pero sí funcional.

Fue con ese estado de ánimo con el que vi el vídeo de DHH creando un blog con Ruby on Rails. ¡Esos 15 minutos fueron como un soplo de aire fresco! Productivo, práctico, elegante … ¡RoR lo tenía todo!

Bueno, todo, todo, no lo tenía. Era una versión 1.0 y se notaba. Tenía muchos aspectos a mejorar (especialmente en el despliegue) y, lo que era peor para mi mente de consultor: nada de reputación a sus espaldas.

Ruby on Rails fue una apuesta arriesgada. Por lo que sabía, podría estar muerto en un par de años. ¡Pero había que reconocer que era productivo! Así que, me lancé a la piscina y me puse a escribir código.

¡Y resultó que tuve suerte! En un par de años, Ruby on Rails se hizo dueño y señor del mundo del desarrollo web. Se convirtió en lo más cool.

En todas partes aparecían proyectos y productos basados en RoR. Se publicaban libros, se lanzaban blogs, aparecían nuevas gemas, cubriendo casi cualquier necesidad.

Y la comunidad de desarrollo también se enamoró de Rails: veteranos y jóvenes se unieron a la fiesta. Los bootcamps y las plataformas de formación online se convirtieron en evangelistas de Rails. Y las startups más cool luchaban literalmente por el talento Ruby on Rails.

Se podría decir que alcanzamos la “Cúspide de Rails” alrededor de 2011, con la versión 3.x.

Pero el mundo del desarrollo de software es inquieto, y los nuevos candidatos hacían méritos constantemente. JavaScript quería tener su propio framework en el cliente: Backbone, Ember y sobre todo Angular y React comenzaron a darle protagonismo al navegador. Y gracias a Node.js, JavaScript comenzó a hacerse un sitio en el servidor también.

Aparecieron también nuevos lenguajes, como Elixir, Go y TypeScript, prometiendo más velocidad y tipado estricto. Y hasta los ancianos del lugar, como Python, tuvieron un renacimiento gracias al Big Data y el machine learning.

Hoy en día (a finales de 2019), Ruby y Rails ya no son cool.

¿Pero, es cool ser cool?

Y … ¿ya está? ¿Colorín, colorado? ¿Qué significa ser cool en desarrollo de software?

Cool es lo nuevo. Cool son los nuevos desarrollos. Cool es la nueva infraestructura.

Crear un nuevo lenguaje es cool. Diseñar un nuevo framework es cool. Escribir librerías de base y gestores de paquetes es cool.

¿Escribir aplicaciones para el mundo real? ¡Eso no es tan cool!

En cierto modo, se puede comparar la búsqueda de lo cool con una Fiebre del Oro.

La historia (y Jack London) nos enseñan que, en una fiebre del oro, los únicos que ganan siempre son los proveedores de equipamiento. Nadie sabe a ciencia cierta si habrá oro de verdad, pero, ¡hey, todos estos mineros van a necesitar picos y palas!

¡No es de extrañar que los fabricantes y vendedores de herramientas adoren las fiebres del oro!

Pero, ¿qué tal les va a los mineros? Durante la fiebre, las herramientas son escasas y poco efectivas, así que su trabajo es ineficiente y su productividad baja, incluso cuando la mina es rica. La mayor parte de los esfuerzos de los mineros se van en construir la propia mina, no en extraer el oro. Y cada vez que las herramientas mejoran, tienen que volver a invertir y reformar, si no quieren quedarse rezagados, lo que también va en detrimento de la producción real de oro.

Del mismo modo, en una “Fiebre de lo Cool” del software hay mucho que ganar creando la nueva infraestructura, las nuevas herramientas, los nuevos mercados.

Mientras los “early adopters” tratan de dirigir todos sus esfuerzos en construir sus proyectos y empresas, las nuevas herramientas son inmaduras y necesitan de actualizaciones constantes. Y, como en el caso de los mineros, este ruido constante hace mella en su productividad.

En una fiebre del oro, la mayoría de nuevas minas fracasan. No alcanzan la escala mínima necesaria para crear un ecosistema a su alrededor y se derrumban. Cuando esto sucede, los mineros se marchan, a la búsqueda de un nuevo Eldorado. Y los fabricantes de herramientas van tras ellos.

¿Es esto lo que le que ha pasado con Ruby on Rails?

¡Demasiado ocupados para ser Cool!

Ruby y Ruby on Rails no son como una mina abandonada. En su caso, sí había oro, ¡y mucho! (o rubíes, si buscamos el juego de palabras).

El ecosistema ha crecido y se ha hecho autosuficiente.

Ruby on Rails ya no es un pequeño asentamiento minero en los confines de la civilización. Es una industria grande y madura que produce toneladas de oro 24x7.

Las herramientas son maduras, la productividad es enorme. Lo que podría parecer escasez de noticias y anuncios es más un signo de buena salud, de un entorno en el que los creadores de aplicaciones extraen el máximo valor, y los esfuerzos necesarios para mantener la infraestructura en su lugar son relativamente bajos.

En cualquier caso, el camino hasta aquí no ha sido fácil. Quienes vivimos las migraciones entre las primeras 4 versiones de Rails sabemos cuánto esfuerzo ha hecho falta para alcanzar este nivel de madurez.

Pero ha valido la pena. Hoy en día, las empresas y desarrolladores que usan Ruby on Rails están tan ocupados escribiendo software para el mundo real que apenas tienen tiempo para pensar en lo cool.

Así que, sí, creo que tiene todo el sentido del mundo usar Ruby on Rails para abordar un nuevo proyecto en 2020. Como emprendedor y como desarrollador.

La productividad nunca ha sido mejor, y el mercado laboral para desarrolladores en Ruby está “on fire”. No tienes más que agregar Ruby on Rails a tu perfil de LinkedIn y sentarte a esperar a que los recruiters te bombardeen.

Así que, no no nos dejemos cegar por el factor cool.

¡Deseando que 2020 nos traiga mucho más Ruby!