En respuesta a este post de David Siñuela , me decido yo también a plantearme las cuestiones que se pregunta. Trataré de ser lo más objetivo que pueda, pero de antemano aviso que con Rails me resulta muy difícil ser imparcial ;-)
¿Es Rails lo que hemos leido en tantos sitios?
No solo eso, sino que es más. Normalmente en las demos y tutoriales que hay por ahí se pone todo el énfasis en el scaffolding, y el desarrollo ágil de una aplicación en cuestión de minutos. Esto, con ser importante, me parece que es sólo la antesala de lo que viene después: el soporte de migraciones en la BD (¡mi favorito!), el soporte de pruebas unitarias, etc. Cuando investigas un poco mas, descubres que Rails soporta la mejor libreria en Javascript para AJAX (Script.aculo.us), el soporte de congelación de las gems para aislarte de cambios inesperados en un alojamiento compartido…
¿Es escalable? ¿Es util para las empresas?
Ignoro la respuesta, porque mis proyectos no dejan de ser pequeños juguetes, pero hay webs relativamente populares cuya trastienda es una aplicación Rails. En el peor de los casos, si no es escalable, lo será.
¿Que ventajas ofrece respecto a PHP?
En PHP no existe un framework MVC bien definido, porque PHP sería el equivalente a Ruby: un lenguaje de programación (más orientado, eso sí, a la web que Ruby) Sobre Ruby vive Rails, que proporciona todo lo necesario para la separación en capas de nuestra aplicación. Sobre PHP viven… bueno, han surgido muchos frameworks, pero cuando lo comprobé hace algo mas de un año el mas prometedor era PHPMVC (sé que ahora existen otros). Esta diversidad de frameworks en PHP, que no tiene por qué ser perniciosa en sí, dificulta mucho el aprendizaje por parte de un recién llegado, que no sabe de entrada que librería le interesa más y se encuentra con muchos proyectos que carecen de la madurez de Rails. Esto es vital para conseguir echar a andar una comunidad.
Comparando cada lenguaje, tengo la impresión de que Ruby es bastante más elegante como lenguaje orientado a objetos que PHP y su sintaxis más azucarada, si bien esto no deja de ser cuestión de gustos. Una de las sorpresas que uno se lleva cuando va programando cositas en Rails es lo escueto del codigo. Realmente uno escribe poco código. ¿Por qué? Es el lema de Rails: «Convención sobre configuración». Así, si sigues cierta convención al asignar nombres a las columnas de tu base de datos, ActiveRecord hará su trabajo y las clases asociadas podrán acceder inteligentemente a esas columnas con metodos perfectamente legibles. Y esto, en ultima instancia, es posible gracias a la dinamicidad de Ruby.
Como inconvenientes frente a PHP, pocos alojamientos dan soporte de Rails mientras que casi todos soportan, unos mejor que otros, PHP. El soporte de Apache no es muy allá (casi todo elmundo prefiere lighttpd), así que si te vas a un alojamiento compartido tendrás que lidiar con su particular configuracón de FastCGI.
¿Rails tiene futuro?
Sí. Comparando otra vez con PHP: recuerdo cuando PHP se llamaba PHP/FI y PHP significaba “Pretty Home Page”. Recuerdo cuando uno tenía que compilarse PHP en su maquina y PHP se ejecutaba como CGI… de eso hace unos ocho años, si no recuerdo mal. Ahora PHP es el rey de Internet (lo que por aquel entonces era Perl) y me da la sensacion de que Rails está ahora en el mismo estado embrionario en que estaba PHP.
Creo, sinceramente, que Rails sustituirá a PHP como uno de los lenguajes universales de la web (con permiso de Java y .NET) No quiero decir, por supuesto, que PHP desaparecerá, simplemente quedará jugando un papel menos relevante.
¿Los cambios en Rails? ¿Son importantes?
Esta es, sin duda, la mayor pega de Rails. Aunque la aparición de las revisiones 1.0 y 1.1 ha ayudado mucho, Rails es un moving target todavía y es difícil para un recién llegado estar más o menos al día de los últimos desarrollos. Por desgracia, la lista de correo de usuarios de Rails en inglés ha bajado mucho el ratio señal/ruido, de forma que resultan mucho más interesantes las opciones de suscribirse a la lista en castellano o seguir la evolución del desarrollo visitando las bitácoras dedicadas al tema. Son muy importantes para esto los agregadores como RubyCorner y PlanetaRails Y esta bitácora, claro =)
¿Personalmente, para qué me sirve, aunque nunca lo vayas a usar profesionalmente (de momento)?
No descarto trabajar en un futuro profesionalmente con Rails, aunque ahora mi trabajo consiste en desarrollar software en C++ con CORBA y Oracle. De momento me está sirviendo para refrescar mis conocimientos de desarrollo web: a través Rails me he familiarizado con AJAX y me he esforzado en aprender algo de diseño basado en estándares con CSS. Asi que, básicamente, me sirve como un campo de entrenamiento y reciclaje profesional. Ah, y es tremendamente divertido. Normalmente te planteas algún problema, y alguien más listo que tú lo ha resuelto ya, con lo que obtienes resultados visibles en muy muy poco tiempo.
Por último, Rails me ha hecho adoptar Ruby como lenguaje de cabecera para el desarrrollo de pequeños scripts de masticamiento de datos (sustituyendo al viejo y fiable Perl.


May 4th, 2006 at 06:56 PM Rails me parece una propuesta interesante (más "natural" y flexible) en comparación a algunos frameworks que he visto en PHP, pero por el momento no me sirve para lo que ando haciendo (trabajo con .net), talvez en un futuro lo haga.
May 6th, 2006 at 02:26 AM Se te ha olvidado comentar la productividad que se gana derivada del hecho de que todo es "mas inteligente" e intuitivo. A mi RoR como plataforma me parece que me ayuda, no me pone trabas como otras :)
May 12th, 2006 at 04:38 PM Para mi Rails da para mucho mas. De hecho estoy migrando un proyecto de .net a Rails. Luego comentare en http://blogs.onrails.com.ar Cuenten con migo para lo que necesiten de mi o del sitio. Saludos desde Buenos Aires Argentina http://onrails.com.ar
May 15th, 2006 at 10:42 AM Pueden consultar una entrevista a un colega Argentino que utiliza Rails en forma productiva. http://blogs.onrails.com.ar/pages/llinterview Saludos a todos desde Sud America