Ruby on Rails no es sólo un lenguaje, es un conjunto de un lenguaje (Ruby) sobre el que trabaja un framework (Rails). En comparación con PHP, Ruby sería el lenguaje como lo es PHP, y Rails sería la arquitectura que se levanta encima como lo podría ser el framework Zend.
En qué se diferencian Ruby y PHP?
La diferencia principal es la potencia. Si PHP es un lenguaje procedural (basado en funciones) al que paulatinamente le han dado soporte y potencia con la orientación a objetos, Ruby ya es de por si un lenguaje dónde absolutamente todo es un objeto, con lo que las posibilidades son casi infinitas. Gracias a éso, aparece una nueva diferencia a nivel de concepto: en PHP lo usual es tener algo (un string, un integer, un objeto) que pasas a una función o método para que haga el trabajo y te devuelve el resultado (otro integer, otro string, otro objeto). El Ruby lo usual es que el propio objeto (porque todo es un objeto) lleve los métodos con los que trabajar.
Pero PHP ya tiene soporte de objetos!
Si, y no va nada mal cuando te acostumbras a usarlo. En Atrapalo usábamos un framework propio que hacía un uso intensivo de los objetos. En Privalia el framework usado era Zend y en muchos aspechos se optimizaba el uso de los objetos. Pero hay conceptos que el PHP no tiene, como los code blocks de Ruby (snippets de código que puedes adjuntar a un método) o redeclarar una clase para agregarle funcionalidad (éso en PHP produce un Fatal Error), de forma que puedes hacer que una clase abra a otra y le agregue un par de métodos nuevos.
No me estás diciendo nada nuevo
Hay dos tipos de programadores: los reacios a los cambios y los que les gusta aprender. Si eres uno de los reacios tranquilo, PHP seguirá evolucionando y tendrás mayores opciones con las que jugar. Siempre lo ha hecho. Si eres uno de los segundos encontrarás una potencia de lenguaje sorprendente con la que el concepto de aplicación la enfocas desde otros puntos de vista, como plugins a un core principal, módulos atómicos que se interrelacionan entre ellos…
Vale, quiero empezar con algo
Primero de todo debo decir las versiones que actualmente se están moviendo en RoR.
Versión de Ruby: 1.8.6 Versión de Rails: 2.1.1
Sería interesante que instalaras un entorno para las pruebas que quieras hacer mientras lees los manuales. La instalación básica es muy fácil. Todas las instalaciones de RoR que he hecho (incluso en mi eeePC) han sido usando este pequeño y efectivo tutorial: How to install Rails 2.1 on Ubuntu in 5 steps, aunque voy a poner las pasos rápidamente a continuación:
1.- Instalar ruby
sudo apt-get install ruby rdoc irb ruby1.8-dev rubygems libopenssl-ruby
2.- Actualizar el gestor de paquetes Gem a la última versión
sudo gem update –system
3.- Eliminar la versión antígua de Gem
sudo apt-get remove rubygems
4.- Creamos un enlace para que los programas que busquen el Gem eliminado ejecuten el Gem nuevo
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem
5.- Instalar Rails
sudo gem install rails
Además, lo suyo es ejecutar Ruby on Rails sobre MySQL, así que deberíamos instalar el servidor MySQL con la librería de Ruby correspondiente:
sudo apt-get install mysql-server libmysql-ruby
Una vez se tiene el entorno montado simplemente es cuestión de seguir algun manual. Qué manuales deberíamos seguir? Bueno, aquí la cosa depende de los gustos de cada uno. Voy a dar una lista de manuales que valdria la pena seguir.
* Pargmatic Bookshelf – Programming Ruby (2nd edition). Ideal para aprender el lenguaje Ruby. No se toca nada de Rails. Genial para coger base en el lenguaje
* The Rails Way. Enseña la forma de trabajade Rails, explicando las capas de abstracción que Rails usa.
* Rails for PHP developers. Genial libro dónde da por supuesto que sabemos programar en PHP, usando ésto para enseñarnos Rails. Se avanza muy rápido, y no sustituye los dos anteriores.
He puesto lo enlaces de Amazon para tener claro qué libros son, pero supongo que no tendréis problemas para encontrar sus versiones en PDF por internet
Qué otros recursos son interesantes?
* http://api.rubyonrails.org: Toda la API de Rails
* http://www.ruby-doc.org/: Documentación de Ruby
* http://railscasts.com/: Imprescindible para iniciarse en las best-practices
* http://buildingwebapps.com/site/home: Lleno de artículos, podcast interesantes
* http://www.ruby-forum.com/: Foro de Ruby
* http://www.railsenvy.com/: Podcast semanal, algo más avanzado
* http://www.caboo.se/: Buena calidad de artículos
Garcias a Xavier Arnaus Gil de http://www.syntaxerror.es por su colaboración.



