Hace un tiempo hablamos del lenguaje de programación Ruby y de cómo sus características lo hacían ágil y dinámico a la hora de programar software. Ahora vamos a hablar de uno de sus frameworks de trabajo más importante, Rails, entorno para construir aplicaciones web de código abierto, hecho totalmente con Ruby y aportando uno de los patrones de diseño web más importantes, el patrón MVC o modelo-vista-controlador.
Pero, ¿cuál es la filosofía de RoR? ¿Qué tipo de lenguaje es?
Principalmente podríamos describirlo como un lenguaje que sigue el paradigma de la orientado a objetos, imperativo, funcional y reflexivo. Su disciplina fundamental es que es dinámicamente tipado (lo cual da mucha más libertad a los programadores).
La filosofía de RoR es clara, Don`t repeat yourself (no te repitas o DRY) y Convention over configuration.
La primera hace una alusión clara a promover la reutilización de código, de conseguir que todas las piezas de información sean únicas y así conseguir que el mantenimiento sea mucho más sencillo y barato, centrándose principalmente en la duplicidad de código.
La segunda es un paradigma de diseño que está empezando a tener cada vez más adeptos, y su idea principal es la de tener reglas o convenciones a la hora de programar, para así evitarnos la engorrosa tarea de una fuerte configuración. Toda la configuración de la aplicación viene preestablecida y nosotros tendremos que seguir esas regla (muy sencillas y muy cómodas, hay que decirlo) para centrarnos en lo que realmente nos interesa: la programación y la lógica de negocio. Sin perder tiempo en otras tareas.
Por poner un ejemplo, un desarrollo de una aplicación de pantallas en la que la lógica de negocio consiste básicamente en un CRUD, en RoR podría llevarnos entre 2 o 3 días (solamente la parte back). En otros lenguajes más clásicos nos podría llevar más del doble. De hecho, un CRUD completamente formado y operativo, con todas las páginas web creadas, con toda la base de datos creada y con toda la lógica sencilla de negocio y de navegación creada, se consigue con una sola línea de comando (sí, con una sola línea), gracias al scaffolding.
Tengo que empezar a hacer un desarrollo nuevo, ¿debería elegir Ruby on Rails para mis nuevo proyectos?
Bueno, este tipo de preguntas nunca es fácil de contestar ya que hoy por hoy es más fácil de encontrar gente que programe en otros lenguajes (Java, por ejemplo) que en lenguajes con Ruby on Rails, así que la respuesta no es clara. Java es un lenguaje muy potente y muy consolidado, por lo que siguen siendo buenas opciones, además de que a corto plazo puede que ya tengas programadores que sepan Java y no tengas que formarlos en otro lenguaje.
Desde nuestra experiencia como formadores, nos hemos dado cuenta de que la curva de aprendizaje de RoR es mucho más rápida que en otros lenguajes (Java, por ejemplo). Esto se acentúa más en gente con experiencia en algún tipo de programación.
En mi empresa utilizamos otro lenguaje y otro frameworks para programar páginas web, ¿por qué debería cambiarme?
Realmente es una pregunta que todos nos hacemos a la hora de hacer un cambio significativo en nuestro entorno, y más cuando una de las máximas en este negocio es el famoso: “si algo funciona, no lo toques”. Bien, está claro que los mantenimientos o posibles desarrollos sobre proyectos antiguos lo más fácil es seguir haciéndolos sobre el lenguaje con el que se hizo, así lo recomendaría siempre. Sin embargo, posiblemente para los nuevos desarrollos empezaría a buscar otras alternativas de desarrollo ligero como RoR o más “javeros” como GoG (Groovy on Grails, un lenguaje basado en RoR).
Siempre se recomienda precaución con los cambios, pero también es importante mirar al futuro.
Y hablando del futuro, ¿es prometedor?
Sin ninguna duda, RoR es un lenguaje con futuro. Este mundo es enormemente cambiante y no se puede vivir eternamente en el pasado. Por ejemplo, hay gente que dice que Java es el nuevo Cobol y que solamente quedará como legado su máquina virtual para ser utilizada por otros lenguajes (como Groovy por ejemplo). De todos modos, en CLEFormación te damos la opción de formarte en las tecnologías que necesites.