¿Por qué debería usar Ruby on Rails?
Tags: ruby, rails, javascript, react
Published: 2024-04-21 21:50:30

Cuando escuché por primera vez sobre Ruby on Rails, fui muy indiferente. De hecho, se decía que Rails había cambiado la forma de desarrollar aplicaciones web, era algo nuevo y solucionaba muchos problemas que surgían en el desarrollo. Sin embargo, estaba hipnotizado por ASP.NET y el rendimiento que ofrecía C#, creyendo, como muchos, que la velocidad es lo que más importa en un lenguaje de programación.

Los lenguajes de programación están diseñados para propósitos diferentes y con conceptos en su filosofía que los hacen especiales. Siempre los comparo con la belleza, que es subjetiva y, por lo tanto, relativa. Lo que puede ser hermoso para algunos, para otros no lo es, y lo mismo pasa con los lenguajes de programación. Es común escuchar: "ese lenguaje me parece feo" o "no me gusta programar en ese lenguaje", no es que realmente sea un mal lenguaje, solo que, bajo la concepción del programador, simplemente no es de su agrado su sintaxis o su filosofía.

Un ejemplo claro de lo que escribí en el párrafo anterior es PHP. Honestamente, en los foros o debates de programadores, es mucha la crítica que se le da al lenguaje, especialmente por los programadores más experimentados o los novatos que escuchan cosas y lo que hacen es replicar desinformación. Es una distorsión de lo que significa la programación. Bajo esta misma falta de subjetividad sucede también con Ruby, que es lento, que está muerto, que después tengo que migrar el proyecto a otra tecnología porque Rails no es escalable, entre otras cosas raras que dicen, que al final no son ciertas.

**¿Qué nos debería importar de un lenguaje o un framework?**

Con tantas opciones de tecnologías que existen, es difícil realmente escoger cuál sería la adecuada. Hay que tener presente que muchos desarrolladores creen en el concepto de buscar la tecnología o el lenguaje absoluto, quieren saber una sola cosa y que ese lenguaje sirva para todo, hasta para hacer aseo en la casa. La programación no funciona así, las tecnologías tienen diferentes propósitos y se enfocan en áreas específicas.

Realmente, lo que nos debería importar de un lenguaje es su mantenibilidad y no la popularidad. La mantenibilidad del lenguaje es lo que realmente importa, tener la certeza de que se están actualizando las versiones, haciendo mejoras, incluyendo nuevas funcionalidades y, sobre todo, parcheando los problemas de seguridad si los tiene. Me gusta cuando estos proyectos son open-source y dejan de depender netamente de un desarrollador en particular o de una empresa, esto garantiza la continuidad en el tiempo del proyecto.

Si hablamos de Ruby, el lenguaje con el que está desarrollado Rails, fue creado por un japonés llamado Yukihiro Matsumoto, bien conocido como "Matz". En Ruby no hay una organización específica detrás en términos de desarrollo continuo, pero la comunidad de Ruby es muy activa y está compuesta por desarrolladores de todo el mundo que contribuyen al lenguaje y a su ecosistema de herramientas y bibliotecas. ¡Esto es magnífico!

**¿Por qué debería programar en Rails?**


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9k4is9dvtynrhj88veoj.jpeg)

Después de una introducción expondré tres razones por el cual he considerado programar mis proyectos en Rails:

_**1. Favorece cuatro químicos naturales definidos como el "cuarteto de la felicidad"**_


La endorfina, serotonina, dopamina y oxitocina son los cuatro químicos que hacen que las personas sean felices. Aunque esta comparación parezca rara, básicamente es una analogía con algo de sentido, porque Ruby y el framework Ruby on Rails están diseñados para la felicidad del programador. Precisamente mientras desarrollamos software estamos enfrentando retos y complejidades, sumando la presión del PM para entregar todo a tiempo, esto genera muchas veces estrés en los programadores. No podemos pasar todo el tiempo resolviendo complejidades que podrían estar construidas o gestionadas de una mejor manera, como lo hace Ruby on Rails.

La productividad debería ser el foco al desarrollar los proyectos. Ruby on Rails está diseñado para hacer que el desarrollo web sea más rápido y eficiente. Su sintaxis limpia y su amplia gama de bibliotecas y herramientas pueden ayudarte a crear aplicaciones web de manera más rápida que con otros frameworks, liberándote del estrés de las complejidades y haciéndote más feliz al ver cómo avanza tu proyecto de forma rápida.

El desarrollo de un proyecto debe centrarse en la productividad, especialmente cuando no hay requerimientos técnicos específicos. Recuerdo una ocasión en la que trabajaba para un cliente que era proveedor de una multinacional. La empresa matriz tenía dos proveedores, y yo apoyaba a uno de ellos. La otra empresa proveedora contaba con un equipo de desarrolladores que trabajaban en Java. Cuando nos solicitaban hacer integraciones, yo las realizaba en Ruby y las terminaba en cuestión de días. En contraste, el otro equipo se tardaba hasta dos semanas, e incluso más, en completar las mismas integraciones. Mientras yo terminaba en máximo una semana, ellos demoraban el doble. Esta diferencia significativa en el tiempo de entrega demostró la eficiencia y rapidez que ofrecía Ruby en comparación con Java, lo que resaltó la importancia de elegir tecnologías que maximicen la productividad en el desarrollo de proyectos. 

Usted podría pensar que la comparación anterior no tiene sentido, porque Java es compilado y Ruby interpretado, y que en Java se escribe más código en comparación con Ruby, pero la decisión la toma el desarrollador, y cuando en esa decisión lo técnico no es una prioridad, escoger tecnologías no adecuadas lo que hace es complicar el desarrollo de los proyectos, agregando muchas veces más dificultades que podríamos evitar. Tal vez se pregunte, ¿Por qué elegir Ruby en lugar de Python o JavaScript? Ruby tiene una sintaxis elegante y legible; su flexibilidad y expresividad permiten escribir código de manera concisa y natural. Podemos ejecutar algoritmos de formas diferentes y además cuenta con miles de gemas que pueden ahorrarle trabajo, por algo, como dice su página oficial, "El mejor amigo de un desarrollador".


**_2. La productividad como algo razonal_**
 

El desarrollo de un proyecto debe centrarse en la productividad, basándose en requisitos técnicos razonables. Es crucial considerar el término "razonable", ya que muchos programadores eligen tecnologías basándose únicamente en su popularidad o en el marketing que las rodea. En este sentido, JavaScript a menudo se señala como uno de los mayores culpables, al ser una tecnología muy promocionada y adoptada por muchos programadores influencers hispanos. Sin embargo, esto no siempre es negativo y, de hecho, puede beneficiar a la comunidad de programadores. 
A pesar de esto, a veces se genera la impresión errónea de que JavaScript es la única opción, lo cual no es necesariamente cierto. Además, es importante tener en cuenta que JavaScript es un lenguaje en constante evolución, donde se crean soluciones sobre soluciones, es decir, tecnologías que corrigen o mejoran otras tecnologías. Esto puede hacer que el desarrollador sienta que el tiempo no le alcanza para aprender al ritmo del ecosistema, lo que muchas veces termina generando frustración. En cambio, Rails siempre ha mantenido la productividad y la simplicidad en el desarrollo, ha demostrado ser una opción estable y confiable para los desarrolladores. 

Al considerar las opciones para el desarrollo de aplicaciones web, Ruby on Rails destaca como una elección sólida y viable. Rails ofrece una estructura y convenciones que simplifican el proceso de desarrollo y fomentan las mejores prácticas. A diferencia de otros frameworks, Rails prioriza la convención sobre la configuración, lo que significa que proporciona un conjunto predeterminado de reglas y patrones que permiten a los desarrolladores comenzar rápidamente sin tener que configurar cada aspecto de la aplicación. Esto se traduce en un desarrollo más rápido y eficiente, especialmente para proyectos web como sitios de comercio electrónico o aplicaciones de gestión. En Rails, puedes desarrollar prácticamente cualquier tipo de aplicación web.

La productividad es fundamental para el éxito de una startup, ya que permite a los equipos desarrollar y lanzar productos rápidamente en un mercado altamente competitivo. En este sentido, Ruby on Rails se destaca como una opción ideal para startups debido a su enfoque en la eficiencia y la velocidad de desarrollo. Rails simplifica el proceso de desarrollo, permitiendo que los equipos se centren en la creación de características innovadoras en lugar de preocuparse por detalles de implementación. Además, Rails favorece a las startups al reducir los costos de desarrollo, ya que permite trabajar con equipos reducidos. Esto se debe a que Rails es un lenguaje de programación altamente productivo, lo que significa que los desarrolladores pueden crear más código con menos esfuerzo.

Un equipo de desarrolladores Rails puede crear una aplicación web básica en la mitad del tiempo que tomaría un equipo del mismo tamaño que trabaja con otro lenguaje de programación. Esto significa que las startups que usan Rails pueden ahorrar dinero en costos de desarrollo, lo que puede ser una gran ventaja en las primeras etapas de una empresa.

_**3. Los Desarrolladores Ruby son especiales**_

La comunidad de Rails y Ruby es grandiosa, siempre está creando cosas nuevas y soluciones. Los programadores que dominan Ruby on Rails son considerados especiales en la industria, ya que son menos comunes en comparación con otras tecnologías. Debido a esta rareza y a la demanda constante de habilidades en Ruby on Rails, los salarios suelen ser más altos para los desarrolladores especializados en este lenguaje y framework. Esto hace que los programadores Ruby on Rails sean altamente valorados en el mercado laboral y una elección popular para empresas que buscan talento en desarrollo web.

**¿Cuándo no debería programar en Rails?**

Cuando el propósito debe sobreponerse sobre la belleza, es así de simple. Es decir, cuando los requerimientos técnicos, te lleven a usar otra tecnología. 


**En conclusión:**

Este artículo no se centra en los aspectos técnicos de Rails, sino en la importancia de siempre buscar la productividad y la felicidad como programadores. En muchos foros he visto que algunos desarrolladores deciden cambiar de PHP a Rails, o de NodeJS a Rails, precisamente porque buscan acortar complejidades en la ejecución de sus proyectos y, además, se ven obligados a trabajar con equipos reducidos. 

Estos son las ideas mas importante de este articulo. 

- La belleza de un lenguaje de programación es subjetiva, y lo que funciona para uno puede no funcionar para otro.
- La mantenibilidad del lenguaje es crucial para el éxito a largo plazo de un proyecto y Ruby esta en contante evolución. 
- La productividad del desarrollador debe ser un factor determinante en la elección de la tecnología, Rails es el mejor framework en terminos de productividad. 
- Ruby on Rails ofrece una sintaxis elegante, una amplia gama de bibliotecas, herramientas y una comunidad activa.
- La decisión de no usar Rails debe basarse en los requerimientos tecnicos. 


_Fotos: @cantoniodasilva @brupm_