Imagen de avatar anacareaga
Ana Lilia Careaga

Ruby on Rails: No lo hagas de nuevo

Ana Lilia Careaga Mercadillo, Septiembre   2010

Abstract

Zen philosophy is a mixture emerging from the Indian mysticism,   love of naturalness and spontaneity of Taoism and deep pragmatism of the Confucian mind. This mixture resulted in a typically Japanese way of life that has influenced not only in everyday life but in business life and particularly in the technological development, such as language programming techniques like Ruby on Rails. Known popularly as ROR or Rails for short, Ruby on Rails is a web application framework option that seek to use logical steps to help create workable code for the creation of web sites. As an open source project that is written in Ruby program language, Ruby on Rails uses the Model-View-Controller design pattern as the foundation for how the framework functions. Ruby programming language has the advantage of being relatively easy for anyone to learn and also follows a logic sequence that many people find easy to follow.

 

————————————————————————————————————-

Introducción

Toda filosofía es una forma de concebir el mundo y en el caso particular de la filosofía oriental se ha caracterizado, a diferencia de la occidental, en la interpretación mística de la realidad. En Japón, la filosofía se origina a partir de su desarrollo cultural a través de un proceso histórico, religioso y sapiencial que surgió a partir del pensamiento chino e hindú. La filosofía Zen es una mezcla surgida del misticismo del Budismo[1] hindú, del amor a la naturalidad y espontaneidad del Taoismo[2] y del pragmatismo profundo de la mente Confucionista[3] que ha influido no solo en su vida cotidiana sino en la vida empresarial y muy particularmente en el desarrollo tecnológico de este país. Es interesante mencionar que la filosofía Zen ha tenido gran influencia en el desarrollo de nuevas tecnologías, como en el diseño de las computadoras Mac y otros dispositivos de Apple y de manera particular en los lenguajes de programación orientados a objetos.

El Zen, es, entonces, una forma de interpretar la realidad de origen budista, que recoge una sencillez de principios que tratan de rescatar al hombre del sufrimiento de la existencia. El Zen busca la recuperación de la simplicidad y sencillez , busca una reconciliación de la persona con el ser sensible, con el cosmos, gracias a la cual el hombre se centra en la realidad que le envuelve captada ahora en su íntima verdad dejando a un lado a la engañosa verdad que manejamos en el mundo conceptual y lógico.

El Zen aspira a la sencillez, a la sutileza, a la elegancia, a la naturalidad, a la quietud y a la tranquilidad…. y también al espacio vacío[4]. Ya el Taoismo chino, venía siglos atrás buscando los mismos significados, y en realidad, como se mencionó, el Zen es la fusión de la filosofía Taoista con el budismo hindú.

El Tao es una fuerza primitiva que es producida por todas las fuerzas naturales del cielo y de todo el universo. Tao es una forma de vida, no es un Dios o una religión. Los principios del Tao fueron enunciados por primera vez por medio de símbolos y de palabras por los antiguos filósofos de la China, hace más o menos 5000 años. Es una forma de equilibrar la vida.

El Yin Yang es un símbolo dinámico del Taoismo que muestra la continua interacción de dos energías y su equilibrio y, como tal, es un símbolo de armonía que crea la igualdad pues sin el Yin no podría existir el Yang y sin la interacción de ambos, no se genera vida. No existe nada opuesto entre el Yin y el Yang porque son complementarios.

Lao-tzu en “Tao-te ching” escribió: “Todo tiene dentro de sí ambos, Yin y Yang y de su ascenso y descenso alternados nace la nueva vida”. Cuando una de las dos energías llega a su máxima expresión, inicia la transformación en su opuesto: esto es lo que representan los dos puntos en el símbolo. En su máxima expresión, el Yang contiene la semilla del Yin, tanto como el Yin contiene la semilla del Yang.

Yin, originariamente, era el nombre del lado frío de la montaña, aquel que mira al Norte; al contrario, Yang era el nombre de la región más cálida, dirigida al Sur. Yin es el lado oscuro, la noche y lo femenino; Yang el lado masculino, la luz y el día. Yin es la Luna, el Agua y la Tierra; Yang es el Sol, el Fuego y el Paraíso.

Dar cuenta de este equilibrio en la naturaleza del ser humano es también entender que nada es totalitario y absoluto y que dentro de cada punto de vista hay parte de otro. Mirar la vida desde esta perspectiva nos llevará a vivir en armonía, respeto y equilibrio.

En la filosofía Zen nada se enseña, todo se sugiere. El artista aprende una técnica a fuerza de repetición y cuando llega al Satori”[5] (iluminación) se desprende de la técnica, ya no es el artista dirigiendo conscientemente sus manos, sino por el contrario, se desprende de todo pensamiento y aparece la creación. El Zen está presente en las actividades diarias de la vida japonesa que incluyen el arte de la pintura, el diseño de jardines o la ceremonia de té. En las artes y tecnología se manifiesta con simplicidad, limpieza, elegancia y minimalismo a la vez.

Ruby on Rails, como la mayor parte de lenguajes de programación orientados a objetos,   refleja los principios Zen. Ruby on Rails, también conocido como RoR, o simplemente Rails, es un  framework[6] de aplicaciones Web de código abierto que combina la simplicidad de desarrollar aplicaciones en tiempo real con el mínimo de códigos y configuración. Algunos de los principios de la filosofía Zen que aplican en la mayoría de los  lenguajes de programación orientada a objetos, en particular para Python, son[7]:

  1. Hermoso es mejor que feo.
  2. Explícito es mejor que implícito.
  3. Simple es mejor que complejo.
  4. Complejo es mejor que complicado.
  5. Plano es mejor que anidado.
  6. Disperso es mejor que denso.
  7. La legibilidad cuenta.
  8. Los casos especiales no son suficientemente especiales como para romper las reglas.
  9. Aunque lo pragmático gana a la pureza.
  10. Los errores nunca deberían dejarse pasar silenciosamente.
  11. A menos que se silencien explícitamente.
  12. Cuando te enfrentes a la ambigüedad, rechaza la tentación de adivinar.
  13. Debería haber una — y preferiblemente sólo una — manera obvia de hacerlo.
  14. Si la implementación es difícil de explicar, es una mala idea.
  15. Si la implementación es sencilla de explicar, puede que sea una buena idea.

Para el caso particular de Ruby on Rails, además de lo anterior, su filosofía se resume en:” No lo hagas de nuevo..” ( Don’t Repeat Yourself “)

———————————————————————————————————-

¿Qué es Ruby on Rails?

Ruby on Rails, o RoR, es la nueva forma de desarrollar aplicaciones Web que junto con AJAX[8] está creando una revolución en la industria del desarrollo de software de la Web. Ruby on Rails combina la simplicidad con el mínimo de configuración para el desarrollo de aplicaciones. Basado en la filosofía Zen, su principio principal es No lo hagas de Nuevo o traducido literalmente del inglés: No te repitas ( Don´t repeat yourself ).Lo anterior se refiere a que las definiciones en la programación deben de hacerse una sola vez. Otra característica que lo distingue es la Convención sobre la configuración [9] que se refiere a que el programador sólo necesita definir aquella configuración que no es convencional, o sea la que no hereda de otras aplicaciones. Cuando se diseña una nueva aplicación, partiendo de cero, conviene seguir las convenciones de Ruby on Rails porque son más simples y emplean menos código.

Ya mencionamos anteriormente que Ruby on Rails es en realidad un framework de aplicaciones Web y esto significa que el programador no necesita plantear una estructura particular porque ya el lenguaje se la ofrece de manera predeterminada. De esta manera se facilita el desarrollo de una aplicación y se ahorra tiempo. Por otra parte, se motiva la colaboración porque al seguir un estándar predeterminado cualquiera puede continuar desarrollando la misma aplicación. Además, algo importante que es preciso destacar es la posibilidad de emplear herramientas, utilidades y librerías comunes. En realidad “Ruby” es el lenguaje de programación y ‘Rails’ el framework o estructura que debe llevar toda aplicación.

A continuación haré una breve descripción de ambas:

¿Qué es Ruby?

Ruby en sí es el puro lenguaje de programación orientado a objetos, multiplataforma y Open Source con el que se desarrolla una aplicación Web. Fue creado en 1995 por el japonés Yukihiro Matsumoto, también conocido como Matz. El lenguaje posee el pragmatismo de  Perl (y de ahí su nombre Ruby), la elegancia de Smalltalk y la facilidad de uso y aprendizaje de Python. Su objetivo es claro: simplificar la vida de los programadores con un lenguaje sencillo, simple, minimalista y elegante. Menos código, menos errores, mayor facilidad de mantenimiento y sin necesidad de compilación. Ruby hace de la programación algo divertido.

Ruby fue diseñado para un desarrollo rápido y sencillo. Cada día este lenguaje va ganando más adeptos, tanto así que la empresa SunMicrosystems, está apoyando un proyecto llamado Jruby que es un intérprete de Ruby escrito 100% en Java.

Entre las características del lenguaje se encuentran[10]:

  • Posibilidad de hacer llamadas directamente al sistema operativo.
  • Muy potente para el manejo de cadenas y expresiones regulares.
  • No se necesita declarar las variables.
  • La sintaxis es simple y consistente.
  • Todo es un objeto.
  • Usa Métodos Singleton. (instancia única): que se refiere a que en Ruby se puede asignar a cada Objeto sus propios métodos y éstos se utilizan frecuentemente en los elementos de una interfase gráfica de usuario cuando se deben realizar acciones diferentes al pulsar botones diferentes-

¿Qué es Rails?

Rails es el framework de código abierto para Ruby que sirve para desarrollar aplicaciones Web que acceden a bases de datos. Aquí podríamos preguntarnos y.. ¿Qué tiene esto de especial? Si existen docenas de frameworks por ahí, y la mayoría existen desde hace más tiempo que Rails. ¿Por qué molestarse en aprender otro framework una vez más? La respuesta es simple: el programador puede desarrollar una aplicación Web diez veces más rápido sin sacrificar calidad porque se emplea menos software y se hace uso de convenciones preestablecidas que ahorran tiempo.

Rails es entonces el  framework basado en un patrón de diseño llamado Modelo Vista Controlador (MVC) sobre el cual se programa con el lenguaje Ruby. Fue creado por David Heinemeier Hansson, empleado de la empresa 37signals y fue liberado por primera vez al público en julio del 2004. Su primera implementación fue en una aplicación orientada a la administración de proyectos llamada Basecamp.

Ruby on Rails se distribuye a través de RubyGems, que es el formato oficial de paquete y canal de distribución de bibliotecas y aplicaciones Ruby.

Y… ¿Cómo lo uso?

Ruby es un lenguaje de código abierto y ha sido corrido en muchos  sistemas operativos. Sólo descárgalo ¡ y ya! Si tienes una MAC, ya tienes instalado Ruby.

Cómo Instalar Ruby en Windows

Para bajar Ruby para Windows, entra al siguiente sitio:

http://rubyinstaller.org/

El instalador de Ruby se llama:

Ruby_x.y.z_OneClick_Installer

(donde x.y.z son números de versión, la última hasta el momento es la 1.9.2)

Después de que haya bajado, correrlo, acepta todos los defaults, hasta ver el botón de [Finish].

Asumimos que queda instalado en el directorio: c:\ruby

 

Cómo Instalar Ruby en Linux

 

Para instalar Ruby con Ubuntu o Debian, las distribuciones  de Linux más populares, la forma más fácil es escogerlo e instalarlo con el instalador Synaptic:

System > Administration > Synaptic Package Manager.

Alternativamente, ejecutar el siguiente comando desde una consola:

sudo apt-get install ruby-full irb

Luego tendremos que instalar la base de datos MySQL, así como las librerías correspondientes al lenguaje ruby para poder manejar la base de datos:

sudo apt-get install mysql-server libmysql-ruby

Instalando Rails

Si disponemos de conexión a Internet el trabajo se resume en:
gem install rails –include-dependencies. Para una instalación manual debemos descargar cada uno de los módulos:

Los archivos deberán ser descargados en un sólo directorio y los comandos ejecutados en ese mismo directorio.

Ahora deberemos probar que la instalación haya sido completamente correcta. Para ello, abrimos una terminal y creamos un proyecto de Ruby on Rails de la siguiente forma:

rails nuevoproyecto

y ejecutamos el script que lanza el servidor:

cd nuevoproyecto ruby script/server

Por último abrimos el navegador e ingresamos la dirección http://localhost:3000 y debe aparecer un mensaje de bienvenida de Ruby on Rails parecido al de esta  pantalla:

Hasta aquí ya tenemos  instalado tanto Ruby como  Rails satisfactoriamente, ahora ya estamos listos para desarrollar  nuestra primera aplicación. Automáticamente se genera el “esqueleto” o estructura de nuestra aplicación y, ahora sí, ya puedes empezar a desarrollar tu primera aplicación con el clásico “hola mundo!”

———————————————————————————————————-

CONCLUSIONES

Indudablemente Japón ha conseguido un extraordinario crecimiento industrial desde la Segunda Guerra Mundial, desarrollando nuevas tecnologías que atraen la curiosidad y admiración de todos. ¿Qué hizo posible el que Japón se convirtiera en un gigante industrial? La explicación se puede resumir en lo siguiente: su búsqueda por la perfección. Lejos de la mística y las creencias religiosas, la enseñanza de Confucio absorbida en el pensamiento Zen japonés se propone como una filosofía práctica, como un sistema de pensamiento orientado hacia la vida y destinado al perfeccionamiento de uno mismo pero siempre trascendiendo de lo individual.

Le urge a México salir del individualismo que nos impide crecer no sólo como país sino como seres humanos. Es necesario encontrar un nuevo camino que  nos enseñe a liberarnos del engaño de la ambición y del poder que está deshumanizando nuestra sociedad. La búsqueda de la perfección y el alejamiento de la individualidad son aspectos que deberíamos educar en nuestras nuevas generaciones, y una manera de comenzar podría ser mediante la educación del uso de las Tecnologías de Información.

La filosofía Zen aplicada a la tecnología da como resultado la búsqueda de armonía, simplicidad, elegancia y estética. Hagamos del uso inevitable de las tecnologías un gusto que despierte la armonía, la perfección, la simplicidad…. Y así como para los japoneses tomar té despierta el goce de sus sentidos y cada taza se convierte en una experiencia inolvidable, la ” tecnología Zen” podría convertirse en una experiencia que nos despierte creatividad y gusto, nos aleje del pensamiento individualista y, sobre todo, que trascienda positivamente en nuestro país.


[1] El Budismo se desarrolló a partir de las enseñanzas difundidas por su fundador, Siddharta Gautama, alrededor del siglo V AC en el noreste de la India. El budismo inició una rápida expansión hasta llegar a ser la religión predominante en India en el  siglo III AC.

[2] El Taoísmo se desarrolló a partir de un sistema  filosófico basado en las escrituras de Lao Tzu. El Taoísmo establece la existencia de tres fuerzas: una pasiva, otra activa y una tercera, conciliadora. Las dos primeras se oponen y complementan simultáneamente entre sí, es decir que son interdependientes de manera absoluta y funcionan como una unidad. Son el Yin (fuerza pasiva/sutil, femenina, húmeda…) y el Yang (fuerza activa/concreta, masculina, seca…). La tercera fuerza es el Tao, o fuerza superior.

[3] El Confucionismo es el principal sistema de pensamiento en China; se desarrolló a partir de las enseñanzas de Confucio y sus discípulos, y tenía que ver con los principios de la práctica del bien, la sabiduría empírica y las propias relaciones sociales.

[4] El vacío zen es un vacío dinámico y vivo, inaprehensible y atemporal, cuya verdadera naturaleza permanece desconocida. La esencia de la vida se siente, no se piensa (no se racionaliza o conceptualiza), y cuando se capta se comprende su naturaleza de vacío.

[5] Satori es un término japonés que designa la  iluminación en el budismo Zen.

[6] Un framework es una estructura conceptual y tecnológica de soporte definida, normalmente con artefactos o módulos de software concretos, con base en la cual otro proyecto de  software puede ser organizado y desarrollado. Típicamente, puede incluir soporte de programas ,  bibliotecas  y utilerías

[7] Citado por Peters Tim en “The Zen of Phyton”,  disponible en la Web en  http://www.python.org/dev/peps/pep-0020/

[8]Ajax, acrónimo de Asynchronous JavaScript And XM, es una técnica de desarrollo Web para crear aplicaciones interactivas o RIA (Rich Internet Applications). Estas aplicaciones se ejecutan en el cliente, es decir, en el  navegador de los usuarios mientras se mantiene la comunicación asíncrona con el servidor en segundo plano.

[9] Convención sobre Configuración, también conocido como CoC es un paradigma de programación de software que busca decrementar el número de decisiones que un desarrollador necesita hacer, ganando así simplicidad sin perder flexibilidad.

[10] Citado en  “Maestros de la Web” disponible en la Web en  http://www.maestrosdelweb.com/

6 respuetas para “Ruby on Rails: No lo hagas de nuevo”

  1. […] This post was mentioned on Twitter by César Castillo, Ingenet. Ingenet said: Ruby on Rails: No lo hagas de nuevo http://bit.ly/b3qLT5 ROR nueva la forma de desarrollar aplicaciones Web por Ana Lilia Careaga. […]

  2. trying to find you on facebook, wats your profile

  3. […] Ruby on Rails: No lo hagas de nuevo […]

  4. I seriously similar to this article, the concept composed on this clause will be incredibly helpful. I enjoy the indite and also his efforts to offer data many matter. This is a effectively-published post which is very complete and specific. The creator has command on the theme and it’s also a well-researched write-up. You should the concept and may lead to data inside slow and also understandable approach.
    cheap mlb jerseys http://coincidence.creativist.me/mlb.html

  5. replica bags dice:

    Ruby on Rails: No lo hagas de nuevo « anacareaga replica bags

Deja un comentario