Por qué Ruby on Rails sigue siendo importante: cómo una herramienta antigua sobrevive en el mundo de Next.js
(contraption.co)- Hace poco, el autor encontró unos viejos discos de vinilo de su abuelo y le sorprendió ver que este medio de otra época todavía se reproducía sin problemas
- El vinilo trajo un gran cambio en la distribución de la música, al permitir su prensado y compartición, y sigue siendo un estándar hasta hoy
- La forma de compartir audio ha evolucionado, pero los métodos iniciales siguen funcionando
- En un mundo cada vez más complejo, muchas personas están volviendo al vinilo porque ofrece simplicidad, estabilidad y permanencia
- En medio del cambio constante de las tecnologías web, es fácil olvidar que los sitios web antiguos todavía funcionan muy bien
- Incluso los sitios web de texto simple de los años 90 cargan igual en los navegadores modernos
- Con el tiempo, los sitios web adquirieron funciones adicionales como estilos con CSS, interactividad con JavaScript y actualizaciones en tiempo real mediante WebSockets
- Sin embargo, su base sigue estando construida sobre páginas, formularios y sesiones
- Ruby on Rails apareció hace 20 años como un enfoque integrado para construir aplicaciones web interactivas y basadas en bases de datos
- Fue la base de muchas empresas exitosas como Airbnb, Shopify, Github, Instacart, Gusto y Square, y hoy negocios valuados en billones de dólares operan sobre Ruby on Rails
- Las herramientas efectivas simplifican tareas complejas mediante la abstracción
- Si pensamos en el automóvil, conducir antes requería entender el sistema de combustible, la sincronización y la mecánica del embrague, pero ahora la mayoría de los conductores ni siquiera sabe cuántas marchas tiene su vehículo
- Ruby on Rails empaquetó buenas prácticas del desarrollo web, como sesiones de inicio de sesión, protección CSRF y ORM de base de datos, en un conjunto de herramientas accesible
- Estas abstracciones permiten que los desarrolladores se concentren en crear productos en lugar de en detalles técnicos
- Hoy en día, la mayoría de los desarrolladores no sabe qué contiene una cookie de inicio de sesión, pero aun así eso hace funcionar sus aplicaciones
- Rails logró el éxito al mantenerse fiel a los elementos básicos de la web
- Usa elementos fundamentales de HTML como páginas, campos de entrada y formularios
- Como framework centrado en el backend, se enfoca en validar, procesar y almacenar datos, por lo que crear formularios es sencillo
- JavaScript ganó protagonismo después del éxito inicial de Rails
- Los avances del desarrollo web en la última década, en esencia, le dieron a los sitios web capacidades de apps de iPhone sin dejar de ser sitios web
- Next.js ahora se usa como la herramienta más común para construir startups
- Como framework centrado en el frontend, permite estados de carga dinámicos, renderizado del lado del servidor y construcción de componentes complejos
- Otro grupo de empresas valuadas en billones de dólares se está construyendo sobre Next.js, y estas apps web son más rápidas y sofisticadas que las construidas con Ruby on Rails
- Next.js y su tecnología base, React, están impulsando gran parte de la innovación web moderna
- En esencia, productos de consumo masivo como Spotify, Netflix, Facebook y Stripe funcionan sobre este stack
- Esto permite a los desarrolladores crear productos interactivos rápidos y personalizados más allá de los límites de los estándares web
- A pesar de la rápida adopción de Next.js, Rails sigue siendo relevante
- Nuevos proyectos, desde iniciativas independientes hasta empresas de IA, siguen eligiendo Rails
- De hecho, la ola de nuevos frameworks web de JavaScript como Next.js ha hecho más difícil construir aplicaciones web
- Estas herramientas ofrecen a los desarrolladores más capacidades, como renderizado de datos dinámicos e interacciones en tiempo real, pero a cambio reducen el nivel de abstracción
- Next.js compite de verdad con las apps nativas de iPhone
- Antes, para ofrecer una experiencia de usuario sofisticada, una startup necesitaba una app para iPhone, y construirla solía ser un proceso complejo que requería varios desarrolladores especializados
- Next.js permitió que los sitios web se acercaran a la calidad de una app para iPhone
- Hoy, algunos de los productos más sofisticados, como Linear y ChatGPT, fueron lanzados como aplicaciones de Next.js, dejando las apps móviles como prioridad secundaria.
- Rails ha evolucionado durante los 20 años desde su lanzamiento y añadió interactividad con JavaScript, gestión de trabajos de backend, estados de carga y herramientas para aplicaciones en tiempo real, entre otras cosas
- También es compatible con el desarrollo de apps móviles. A medida que los patrones de aplicación evolucionaron, Rails integró esos patrones como funciones del framework mientras mantenía su base en HTML
- La mayoría de las aplicaciones web todavía están compuestas por formularios dentro de páginas
- Esto incluye bolsas de trabajo, sistemas de proveedores y tiendas de comercio electrónico
- Next.js puede construirlas, pero requiere más tiempo de desarrollo en comparación con Rails
- Usar un framework de vanguardia genera inestabilidad por medio de actualizaciones frecuentes, nuevas librerías y problemas inesperados
- Las aplicaciones de Next.js a menudo dependen de múltiples servicios de terceros como Vercel, Resend y Temporal, lo que incrementa el riesgo de plataforma
- Los desarrolladores siguen eligiendo Rails hoy porque, incluso 20 años después, sigue siendo la forma más simple y abstracta de construir aplicaciones web
- Los desarrolladores solitarios pueden crear por su cuenta aplicaciones web dinámicas y en tiempo real, y los equipos empresariales pueden construir aplicaciones con múltiples modelos y controles de acceso, con soporte para pruebas exhaustivas
- Rails ayuda a equipos pequeños a trabajar más rápido y a reducir los costos de desarrollo y mantenimiento
- El autor tiene experiencia usando ambos frameworks
- Construyó Find AI, una startup de IA financiada con capital de riesgo, con Rails
- Como motor de búsqueda, se benefició de la capacidad de Rails para manejar trabajos complejos de backend junto con requisitos simples de frontend
- Actualmente está trabajando en Chroma Cloud para explorar y gestionar grandes conjuntos de datos, y Next.js satisface sus necesidades de interactividad avanzada y carga de datos
- Rails empieza a mostrar señales de envejecimiento en la actual ola de aplicaciones impulsadas por IA
- Tiene dificultades en áreas como el streaming de texto de LLM (modelos de lenguaje de gran tamaño), el procesamiento paralelo en Ruby y un soporte fuerte de tipos para herramientas de programación con IA.
- Aun así, sigue siendo una herramienta efectiva
- El vinilo amplió el acceso a la música y transformó la industria
- Con el tiempo, la calidad del sonido mejoró, pero los formatos iniciales siguen teniendo valor
- The Köln Concert sigue siendo popular sin importar el bitrate
- En el mundo de la tecnología pasa lo mismo: al mismo tiempo que podemos disfrutar productos sofisticados como Linear, un sitio web con estilo noventero como Craigslist todavía puede generar más ingresos.
- Al final, a los usuarios les importa más la utilidad del producto que la forma en que fue implementado
- La sofisticación visual puede desvanecerse, pero la utilidad permanece
7 comentarios
Airbnb, Shopify, Github... ¡hay más empresas de las que pensaba usando Ruby on Rails! 😊
No tenía idea de que GitHub estuviera desarrollado con Rails. Que GitLab sí esté desarrollado con Rails es correcto... y la verdad es que GitLab usó Rails tan bien que se me quedó grabado por mucho tiempo.
Al principio, GitHub construyó su red alrededor de la comunidad de Rails.
https://read.first1000.co/p/-github
Es un caso un poco distinto, pero hubo una ocasión en la que Egor Homakov señaló un problema de seguridad de Ruby on Rails, la Mass Assignment Vulnerability. Como era un problema que los desarrolladores podían evitar si tenían cuidado, hubo debate sobre si debía parchearse o no. (Porque se podía responder algo como RTFM).
El método que eligió Egor Homakov para reportarlo fue atacar GitHub, que en ese momento también funcionaba con Rails e incluso alojaba a Rails. Y de hecho tuvo éxito.
Así mostró que ni siquiera la aplicación más grande de Rails estaba libre de este caso.
Creo que era una elección entre confiar en los desarrolladores (gestión manual de memoria) o no confiar en ellos (GC, etc.), pero a mí me viene seguido a la mente cuando veo respuestas como RTFM o, en temas de seguridad, cuando se espera que “ya lo sepan y lo hagan bien”.
https://news.ycombinator.com/item?id=3666564
Gracias. :)
https://github.blog/engineering/building-github-with-ruby-and-rails/
Gracias.
Opiniones de Hacker News
Mientras cientos de personas leen este artículo ahora mismo, en realidad están accediendo a él a través del Mac Mini que está sobre mi escritorio
Me gustan las apps web que básicamente solo tienen formularios CRUD. No aplica a todos los problemas, pero funciona bien en muchos dominios que interactúan con el mundo real. Algo como: "si quieres verificar si hay una cita, revisa la lista de citas"
La comunidad de Ruby/Rails es rara porque parece que la mitad está trabajando en silencio y la otra mitad tiene que recordar periódicamente que Rails no está muerto
Rails está mostrando su edad en la ola de aplicaciones de IA. Tiene dificultades con el streaming de texto de LLM y el procesamiento en paralelo
Recomiendo Django + gevent. Usa el sistema de tipos de Python y es adecuado para streaming y paralelismo ligado a IO. No es ideal para paralelismo ligado a CPU, pero eso importa menos en aplicaciones web
Se puede construir y mantener un meta framework web como RoR con Ruby, Django y el lenguaje D
RoR es potente. Pero todo está cambiando tan rápido que da la sensación de que, si no sigues las tecnologías más recientes, te vas a quedar atrás
He escuchado críticas de que las herramientas de codificación con IA carecen de tipado fuerte, pero en mi experiencia los LLM funcionan bien en codebases de Rails
Estoy usando Django y todo se siente nuevo. Estoy enviando HTML con htmx + alpine.js, y al alejarme de una API REST en JSON, mi productividad mejoró muchísimo
RoR es excelente. Ruby necesita crecer más allá de eso
En la década de 2010 se popularizó el enfoque de convenciones sobre configuración