Si eres desarrollador seguro habrás oído hablar de Ruby, si no lo has hecho, asegúrate de conocer qué es Ruby. Pues este lenguaje de programación cumple sus 25 y para celebrarlo te voy a contar cómo logró ser parte de la innovación de nuestra era permitiendo a miles de startups llevar a cabo sus ideas, y como enamoró a miles de programadores talentosos. Sin más preámbulos empecemos.
Es 1993 en Japón y nos encontramos en la casa de un programador llamado Yukihiro Matsumoto, el sol de oriente sale y Matsumoto se levanta de su cama con una idea, tal vez la idea mas importante de su vida: decide que quiere hacer su propio lenguaje de programación (sin mujerzuelas ni juegos de azar), cansado de usar lenguajes que ignoran el factor humano, decide que su enfoque será hacer feliz a su programador, dándole un API que lo deje expresarse libremente a través del código. Matsumoto trabaja en su idea, y cuando éste le presenta su progreso a sus amigos, estos notan el parecido a Python Y Perl, y le hacen bullying poniéndole de apodo Ruby (porque Perl significa perla, y como en sintaxis se parece pues ‘Ruby’), el bullying eventualmente desapareció pero el nombre se quedó, y Matsumoto después de años de trabajo (y procrastinación) da a conocer a Ruby al mundo en su versión 0.95 una tarde soleada de 1995.
El año en que todo cambio, aunque Matz (así apodaron a Matsumoto) presento a ruby en 1995 es realmente el 2004 donde todo inicio para Ruby, e inició con David Heinemeier Hansson (conocido como DHH (qué puedo decir, a la comunidad le gustan los apodos, recuerden que el nombre Ruby viene de un apodo)), el cual después de leer Patterns-Enterprise-Application-Architecture por Martin Flowers y otros libros, comienza a soñar con patrones de diseño, no podía dejar de pensar en active record, DDD, service layer, entre otros, es tal su obsesión que comienza a re-dibujar los patrones en un programa llamado OmniGraffle en su Macbook. DHH tiempo después usó sus conocimientos adquiridos en la herramienta que estaba desarrollando, Basecamp.
Impresionado por la velocidad de desarrollo que su arquitectura le daba, DHH decide extraer las partes importantes y crea el framework que todo rubysis aprecia y ama (A menos que te guste Sinatra), Ruby on Rails (o simplemente RoR, el nombre seguramente viene de un apodo que alguien le puso en broma). RoR usando convención sobre configuración (AKA magia), patrones de arquitectura y toda la expresividad de ruby, logra crear un framework que permite crear un blog en 10 minutos
RoR se convierte en la catapulta que pone a ruby en las nubes, a medida que los programadores aprenden RoR se dan cuenta que Ruby es realmente el ingrediente mágico del framework, y así da inicio a la era de ruby, el lenguaje del momento, el que todos los programadores hipster usan, una Macbook, una barba, una consola con oh my zsh y ruby era el sello de dichos programadores, “aunque si te preguntan, tu conocías ruby antes de que fuera cool, de hecho ni te gusta RoR, aunque lo usas a diario, de hecho te ofendes cuando encuentras a alguien que no sabe que ruby es más que rails, y les dices que existe Sinatra, padrino o cuba, y luego de decir eso vuelves a tu trabajo en RoR”. Ruby inspira a una nueva generación de desarrolladores, casi como la paradoja python esta nueva tanda de programadores son increíblemente apasionados, inteligentes y dados a aportar a la comunidad
Todas las startups cool empiezan a usar rails, twitter, github, heroku, basecamp, airbnb, twitch, shopify !, a la vez que la demanda por desarrolladores ruby y la comunidad crece enormemente, se crean miles de meetups y algunas conferencias, Ruby y Rails se convierten en el sinónimo de la cultura startup, de desarrollo ágil, de productividad, de desarrolladores hipster y felices.
Si algo a caracterizado a Ruby es su comunidad, la cual ama a ruby y siempre esta buscando aportar y mejorar el ecosistema de herramientas y librerias, al punto que las mejores librerias y herramientas vienen de la misma comunidad, bundler, rubygems,etc, etc. En muy poco tiempo la misma comunidad logró crear un ecosistema de librerías bastante robusta, en un punto se creo el dicho que dice que si necesitas crear algo, seguramente ya hay una gema que alguien más hizo, tu solo instalas, configuras y ya esta !.
Lo que sigue es tal vez “la historia” desde mi perspectiva personal, entendere si no comparte mi visión, si son rubysist me gustaria saber su versión de la historia en los comentarios
No todo es color de rosa con ruby/rails no es excepción, así que hablemos de las críticas más comunes, ruby al ser hecho con el propósito de tener programadores felices ha sacrificado el rendimiento y este último es una gran crítica a RoR, “RoR no escala”, es una crítica falsa, o no?. Twitter decidió no usar RoR precisamente por este punto, pero miremos un contra ejemplo, Github es uno de los proyectos de RoR mas grandes a nivel de escála. Otro problema de RoR es que tal vez quiere hacerlo todo, y como resultado a crecido considerablemente en tamaño al punto que tal vez tenga mas herramientas de las que necesitas, tal vez demasiadas. Y aunque ruby no es solamente Ruby on Rails, si es cierto que no tiene mucha fuerza afuera del ambiente web.
La comunidad con espíritu hipster siempre esta buscando la innovación y “The next big thing”, y ahora que ruby/rails es un ecosistema estable, los trabajos de startups ahora quieren que les agregues un botón porque el resto ya se desarrollo tiempo atrás, o lo puedes hacer instalando una gema y ya esta (estoy exagerando, pero ustedes entienden la idea).
Debido a esto y otros factores, algunos han decidido alzan sus ojos sobre los nuevos horizontes: ahora los microservicios son el futuro, ahora la programación funcional esta de moda, ahora javascript esta explotando y una herramienta/framework nueva reemplaza a la anterior cada 6 meses, ahora esta en auge el framework de desarrollo llamado Phoenix(similar a RoR), que usa elixir un lenguaje funcional, concurrente, de propósito general, y muy muy veloz (no más problemas de escalabilidad), ahora existen Golang y Rust… En fin, una nueva era para aprender nuevos paradigmas, nuevos lenguajes, nuevos horizontes que muchos desarrolladores de ruby quieren explorar. Aunque estoy seguro que en el fondo, siempre mirarán atrás y pensarán en ruby como ese primer amor que no se olvida.
Más allá de estos problemas, lo cierto es que ruby es parte del core de muchas startups que usamos a diario y sigue siendo (gracias a rails) una excelente herramienta para el desarrollo web (sin mencionar que es muy bien pagado) que sigue siendo muy popular y usada, así que seguramente tendremos ruby para otros 25 años más.
Feliz Cumpleaños Ruby ❤️