¿Que es Ruby on Rails? 
Ruby on Rails es un lenguaje de programación llamado Ruby y una framework llamada Rails para desarrollar aplicaciones web. El conjunto de ambos es el entorno de desarrollo que ha desarrollado 37signals y le ha desarrollado proyectos como Basecamp, Campfire, Backpack, WriteBoard y Ta-Dalist. Hasta aquí tenemos un lenguaje de desarrollo de alto nivel y una framework para desarrollo de aplicaciones web.
Ha sido creado por David Heinemeier Hansson y fue hecho público en el 2004. El 13 de diciembre de 2005 salió la versión 1.0 de Rails. Ruby va por la versión 1.8.4.
¿Que tiene de especial Ruby on Rails?
Este entorno ha sido desarrollado con el fin de que el programador dedique el máximo tiempo a pensar en la aplicación y el mínimo posible en pensar como hacer la programación. Dicho asi parece el Santo Grial de la programación. ¿ No?. Para aclarar esta idea imaginaros un entorno de programación en el cual nosotros definiésemos unas tablas de datos en una base de datos y después directamente le dijésemos que generase todo el mantenimiento de la aplicación. Es decir la vista de los datos, el mantenimiento para editar, añadir y borrar datos. Entonces en pocos segundos tuviésemos el esqueleto de la aplicación funcionando y sólo nos quedase ir completándola ( añadir la lógica) sin haber tenido que pensar en como programarla. Además imaginaros que decidimos añadir dos campos nuevos en la base de datos y después trans generar la aplicación nos aparecen los nuevos campos en el mantenimiento y consulta. ¿ Parece impresionante?
¿Cual es la filosofía de los creadores?
La idea de los creadores es que el programador ha de ser ágil creando aplicaciones y que tiene que ser capaz de concentrarse en la aplicación. Con poca cantidad de código tiene que presentar la aplicación a sus clientes y luego ir trabajando con ellos para ir mejorándola. Y en cualquier caso las futuras modificaciones que pida el cliente no han de representar un esfuerzo importante ya que el entorno está pensado para reflejar de forma fácil los nuevos cambios.
Los creadores han realizado este entorno para cumplir con las necesidades que ellos han creído y solo esas. Es un entorno práctico, pensado para obtener resultados y tiene las funcionalidades necesarias que ellos han determinado. Por tanto en comparación con otros entornos quizás encontremos a faltar otras cosas como el uso de procedimientos almacenados de las bases de datos.
La filosofía de desarrollo está basada en AgileManifesto
- Individuales e interacciones frente a procesos y herramientas
- Software que funciona sobre documentación comprensiva
- Colaboración con clientes frente negociación de contratos
- Respondiendo al cambio frente siguiendo un plan
Os recomiendo que leais una entrevista a David Heinemeier que le hicierón recientemente para entender con sus palabras la filosofía.

¿Es cierto esto que estoy explicando?
Independientemente que yo lo he verificado siguiendo diferentes ejemplos que hay, verlo vosotros mismos en los videos que hay en la página de RubyonRails.
¿Cómo puedo probarlo?¿me costará caro?
Para probarlo simplemente hay que descargar el software desde la RubyonRails, servidor apache (aunque se puede hacer funcionar con IIS) y una base de datos ( Mysql es la recomendada aunque soporta otras) e instalarlo todo. De todas formas existe InstantRails que te instala todo en un momento y te permite empezar rápidamente. Yo he utilizado esta última opción y funciona a la primera.
Y contestando a la segunda pregunta es gratis, se debe utilizar bajo licencia MIT.
¿Una vez instalado?
Una vez instalado podréis seguir los ejemplos que hay y con pocas líneas de código empezaréis a hace ejemplos de una forma fácil. Existe mucha documentación e incluso ya existen libros especializados. De todas formas no quiero que saqueis una idea equivocada y aunque sea sencillo el seguir los primeros ejemplos. Como
cualquier lenguaje de programación tendréis que aprender poco a poco y sumergiros en él. No se cual es la curva de aprendizaje, acabo de empezar, pero entiendo que no debe ser muy complicada y sobre todo si tienes algún proyecto que te persiga. Es importante tener buenos conocimiento en HTML, CSS, etc…
De todas formas hay dos libros muy buenos que recomiendo que os compreis:
- Agile Web development with Rails
- Rails Recipes
¿Puedo desarrollar proyectos en serio?
Escribo por lo que he visto y he leído en la documentación, pero entiendo que si ya que soporta el servidor Apache, lighthttpd y FastCGI con alta escalabilidad. Además ya hay hosting externos (FreeonRails) para este entorno y al final lo que más cuenta son los proyectos que ya mencionaba al principio del artículo. Además han desarrollado un proyecto llamado SwitchTower para distribución de aplicaciones.
¿Es multiplataforma?
Efectivamente es multiplataforma, tanto Windows, Linux y OSX.
¿Existe algún entorno de desarrollo específico?
Para windows existe Radrails que está basado en eclipse. Tras las pruebas que he realizado es un correcto editor de ficheros (no completa automáticamente el código) , pero aún no he conseguido que funcione la parte de ejecución de comandos y la ejecución del servidor ( con esto no quiero decir que no funcione) . De todas formas es muy sencillo si lo haces con InstantRails. Aunque sea para la edición de ficheros os recomiendo utilizarlo.
¿Cuales son las principales características de RubyonRails desde un punto de vista técnico?
- Es multiplataforma
- Ruby es un lenguaje de alto nivel
- Tiene una arquitectura MVC ( Modelo - Vista - Controlador). Que lo hace muy estructurado y hace que el desarrollo sea muy productivo
- Dispone de Ruby Gems que permite una fácil instalación, añadir nuevos módulos y actualización del software
- Actualmente está en la versión 1.0
- Integra la base de datos en el modelo de la aplicación
- Incluye soporte para web services, AJAX, una unidad de prueba de aplicaciones
- Soporta la definición de diferentes entornos desarrollo, pruebas y producción
- Las aplicaciones siguen siendo mantenibles mientras crecen
- Dispone de generadores de código que automatizan el desarrollo de los esqueletos de la aplicación permitiendote crear la lógica de la aplicación
- La configuración de la aplicación está preparametrizada, siempre puedes cambiarla si quieres otras opciones, pero esto te da facilidad en el desarrollo
- No usa XML
- Soporte para migración de datos y versiones de modelos
- Rails es Ágil ( Ágil manifesto)
- Soporta DB2, MySql, Oracle, Postgres, SQL Server y SQL lite. También soporta ADO
- Está en constante evolución, con infinidad de módulos
Conclusión
Para todos aquellos que en algún momento esteis programando os recomiendo que perdais una tarde probándolo. A partir de aquí sacar vuestras conclusiones y al menos probaréis una cosa nueva y diferente. Podéis encontrar mucha información en la web y ejemplos funcionando. Creo que RubyonRails promete y es un planteamiento muy diferente a Java, .Net, PHP y otros. Aún ha de evolucionar, pero estoy seguro que lo hará en el sentido más práctico ya que sus creadores han demostrado que lo son.
Me gustaría intercambiar experiencias con gente que hayan entrado en el mundo de RubyonRails, dejarme algún mensaje o comentario
Enlaces de interés
RubyonRails www.rubyonrails.com
Forums RubyonRails www.rubyonrailsforum.com
RubyonRails en Wikipedia en.wikipedia.org/wiki/Ruby_on_rails
InstantRails instantrails.rubyforge.org/wiki/wiki.pl?Instant_Rails
Apache www.apache.org
MySQL www.mysql.org
RadRails www.radrails.org
37Signals www.37signals.com
LoudThinking( blog creador) www.loudthinking.com
Actualización( 21/2/2006) : He corregido el uso del termino lenguaje en algunos párrafos ya que en realidad ruby es el lenguaje, Rails el framework y todo hace un Entorno. Daba a confusión.
.
RubyonRails,Programming