En este articulo, voy a presentarte Ruby on Rails de manera general, sin entrar en los detalles técnicos. Voy a dejar eso para un futuro post.

Ruby on Rails (que se podría traducir en “Ruby en carriles de tren”), o solamente Rails, es un framework de desarrollo web MVC (Modelo/Vista/Controlador) escrito en Ruby. Puedes leer una presentación de Ruby en mi post sobre ese tema.

Siendo un framework de desarrollo web, Rails ayuda a crear aplicaciones web (en lugar de Wordpress por ejemplo, que es un CMS). La diferencia entre un sitio web y una aplicación web es que generalmente, una aplicación web va a tener más lógica y va a ser más dinámica que un sitio web.

Una aplicación web permite el fácil acceso a la aplicación, simplemente usando un navegador desde tu celular, tablet o computadora. El servidor Rails se instala en la nube o internamente en la empresa, en un sistema Linux.

Historia de Ruby on Rails

Rails fue creado en 2003 por David Heinemeier Hansson (llamado DHH en la comunidad). DHH estaba trabajando sobre Basecamp, una herramienta de gestión de proyectos. Extrajo la librería de Basecamp y la publicó en open-source en 2004.

DHH se había enamorado de Ruby y quiso crear un framework de desarrollo para popularizarlo el lenguaje, sin darse cuenta del éxito que iba a tener. Hasta ahora, DHH es uno de los defensores más fervientes de Ruby.

DHH ahora es el dueño de Basecamp (con Jason Fried) y escribió varios libros reconocidos, dentro de los cuales Rework, Remote y Getting Real. Es también famoso por tener un carácter…un poco fuerte.

Rails fue una revolución en la industria del desarrollo web en la década 2000-2010, trayendo muchos conceptos nuevos en un tiempo donde el desarrollo web era mucho más complicado que en la actualidad.

Ahora, muchos de esos conceptos están integrados en todos los frameworks de desarrollo web.

Características

  • Arquitectura MVC (Modelo/Vista/Controlador): esa arquitectura permite tener más separación entre los elementos de la aplicación. Por ejemplo Symfony en PHP es otro framework MVC.

  • Adaptado a metodologías ágiles: por el hecho que Rails toma muchas decisiones por convención, es muy rápido desarrollar con él. También el dinamismo de Ruby y la importancia que Rails da a las pruebas permite entregar un producto de calidad.

  • Moderno: Rails sigue mejorando con cada nueva versión. El equipo responsable de su desarrollo agrega nuevas tecnologías y nuevas convenciones para adaptarse al mundo de la web, que cambia muy rápidamente.

  • Gratuito/open-Source: como muchos frameworks ahora, Rails es open-source (de código fuente abierto). También su uso es totalmente gratuito. De hecho puedes consultar su código en su repositorio GitHub.

  • Soporta varios sistemas de bases de datos: PostgreSQL, MySQL, Oracle, SQLite, Microsoft SQL Server y más.

Usos

Rails es famoso por ser el framework de desarrollo web privilegiado por las startups, porque les permite desarrollar productos complejos rápidamente con una cantidad limitada de programadores (recursos limitados).

A pesar de que Rails es muy bueno, no es recomendado para todo tipo de proyecto (lo mismo para cualquier herramienta, de hecho). Por ejemplo, para proyectos muy muy grandes, no es recomendable, por el hecho que Ruby es lento. Todo en la vida tiene pros y contras, Ruby escogió la velocidad de programación en lugar de la velocidad de ejecución.

Por ejemplo Twitter fue desarrollado con Ruby on Rails. Cuando empezaron a tener muchísimos usuarios, decidieron cambiar por un sistema más liviano. Aunque hayan cambiado, ¡Rails participó en su crecimiento inicial!

Rails está usado en algunos sitios web muy grandes, como:

¿Por qué escogí trabajar con Rails?

Yo estoy trabajando solo, como freelancer, haciendo aplicaciones web. Por eso tengo unos requerimientos precisos. Necesito un framework que me de mucha velocidad y mucho control, para hacer proyectos relativamente chiquitos.

El nivel de abstracción muy alto de Ruby, las convenciones de Rails y las pruebas me permiten desarrollar un producto rápidamente y con confianza en su calidad. También la cantidad de gems (librerías Ruby, un tipo de “extensiones” al sistema) disponibles me permiten agregar funcionalidades sin tener que crear todo de nuevo. El hecho que Rails ya tenga más de diez años es otro elemento importante, porque su ecosistema es muy maduro.

No pretendo que Rails sea la solución para todos los casos, pero para lo que necesito, sí resulta perfecto.

Espero que te haya convencido de las ventajas de Ruby on Rails. Si quieres aprender más, mantente pendiente, porque estoy preparando otros posts sobre este tema.

Referencias

Historia de Rails