Download Ruby on Rails - Contenidos Abiertos

Document related concepts

Ruby on Rails wikipedia , lookup

David Heinemeier Hansson wikipedia , lookup

CakePHP wikipedia , lookup

Sinatra (software) wikipedia , lookup

Monit wikipedia , lookup

Transcript
“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
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.
Página 1
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
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.
Página 2
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.
2.
3.
4.
5.
6.
7.
8.
Hermoso es mejor que feo.
Explícito es mejor que implícito.
Simple es mejor que complejo.
Complejo es mejor que complicado.
Plano es mejor que anidado.
Disperso es mejor que denso.
La legibilidad cuenta.
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.
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/
Página 3
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
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.
Página 4
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 :
•
•
•
•
•
•
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-
Citado en “Maestros de la Web” disponible en la Web en http://www.maestrosdelweb.com/
Página 5
¿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
Página 6
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.
•
•
•
•
•
•
•
gem install rake-0.7.1.gem
gem install activesupport-1.3.1
gem install activerecord-1.14.4.gem
gem install actionpack-1.12.5.gem
gem install actionmailer-1.2.5.gem
gem install actionwebservice-1.1.6.gem
gem install rails-1.1.6.gem
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
Página 7
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!”
----------------------------------------------------------------------------------------------------------
Página 8
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.
Página 9