Imaginemos un mundo libre

La paz interior comienza en el momento en el que decides no permitir, que ninguna persona o evento, tome el control de tus emociones.

La revolución del desarrollo Web: Ruby on Rails

with 2 comments

Desde la aparición de Internet, hemos sido testigos de diversos sitios web, variedad de aplicaciones y tecnologías que evolucionan constantemente.Actualmente se está viviendo una revolución en el mundo Web denominada: Web 2.0. Podríamos referirnos a Web 2.0 como el desarrollo de aplicaciones modernas, super dinámicas, orientadas a la interacción y creación de redes sociales que fomenten la participación de los usuarios.
La Web 2.0 hace uso de técnologías y técnicas como AJAX, XML, SEO,  CSS avanzado, Sindicación de contenidos, patrones de diseño, estándares Web, folksonomía, usabilidad, enfoque en la simplicidad etc.  Muchas de estas aplicaciones han sido y están siendo desarrolladas con la plataforma Web Ruby on Rails, y al parecer, elegir este entorno de desarrollo, es una gran decisión.

Si hay alguien que está haciendo ruido, captando la atención de varios programadores, usuarios, empresas de software y ganando mucho prestigio en la Web,  es sin duda Ruby on Rails. Y seguramente nos preguntamos:

¿Qué es Ruby?, ¿Qué es Rails?, ¿Qué es Ruby on Rails?, ¿Porqué está haciendo tanta ruido y ganando mucha popularidad?, ¿Porqué sus aplicaciones son robustas, eficientes, y rápidas, creadas con un código sencillo y elegante? ¿Porqué dicen que incrementa la productividad,  creatividad e innovación en los programadores? ¿Quién lo utiliza? ¿Cómo inicio?.

Es hora de empezar…

¿Qué es Ruby?

Es un lenguaje de programación dinámico totalmente orientado a objetos, multiplataforma y Open Source, creado en 1995 por Yukihiro Matsumoto, en Japón.  Dentro de sus fortalezas, el lenguaje Ruby permite una gran productividad del programador gracias a un enfoque hacia la simplicidad, menos código, menos errores, mayor facilidad de mantenimiento, sin necesidad de compilación. El resultado: el tiempo se dedica a construir aplicaciones potentes, de una manera eficiente, rápida y sencilla.

Ha combinado muchas de las características positivas de Perl, PHP, Java, C, Smalltak, Lisp. haciendo un lenguaje potentísimo para el desarrollo de aplicaciones.

Es considerado un lenguaje muy intuitivo casi a un nivel de lenguaje humano, que de una forma se asemeje al lenguaje natural, de esta forma hace que la experiencia de programación sea más divertida.

¿Qué es Rails?

Rails es un framework,  es decir, un conjunto de programas,  librerías que ayudan a desarrollar y unir los diferentes componentes de un proyecto de software.  Rails también es Open Source,  multiplataforma, distribuido bajo la licencia del MIT. Fue desarrollado integramente con el lenguaje Ruby por el danés David Heinemeier Hansson y liberado al público por primera vez en Julio de 2004.

Soporte de Rails

Plataformas : GNU/Linux, Unix, FreeBSD, Mac OS X, Windows.
Bases de Datos : PostGreSQL, MySQL, Oracle, SQL Server, SQLite, IBM DB2.
Servidores Web : Webrick (Servidor integrado con Rails), Apache, Lighttpd.

De la combinación del lenguaje Ruby más el framework Rails, surge la plataforma para desarrollo Web.

Ruby on rails, también conocida como RoR

La filosofía de Ruby on Rails, se basa en dos principios fundamentales: “No te repitas” y “Convención sobre configuración”.

No te repitas se refiere a que las definiciones deberían hacerse una sola vez, pues los componentes están integrados de manera que no hace falta establecer puentes entre ellos. Cada pieza de conocimiento en un sistema, deberá ser expresada en un sólo lugar.  Este principio se basa en escribir menos lineas de código para implementar la aplicación.  Si el código es pequeño quiere decir que el desarrollo es más rápido y con menos errores, lo que hará que el código sea fácil de entender, mantener y mejorar.

Convención sobre configuración significa que el programador sólo necesita definir aquella configuración que no es convencional. En lugar de archivos de configuración, utilizamos una serie de convenciones simples que permiten averiguarlo todo.

Arquitectura: Patrón MVC
Ror facilita el diseño y desarrollo de aplicaciones web separando automáticamente en 3 capas todos los componentes de la aplicación (Modelo, Vista y Controlador).

  • Modelo es todo acceso a base de datos, y las funciones que contienen la “lógica de negocio”.
  • La vista se encarga de mostrar la información al usuario final:  HTML, XML.
  • El controlador une la vista con el modelo, contiene toda la lógica de programación.  Almacena las funciones que toman los valores de un formulario, delega consultas de base de datos al modelo y produce valores que invocarán a la vista adecuada.


En conclusión con Ror nos centramos en lo que verdaderamente importa: la funcionalidad de nuestra aplicación y podemos crear aplicaciones más complejas y de funcionamiento más “suave” con muchísimo menos esfuerzo. Algunas ejemplos de grandes aplicaciones hechas con RoR son:  Basecamp, La Coctelera,  Odeo,  43things,  Shopify,  Fluxiom,  Typo,  Bigcartel,  WriteBoard,  SoapBX,  Campfire,  BackPack, entre otras.

Instalación de Ruby on Rails en Linux:

1.- Descargamos la última versión de Ruby desde http://www.ruby-lang.org/en/downloads   (Actualmente la 1.8.6 es la versión estable).

2.- Descomprimimos el archivo:
[ruby@localhost ~]$ tar xvzf ruby-1.8.6.tar.gz

3.- Ingresamos al directorio de ruby y compilamos:
[ruby@localhost ~]$ cd ruby-1.8.6
[ruby@localhost ruby-1.8.6]$ ./ configure & make && make install

En Debian y sus derivadas. Actualizamos nuestro listado de paquetes disponibles.
[ruby@localhost ~]$ sudo apt-get update
Instalamos el lenguaje ruby, el archivo con la documentación de ruby y el modulo de ruby para apache:
[ruby@localhost ~]$ sudo apt-get install ruby rdoc libapache-mod-ruby

4-Luego descargamos el gestor de paquetes Rubygems desde http://rubyforge.org/frs/?group_id=126 (Actualmente la última versión es la 0.9.3).

5.- Lo descomprimimos con:
[ruby@localhost ~]$ tar xvfz rubygems-0.9.3

6.-Ingresamos al directorio de rubygems y lo instamos con :
[ruby@localhost ~]$ cd rubygems-0.9.3
[ruby@localhost rubygems-0.8.11]$ ruby setup.rb

7.-Ahora pasamos a instalar Rails con el comando gem (nos instalará la última versión):
[ruby@localhost rubygems-0.8.11]$ gem install rails –remote –include-dependencies

Este parámetro –remote –include-dependencies significa que debemos de instalar algunas dependencias con las que debe contar rails. En total son 6 paquetes:

 rake
 activesupport
 activerecord
 actionpack
 actionmailer
 actionwebservice

Listo, ya tenemos instalado Ruby, Rails y podemos empezar a desarrollar.

8. Ahora crearemos la estructura de nuestra primera aplicacion rails.  Ejecutamos el comando rails con el nombre de nuestra aplicación.

[ruby@localhost]$ rails nuestra_aplicacion
El comando rails creará un directorio con el nombre de nuestro proyecto y dentro de el armará una estructura, una serie de subdirectorios con los cuales iniciaremos nuestro trabajo con Ruby on Rails.

 create
 create app/controllers
 create app/helpers
 create app/models
 create app/views/layouts
 create config/environments
 create components
 create db
 create doc
 create lib
 create lib/tasks
 create log
 create public/images
 create public/javascripts
 create public/stylesheets
 create script/performance
 create script/process
 create test/fixtures
 create test/functional

9.- Ahora para ver nuestro proyecto en marcha nos ubicamos dentro del directorio nuestra_aplicacion y ejecutamos:

[ruby@localhost]$ cd nuestra_aplicacion
[ruby@localhost nuestra_aplicacion]$ ruby script/server

10.- En esa consola obtendremos una salida como esta:

=> Booting WEBrick...
 => Rails application started on http://0.0.0.0:3000
 => Ctrl-C to shutdown server; call with --help for options
 [2006-01-23 16:45:54] INFO WEBrick 1.3.1
 [2006-01-23 16:45:54] INFO ruby 1.8.4 (2005-12-24) [i386-linux]
 [2006-01-23 16:45:54] INFO WEBrick::HTTPServer#start: pid=7627 port=3000

11.- Nuestro servidor atenderá el puerto 3000.  Si usamos nuestro navegador y apuntamos a la dirección http://localhost:3000  nos saldrá un mensaje de bienvenida:


NOTA:

Si ejecutamos con ctrl + c, en el terminal o consola donde se está ejecutando nuestra aplicación detendremos el servidor Webrick y por ende la aplicación. Para facilitar el desarrollo podemos instalar plugins para distintos editores como Gedit, Jedit, Komodo Edit, la librería FastCGI para Ruby y un IDE como RadRails, aunque existen otros.
Podemos probar ruby desde nuestra consola, instalando el intérprete irb.

ALGUNAS ESTADÍSTICAS DE ROR:
Estadísticas que publica en la edición de Febrero de 2006 la revista de IEEE Computer Society.

  • En enero de 2006 eran 230 000 el número de copias descargadas de Ruby on Rails.
  • En la actualidad el 5% de los programadores lo usan de forma regular. Su principal fortaleza es la rapidez para el desarrollo de aplicaciones web: “Un programador de Rails puede hacer el mismo trabajo que un equipo de Java porque las cosas son simples, rápidas, pero muy potentes” (Curt Hibbs).
  • “En un pequeño desarrollo para una startup el código fue la cuarta parte, y el tiempo de configuración el 10% del que hubiéramos empleado con Java” (Bruce Tate).
  • Según Tiobe.com, Consultora dedicada al seguimiento de la calidad de software y la popularidad de los lenguajes de programación. De enero de 2006 a enero de 2007, Ruby escala 10 posiciones. Del puesto número 21, ahora se encuentra en el puesto 10.
  • El prestigioso sitio para de diseño y programación para la web SitePoint publicó los resultados de una reciente encuesta a 5000 desarrolladores logrando “la más completa encuesta dedicada a webdevelopers”.
  • Además de los números que era previsible encontrar, como que el 68% de ellos programa en PHP (con el 33% haciéndolo solamente en ese lenguaje), también hay otros datos resaltantes:
  • 24% de los desarrolladores (o sea, aproximadamente 1200) migrarán a programar en Ruby on Rails en los próximos 12 meses.

ALGUNAS OPINIONES SOBRE ROR:
“En todos lados.  Desde la programación de computadoras Palm hasta la programación de supercomputadoras, desde programación embedida hasta bioinformáica, la programación deberá SIEMPRE de ser divertida. Ruby cumple con esta mención”. David Heinemeier Hansson.

“Ruby on Rails es increíble. Usarlo es como estar viendo una película de kung-fu, donde una docena de frameworks malvados se preparan para golpear al nuevo y pequeño recién llegado, pero al final terminan derrotados por una gran variedad de imaginativas formas”.  Nathan Torkington de O’Reilly.

“Cada vez que hago la pregunta a un programador si es significativamente más productivo con Ruby que con Java/C#/PHP, recibo de respuesta un contundente sí. Esto es suficiente para mí, para empezar diciendo que tú deberías probar Ruby,  lo cual porsupuesto,  hará que te hagas la pregunta a ti mismo y respondas si lo crees conveniente”.  Martin Fowler.

“Que Ruby sea riesgoso, es una opinión común, y por buena razón.  Los nuevos lenguajes son intrínsecamente riesgosos. Pero Ruby on Rails está más cercano a ser el principal, ese riesgo disminuirá, porque tendrás acceso a un sistema con un crecimiento cada vez mayor de programadores,  de componentes  (llamados gems o los plug-ins),  de libros,  y de nuevos modelos de negocio”.  Bruce Tate.

Gracias por tu visita al blog.  Puedes seguirme en Twitter haciendo click en el siguiente enlace:

ENLACES DE INTERÉS:
www.rubyonrails.org
www.ruby-lang.org
planetrubyonrails.com
www.rubycorner.com
en.wikipedia.org/wiki/ruby_on_rails

Written by Ronny Yabar

March 29, 2007 at 7:35 am

2 Responses

Subscribe to comments with RSS.

  1. esta bueno..yo tambien comparto la aficion del software libre.

    Marxxxcelo Valdes

    March 29, 2007 at 7:50 am

  2. muy buen articulo sobre ror, saludos

    javi

    February 3, 2011 at 3:21 pm


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: