Rails vs Sinatra - En Español

Rails vs Sinatra (Convention vs Flexibility)


Este artículo en Inglés.

Los frameworks Rails y Sinatra son resultados de filosofías totalmente opuestas, pensamientos distintos, personas distintas. Hay muchos desarrolladores a quienes les gusta saber cómo funciona todo, la simplicidad y que las cosas sean específicas y livianas (lo cual puede verse como "filosofía UNIX"). Tienen preferencia por tener opciones y no porque les digan cómo hacer las cosas: nada de una estructura definida, un camino correcto, etcétera.

Por otro lado, hay personas que no necesitan tanto control, y priorizan obtener resultados lo antes posible. No quieren reinventar la rueda, no quieren saber cómo se hace por abajo. O también, personas a quienes sí les gusta el control, sí les gusta saber cómo funciona todo por abajo, pero que no cuentan con el tiempo y disposición necesarios para aprender un framework a fondo. Personas dispuestas a adoptar una forma de hacer las cosas si se alínea con ellos y consideran que es muy buena manera de hacer lo que deben. Personas que piensan en un equipo, más allá de un proyecto particular y más allá de un único individuo.

La elección de un framework es mucho más que el seguir una filosofía. Hay que pensar cuál es nuestro objetivo: ¿Es un proyecto? ¿Es adoptarlo como framework para tener expertise en una empresa? ¿Cuenta con buen soporte? ¿Qué tan grande es su comunidad? ¿Cuáles son realmente las necesidades que tengo? ¿Son estas necesidades inmediatas o a largo plazo? Estas y otras preguntas son las necesarias a la hora de elegir un framework. Y para cada conjunto de respuestas posibles hay una elección posible.

Analicemos ahora Sinatra y Rails y veamos posibles respuestas en base a los aspectos antes mencionados.

Sinatra

Filosofía: Es el framework para los que aman la sencillez, la flexibilidad, las soluciones ágiles, livianas y efectivas.

Tipo de proyecto: En general, proyectos de pequeño y mediano porte, o que forman parte de uno de gran porte.

Enfoque: Solución liviana a problemas concretos.

Estructura: Flexible, a gusto del desarrollador.

Documentación y comunidad: Buena documentación, pero una comunidad de tamaño medio.

Rails

Filosofía: Es completo, un framework que intenta abarcar un gran conjunto de soluciones. Se basa en la convention over configuration y, por lo tanto, tiene una fuerte opinión de cómo deben ser las cosas.

Tipo de proyecto: Pequeño y mediano porte. Configuración bastante rápida. Presenta robustez y abarca un gran espectro de soluciones.

Enfoque: Solución integral y robusta.

Estructura: Definida y concisa.

Documentación y comunidad: Mucha documentación y una comunidad muy grande.

En conclusión, podemos decir que, en líneas generales, todo depende del ciclo en el que nos encontremos, si somos una empresa o un solo desarrollador, así como también el tipo de proyecto del que se trate.

Para una empresa, Rails es una solución a muchos problemas, logramos interoperabilidad, que es fundamental cuando más de una persona trabaja en un proyecto. Logramos tener un camino a seguir que está probado que funciona, y, además, un conjunto de herramientas que para un proyecto de pequeño o mediano porte mejora altamente la productividad.

Por otro lado, para un desarrollador con experiencia, con una mentalidad definida en cómo hacer las cosas, con un proyecto específico, orientado a una solución muy personalizada, Sinatra es la solución que le da la flexibilidad necesaria sin agregados y de manera muy simple y elegante.


*Article by: Alfredo Levy at Bixlabs, Uruguay*
---