viernes, 27 de junio de 2014

¿Qué es Ruby on Rails?

Ruby on Rails es un entorno de desarrollo web, de código abierto (open source, software libre), que nos permite construir aplicaciones web flexibles y robustas rápidamente. Las dos piezas principales de este entorno son dos: por un lado Ruby, y por otro, Rails. 

¿Qué es Ruby? 

Ruby es un lenguaje de programación enfocado a la simplicidad y a la productividad, con una sintaxis elegante y natural, que le hace muy fácil de entender. Es un lenguaje de script (no compilado), totalmente orientado a objetos. El lenguaje Ruby fué creado por Yukihiro  matz Matsumoto en 1995 cogiendo lo que más le gustaba de otros lenguajes como Perl, Smalltalk, Eiffel, Ada y Lisp. Mientras que otros lenguajes tienen tipos primitivos (como números, booleanos, ...) que no son objetos, aquí todo es un objeto y por tanto se le pueden asociar propiedades y métodos, así como redefinir o extender su comportamiento. Veamos algunos ejemplos: 

Ejemplo 1

5.times { print "Me encanta Ruby!" }

En este primer ejemplo vemos cómo el número 5 tiene un método "times" con el que tenemos un bucle, al que le pasamos el bloque entre llaves para que sea ejecutado 5 veces.

Ejemplo 2

(1..100).each do |i| print i end

En este segundo ejemplo, vemos cómo los rangos de números (1..100) tienen un método "each" con el que podemos también hacer un bucle, cogiendo cada valor en cada vuelta en el parámetro i.

Ejemplo 3

class Numeric def mas(x) self.+(x) end def par? ((self/2)*2) ==
self end def impar? !par? end end n = 5.mas 6 # n ahora vale 11

n.par? # devolverá false n.impar? # devolverá true

Aquí vemos la posibilidad de redefinir el lenguaje. Aunque la manera normal de sumar dos números es mediante el operador "+", hemos añadido un método "mas" a la clase Numeric de donde descienden todos los números para poder sumarlos con esta otra sintaxis. Como vemos, en realidad el operador "+" es azucar sintáctico para el método ".+" de la clase Numeric. 
Pero más importante que redefinirlo, sin duda es poder extenderlo: vemos en el anterior ejemplo cómo podemos ampliar la clase Numeric con métodos que nos indiquen si el número es par o impar. 
Ruby es un lenguaje completo, maduro y estable con muchísimas más características como manejo de excepciones, recolector de basura, interacción con librerías externas, multithreading independientemente del sistema operativo, y es altamente portable (funciona en GNU/Linux, UNIX, Mac OS X, Windows 95/98/Me/NT/2000/XP/Vista, DOS, BeOS, OS/2). 
Para profundizar en el lenguaje Ruby, visita la web oficial de Ruby y echa un vistazo a la presentación que hizo Sergio Gil en la Conferencia Rails 2006, titulada Ruby Mola (y por qué).

No hay comentarios:

Publicar un comentario