Rails sí escala
Algunas personas me han preguntado cuáles son las tecnologías que usamos en Platanus para desarrollar. Un par de veces me ha pasado que cuando les cuento lo muy enamorados que estamos de Ruby on Rails, me dicen:
- “¿En serio? Pero si hay tecnologías mucho más escalables”
- “Pero si Rails ya es medio viejo, ¿por qué lo usan?”
Después de responder varias veces lo mismo, creo que es necesario escribirlo.
¿Qué tecnología usar para mi emprendimiento?
Algunas preguntas que surgen para decidir esto son:
- ¿Necesito que sea asíncrono?
- ¿Base de datos de documentos, relacional, u otra?
- ¿Microservicios?
- Tengo que poder escalar, ¿qué framework y lenguaje escalan más?
- Etc, etc, etc
Pasamos mucho tiempo investigando todos los stacks tecnológicos, explorando nuevas tecnologías, poniéndonos en todos los futuros posibles.
Vemos benchmarks con gráficos sobre qué framework puede responder “Hello world” más veces por segundo, sobre qué lenguaje usa menos memoria, sobre cuál usa menos recursos.
La cosa es que, lamentablemente, todo eso no sirve para nada.
Porque todas esas características dan lo mismo.
“¿Pero cómo? Obvio que sí importan!”
Te juro que no.
El problema del ingeniero
Mi emprendimiento necesita escalar.
Mi frase favorita.
Es mi favorita porque demuestra una visión muy típica que tenemos los ingenieros. Queremos un motor que ocupe de la manera más eficiente posible la bencina que le damos. Máxima eficiencia.
Pero, ¿y si el auto no anda? ¿de qué te sirve ser el más eficiente del mundo?
En un emprendimiento, el mayor riesgo NO está en la tecnología que usas. El mayor riesgo está en encontrar product-market fit.
Dale, si quieres haz tu producto que puede escalar a 10 millones de usuarios por segundo, para que lo usen tus 2 usuarios mensuales.
En los emprendimientos hay que apuntar 100% a reducir el tiempo de salida al mercado, a mejorar la capacidad de iterar, y a tener la flexibilidad para cambiar de ser necesario. Todo el resto es adorno.
Esa es una de las principales ventajas que te da Ruby on Rails. Una capacidad impresionante de salir al mercado rápido, de hacer cambios con confianza, y de adaptarte al mercado.
Y tiene más cosas buenas.
- Es un muy agradable para trabajar.
- Tiene una comunidad gigante. Muy útil para resolver problemas, y para encontrar más devs.
- Es fácil de aprender.
- Las herramientas de tests son muy maduras y estables.
- Funciona extremadamente bien con Heroku, por lo que no necesitas administrar servidores (una pega latera para mi gusto).
- Todo.
Las ventajas son muchas, las desventajas muy pocas.
Rails sí escala
Claro, si eres LinkedIn quizás Rails no escala tanto como otros. Pero si llegas a ser LinkedIn (está difícil), créeme que va a ser un dolor enano re-hacer algunas partes de tu sistema.
Además, todo depende de cómo definas “escalar”.
Rails sí escala para emprender. Te permite probar la mayor cantidad de hipótesis en el menor tiempo posible. Y eso es lo que necesita medir un emprendimiento.
Hoy día product-market fit, mañana requests por segundo.
“Entonces, ¿tengo que usar Rails sí o sí?”
Nah. Si eres crack en otras tecnologías probablemente vas a andar más rápido con esas.
Pero no me vengan con que Rails es penca porque no escala.