You are on page 1of 8

para programadores Ruby on Rails: nos gusta porque est de moda o porque lo vale?

Ruby on Rails: una moda?


Carolina Garca Catao

En estos momentos uno de los entornos de programacin web sobre el que ms se habla es Ruby on Rails. Existe la controversia tpica de cuando sale algo nuevo: ser mejor o peor que lo ya existe (PHP, Python, J2EE)?, ser una moda, o realmente aportar una serie de caractersticas novedosas?

n este artculo intentaremos ver y entender qu es Ruby on Rails, pero tambin analizar en qu sentido se est comparando con otros lenguajes o entornos para tener elementos de decisin y ver si Ruby on Rails ser una tecnologa que nos interese usar. Ruby on Rails, de ahora en adelante RoR, es un entorno de programacin web desarrollado en Ruby por David Heinemeier Hansson, como resultado del desarrollo de Basecamp (un software para la gestin de proyectos va web, basado en un interfaz sencillo, claro, fcil de usar, sin complicaciones). La primera versin de RoR sali a la luz pblica en julio de 2004, con lo cual es evidente que RoR es muy reciente, de ah las suspicacias que crea y la necesidad de analizar y hacer compara raciones de su utilidad En estos momentos, el desarrollo web y el mundo entorno a l est cambiando rpidamente, una serie de nuevos elementos estn incorporndose a la concepcin de la web, conceptos como web 2.0, empiezan a estar en la mente de todos, la interactividad entre el usuario y la web, la creacin de redes sociales que permitan que los

propios usuarios vayan construyendo la web y asociado a todo ello estn una serie de tecnologas Que van irrumpiendo con fuerza, XHTML, XML, AJAX, RSS, metodologas giles, entornos de programacin para lenguajes ya extendidos como PHP, JSP, ASP, entre medias aparece Ruby on Rails y por otra parte cada vez es ms relevante el uso de los numerosos estndares establecidos por el Consorcio de la W3C. Para entender qu es RoR, primero tenemos que conocer un poco en qu se apoya. RoR est programado en Ruby, un lenguaje de script, multiplataforma, que fue creado en 1995 por el japons Yukihiro Matsumoto (Matz). Es un lenguaje orientado a objetos y es software libre; hereda ciertas caractersticas de otros lenguajes como Perl, Smalltalk, Eiffel, Ada y Lisp y como dice el propio autor es un lenguaje aparentemente sencillo pero internamente complejo. Es un lenguaje muy intuitivo casi a un nivel de lenguaje humano. Ruby fue diseado para un desarrollo rpido y sencillo. Cada da este lenguaje va ganando ms adeptos, tanto as que la empresa Sun Microsystems, est apoyando un proyecto llamado Jruby que es un interprete de Ruby escrito 100% en Java. Entre las caractersticas del lenguaje se encuentran:

58

linux@software.com.pl

Linux+ 3/2007

para programadores Ruby on Rails: nos gusta porque est de moda o porque lo vale?
La sintaxis es simple y consistente, Todo es un objeto, Posibilidad de hacer llamadas directamente al sistema operativo, Muy potente para el manejo de cadenas y expresiones regulares, No se necesita declarar las variables, Gestin de memoria automtica. res con intencin de facilitar el desarrollo, pero eso no implica que dichas convenciones no se puedan redefinir y cada quien pueda configurarlo de otra forma y a su medida. Ruby on Rails implementa una serie de patrones de diseo que se denominan, ModelView-Controller (MVC de aqu en adelante) y ActiveRecord Veamos en qu consiste la arquitectura MVC de Rails. El modelo (Model) consiste en una serie de clases que representan las tablas de las bases de datos relacionales o RDBMS (Relational Database Manager System). La vista (View) es la visualizacin de los datos que manejan desde las clases de los controller, generalmente esto consiste en tener una cantidad mnima de cdigo entremezclado con el html. En el MVC, los clases de los controller responden a la interaccin del usuario y a la lgica de la aplicacin, que a su vez maneja los datos del modelo y que se visualizan a travs de la vista. En las aplicaciones web basadas en MVC, los mtodos de los Controller se inician a travs del navegador web. En Rails tambin existe lo que se llama scaffolding, que facilita mucho la vida del programador, y que consiste en la construccin automtica de todo el cdigo necesario de la lgica y de las vistas que se necesitan para realizar las operaciones ms frecuentes, como son crear nuevas entradas, leer entradas ya existentes, modificarlas y borrarlas (en ingls corresponder a CRUD). AJAX no es una tecnologa, sino la unin de varias tecnologas que juntas pueden lograr cosas realmente impresionantes. AJAX, en resumen, es el acrnimo para Asynchronous JavaScript + XML y el concepto es: Cargar y renderizar una pgina, luego mantenerse en esa pgina mientras scripts y rutinas van al servidor buscando, en segundo plano, los datos que son usados para actualizar la pgina solo re-renderizando la pgina y mostrando u ocultando porciones de la misma. La intencin de todo esto es que la web tenga un comportamiento ms receptivo o sensible a la hora de gestionar pequeas cantidades de informacin, de esta manera la pgina web no tiene que recargarse por completo cada vez que el usuario hace un cambio. Por lo tanto aumenta la posibilidad de interactividad de la web, la velocidad y la usabilidad.

Una vez vistas las bases de Ruby, veamos cuales son las pautas que sigue RoR para el desarrollo web. Los dos principios principales son, primero \u201cDRY-Don't repeat yourself o No te repitas\u201d y en segundo lugar \u201cConvenciones antes que configuracin\ u201d.

Primer principio

DRY significa que las definiciones slo deberan ser hechas una vez. Como Ruby on Rails es un entorno de programacin, las componentes estn integradas de manera que ciertos \u201cpuentes\u201d entre ellas no necesitan hacerse manualmente, por ejemplo, si tienes un formulario en tu web, con slo una lnea de cdigo puedes llamarlo las veces que quieras y desde donde quieras, suena bien no? Otro ejemplo, en cada tabla en la base de datos de tu aplicacin, puedes manipular los registros de dicha tabla como si fueran un objeto y sus campos como si fueran un atributo, sin necesidad de declarar nada, todo gracias al Active Record (uno de los elementos ms llamativos de RoR y que veremos ms adelante.

El hecho de que se genere HTML de manera local en el navegador a travs de cdigo JavaScript permite que se mejore notablemente lo que se denomina la experiencia de usuario, la informacin puede mostrarse parcialmente segn el usuario la demande, evitando as que el exceso de informacin convierta la web en algo confuso y poco usable. Sin embargo, AJAX tambin presenta algunos problemas o retos para los desarrolladores de aplicaciones web que quieran realizar una web que cumpla las normas de accesibilidad establecidas por WAI (Web Accessibility Initiative-Iniciativa para la AcceUso de AJAX sibilidad Web). Por ejemplo, las pginas web Segundo principio AJAX parece ser la palabra de moda en el creadas dinmicamente no quedan regisNos dice \u201cConvenciones antes que mundo del desarrollo de aplicaciones Web, tradas en el historial del navegador, por lo Configuracin\u201d, esto quiere decir, que el programador slo tiene que definir la configuracin de aquello que no sea convencional. En muchas ocasiones siempre definimos las cosas de la misma manera, hacemos las mismas configuraciones, con lo cual tendemos a repetir ciertos pasos cada vez, con lo cual estableciendo una serie de convenciones se logra ahorrar mucho tiempo porque el propio entorno de programacin por defecto genera ciertos elementos y ciertas configuraciones. Por ejemplo, si en nuestra aplicacin web tenemos una clase que sea Post en el modelo, entonces gracias a las convenciones sabemos que en la base de datos existe una tabla que se llama posts, as nos ahorramos escribir un montn de cdigo a la hora de desarrollar una aplicacin. Las convenciones existentes en Rails han sido definidas por el grupo de desarrollado- Figura 1. Sitio oficial de Rails en espaol

www.lpmagazine.org

59

para programadores Ruby on Rails: nos gusta porque est de moda o porque lo vale?
tanto si el usuario pulsa en el botn de Atrs de su navegador posiblemente no pueda acceder a los datos que tena en la pantalla que haba visualizado previamente. Ajax utiliza javascript, y esto significa tambin que la aplicacin web no funcione en la siguiente versin del navegador y necesite actualizacin. Desde hace tiempo se ha demostrado que basar mucho un desarrollo web en el uso de javascript es poco fiable y difcil de mantener sobre todo teniendo en cuenta que Microsoft no cumple la compatibilidad de javascript en Internet Explorer. Rails tiene un modelo consistente y simple de implementar las operaciones con Ajax. Una vez el navegador ha renderizado y mostrado la pgina inicial, la interactividad del usuario hace que se muestre una pgina nueva o que desencadene una accin en Ajax, esto es: Se produce una accin por parte del usuario, esto es, pulsar en un botn, cambiar los datos, de un campo en un formulario, o una accin que sea peridica basada en un temporizador. La informacin asociada con la accin se enva de forma asncrona al handler en el servidor va XMLHttpRequest, El handler del lado del servidor ejecuta una accin basada en la informacin y devuelve un fragmento de HTML, El JavaScript en el lado cliente (que Rails ha creado automticamente) recibe el fragmento de cdigo HTML y lo utiliza para actualizar una parte especfica de la pgina HTML en la que se encuentra el usuario, generalmente ser el contenido de una etiqueta <div>.

La existencia de GEMS

Para hacernos an ms fcil la vida, existen las RubyGems que es un sistema de empaquetar en Ruby. Un gem es un aplicacin o librera de Ruby empaquetada, tiene un nombre (por ejemplo rake) y una versin (por ejemplo 0.4.16). La existencia de gems permite que: Exista una forma estndar de distribuir los programas y libreras de Ruby, Tener una herramienta que permite el fcil manejo e instalacin de los paquetes de gems, Un servidor de gems que permite disponer de las gems desde cualquier mquina donde RubyGems est instalado.

La informacin obtenida de la ejecucin del comando sera (la hemos reducido considerablemente), ver Listado 1.

Instalacin de una gem


Si ejecutamos:
gem install --remote progressbar # shortcut: gem i -r progressbar

la gem progressbar se instalar en el ordenador. Vase que no es necesario especificar la versin, pero si se desea se puede hacer. Por defecto se instalar la ltima versin disponible. Por lo tanto si queremos instalar una versin especfica, haramos:

Las gems se gestionan desde cada ordenador gem ins -r progressbar-0.0.3 utilizando el comando gem. Se pueden instalar, eliminar, buscar (entre otras posibilidades) pa- o quetes de gems mediante el comando gem. RubyGems es el nombre del proyecto que ha desarrollado el sistema de empaquetado de gems y el comando gem. Se puede obtener RubyGems en el repositorio de RubyForge (http://rubyforge.org/projects/rubygems). Veamos cmo utilizar el comando gems para obtener distinto tipo de informacin.
gem ins -r progressbar --version '> 0.0.1'

Desinstalando una gem


Si queremos desinstalar una gem, tan slo tenemos que escribir lo siguiente.
gem uninstall progressbar Successfully uninstalled progressbar version 0.0.3

Listado de las gems disponibles


Si ejecutamos:
gem query --remote gem q -R # atajo:

Listado de todas las gems instaladas:


gem query --local

entonces obtendremos un listado de todas # atajo: 'gem q -L' las gems que se encuentren en el servidor remoto. Instalando Ruby on Rails Para la instalacin de Ruby on Rails, podemos hacerlo de dos formas, manualmente haciendo uso de las gems, como hemos visto en el apartado anterior, o bien usando otras herramientas especficas para cada sistema operativo:

Para usuarios de Debian o Ubuntu


Primero tenemos que instalar Ruby sudo aptget install ruby irb rdoc Luego instalamos las gems, descargando un fichero de http://rubyforge.org/frs/?group_ id=126&release_id=5803 y descomprimindolo en nuestro ordenador (ver Figura 2).
tar zxvf rubygems-0.9.0.tgz

luego vamos al directorio creado Figura 2. Rubyforge.org, sitio de proyectos open source en Ruby
cd rubygems-0.9.0

60

Linux+ 3/2007

para programadores Ruby on Rails: nos gusta porque est de moda o porque lo vale?
y ejecutamos:
ruby setup.rb all

Los archivos debern ser descargados en ruby script/server un slo directorio y los comandos ejecutados en ese directorio. Creamos un controlador
gem install rake-0.7.1.gem gem install activesupport-1.3.1 gem install activerecord-1.14.4.gem gem install actionpack-1.12.5.gem ruby script/generate controller test

Ahora instalamos Rails:


gem install rails includedependencies

Para poder empezar con Rails vamos a necesitar un servidor web, por defecto instala Webrick. Para ponerlo en marcha, tenemos que ejecutar:
script/server -d -p 3000

Y necesitaremos una base de datos como MySQL, que tendremos que tener instalada adems de alguna librera extra como libmysql-ruby (para el caso de MySQL, pero se podra usar otra bases de datos cmo PostreSQL)

Vers que se crean una serie de directorios y ficheros, entre ellos tienes que encontrar gem install actionmailer-1.2.5.gem directorio_trabajo_rails/ejemplo/app/controllers/ gem install actionwebservice-1.1.6.gem test_controller.rb. gem install rails-1.1.6.gem Al controlador vamos a agregar un mtodo index: Muy bien hasta aqu ya debemos tener instalado Ruby y Rails satisfactoriamente. class TestController < Ahora que menos que escribir un clsico ActionController::Base con Rails, cmo escribir hola mundo en nuesdef index tro navegador con Rails. end En primer lugar tendremos que crear end nuestro proyecto rails con Una vez hecho esto, crearemos la vista para rails MiProyecto esta accin que acabamos de crear, en directorio_trabajo_rails/ejemplo/app/views/test crea un archivo llamado index.rhtml y dentro escribimos el texto Mundo Hola desde RoR!, lo grabas y si accedes desde el navegador a http://localhost:3000/test/ vers tu primera incursin en Rails. Digamos que te controlador test es el controlador principal de tu aplicacin, lo ideal es que los usuarios entren a tu pgina a travs de simplemente escribiendo tudominio.com, ruby script/server y no teniendo que escribir tudominio.com/ test , para lograr esto editemos directorio_tray si todo ha ido bien, accediendo a http: bajo_rails/ejemplo/config/routes.rb: descomenta//localhost:3000 veremos una pagina de bien- mos la lnea venida de Rails. De momento nuestra aplicacin no hace # map.connect '', :controller => nada, as que vamos a crear un controlador "welcome" quedara as: con map.connect '', :controller => "test": este comando crea toda la estructura de ficheros y directorios necesarios. Ahora para comprobar que nuestra instalacin es correcta ponemos en marcha el servidor web que viene con Ruby, Webrick, en la lnea de comandos, desde dentro del directorio del proyecto que acabamos de crear, escribimos:

Para usuarios de Mac Os X


En el sistema Mac OsX existe una herramienta muy sencilla que permite la instalacin y facilita el desarrollo en Rails, se denomina Locomotive (http://locomotive.raaum.org/) Locomotive est disponible como binario universal, tanto para arquitectura de PowerPC como Intel (como requisito tiene que ser Mac OS X 10.3 o posterior) . Ser necesario tener instalado las herramientas Xcode para poder usar las rubygems y compilar cdigo nativo.Por defecto, el servidor web ser lighttpd con FastCGI y la base de datos que usar ser SQLite, pero tambin se puede enganchar a MySQL y PostgreSQL. Se puede instalar manualmente tambin siguiendo las instrucciones que aparencen en:
+info http://hivelogic.com/articles/ 2005/12/01/ruby_rails_lighttpd_mysql_ tiger

Para usuarios de Windows


En Windows podemos echar mano de Instant Rails (http://instantrails.rubyforge.org/wiki/ wiki.pl) , que contiene Ruby, Rails, Apache y Mysql, todo preconfigurado y listo para usar. Tendrs que descargar un fichero zip, descomprimirlo en un directorio, y en dicho directorio ejecutar InstantRails.exe. Instant Rails detectar preguntar si quieres actualizar las rutas en todos los ficheros de configuracin...pulsa sobre el si. Para una instalacin manual debemos descargarnos cada uno de los mdulos: Figura 3. Loudthinking, blog personal del desarrollador de Rails David Heinemeier Hansson

www.lpmagazine.org

61

para programadores Ruby on Rails: nos gusta porque est de moda o porque lo vale?
Y como nos indican unas lneas arriba, debemos borrar el archivo directorio_trabajo_rails/ ejemplo/public/index.html y ahora si se podra acceder a travs de http://localhost:3000/. Lo ms comn es hacer aplicaciones que accedan a una base de datos y hagan operaciones (insertar, actualizar, borrar) en la misma. Una forma sencilla de hacer esto es con lo que en rails se denomina scaffolding. Primero creamos en la base de datos una tabla que se llame recetas, por ejemplo, si queremos hacer una base de datos de recetas. Configuramos el acceso desde rails en el fichero database/config.yml y ahora tenemos dos opciones, crear el modelo y el controlador Receta:
ruby script/generate model Receta ruby script/generate controller Receta

Listado 1. Gems en servidor remoto


activerecord (0.8.4, 0.8.3, 0.8.2, 0.8.1, 0.8.0, 0.7.6, 0.7.5) BlueCloth (0.0.4, 0.0.3, 0.0.2) Implements the ActiveRecord pattern for ORM.

BlueCloth is a Ruby implementation of Markdown, a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML). captcha (0.1.2) Ruby/CAPTCHA is an implementation of the 'Completely Automated Public Turing Test to Tell Computers and Humans Apart'. cardinal (0.0.4) Ruby to Parrot compiler. cgikit (1.1.0) CGIKit is a componented-oriented web application framework like Apple Computers WebObjects. This

y en el fichero del controlador poner:


class RecetaController < ActionController::Base scaffold :receta end

framework services Model-View-Controller architecture programming by components based on a HTML file, a definition file and a Ruby source. Si queremos buscar gems en el servidor remoto para posteriormente poder instalarlas, lo haramos de la siguiente forma: gem query --remote --name-matches doom # atajo: gem q -R -n doom Se obtiene como resultado lo siguiente:

De esta forma se generan dinmicamente todos *** GEMS EN SERVIDOR REMOTO*** los mtodos necesarios para aadir, modificar ruby-doom (0.8, 0.0.7) y borrar recetas en nuestra base de datos. Esta Ruby-DOOM provides a scripting API for creating DOOM forma puede servir para aplicaciones muy senmaps. It also provides higher-level APIs to make map cillas en las que no necesitemos nada ms. creation easier. Otra opcin es usar un generador que crea todos los ficheros con el cdigo de la dades, sencillez, simplicidad, elegancia, pero lento o en genrico los lenguajes interpretados opcin anterior: tambin nos encontramos ante ciertos peros, son lentos. que son los que en muchas ocasiones frenan Ante eso, encontramos como respuesta ruby script/generate scaffold Receta a los desarrolladores a usar Rails, veamos si en el blog de DHH, www.loudthinking.com, realmente son peros consistentes. algo que es parte de la propia filosofa de De esta forma podemos tomar este cdigo coRails, no se busca un lenguaje o entorno de mo base y modificarlo para adaptarlo a nues- Rendimiento y escalabilidad programacin que sirva para todas las situatra aplicacin. Generalmente uno de los problemas que se ciones, no hay que reinventar la rueda, sino Hasta ahora, estamos viendo que en Rails asocian a Rails es el rendimiento y la escala- saber en qu momento qu herramientas hay la mayor parte de las cosas son ventajas, facili- bilidad, por un lado, se dice porque Ruby es que usar, Rails est orientado a desarrollo web, si en algn momento la aplicacin tiene un cuello de botella, quiz la forma de eviRails J2EE tarlo sea usando otro lenguaje (C, C++, Java) que haga determinada tarea de forma ptima, puede que parezca hacer trampa, pero es una Tomcat Servlet Container Container Webrick forma que casos especficos en los que el rendimiento pueda ser peor no determinan el ActionServlet DispatchServlet M-V-C desarrollo general de una aplicacin web.
ActionController
RHML Persistence Database
Action ActionForm JSP

Performance

Active Record
MySQL

Hibernate
MySQL

Figura 4. Tabla comparativa de Rails y J2EE

Definitivamente, una debilidad de Ruby poco conocida (o poco publicitada), es su baja performance en velocidades de ejecucin. Los benchmarks en diversos equipos y con distintas rutinas sealan a Ruby como un lenguaje lento, en comparacin con PHP4, y ms

62

Linux+ 3/2007

para programadores Ruby on Rails: nos gusta porque est de moda o porque lo vale?
Por otro lado, el concepto de Rails como Framework MVC + ActiveRecord, ideal para el desarrollo gil de sitios Web 2.0, seguramente no es la panacea universal ni la solucin definitiva, ya que podemos encontrar otras posibles soluciones en otros lenguajes: Cake (PHP). Anteriormente citado, Django (Python), Trails (Java).

Estos funcionan tan bien o inclusive mejor que RoR, dependiendo del sistema con el que estamos lidiando.

Flexibilidad vs. Organizacin

En muchos casos se oye decir a desarrolladores web que RoR est ms organizado y es ms estructurado mientras que PHP es ms flexible.

Figura 5. Amazon apuesta por Rails en su sitio unspun.amazon.org lento aun en comparacin a PHP5. Como PHP es un lenguaje de script, extrecontrapartida, posee una excelente gestin de madamente liberal, no lo ata con ninguna memoria, superior a las 2 versiones de PHP tecnologa extra y su forma de uso est ms en el mercado actual. basado en la programacin estructurada, influencia del lenguaje C. Sin embargo RoR Comparando Rails con PHP es un entorno de programacin basado en Cuando aparece alguna novedad siempre Ruby, siendo Ruby un lenguaje orientado a hay tendencia a hacer comparaciones, cuan- objetos 100%. do en muchos casos tampoco tiene mucho La mejora del modelo de OOP en PHP5 sentido hacerlas. ha trado aparejado el surgimiento de un En el caso de establecer una comparacin nmero importante de entornos de prograentre PHP y RoR, se parte de un error de base, macin (Cake, PRADO, Symfony, etc.) que se no son comparables, podramos hacer una van agregando al lote del Zend Framework, comparacin entre peras y manzanas? Por aunque ninguno logra imponerse fuertemenqu se genera esta falsa comparacin? te sobre el resto.
P U B L I C I D A D

Tanto Ruby como PHP son lenguajes de scripting con propsito similar. La organizacin que le dota Rails a Ruby bien se la puede entregar cualquier Framework a PHP, como ser algunos de los citados anteriormente.

Comparando Rails con Django

Django es uno de los entornos de programacin ms competente para el desarrollo web en Python. Es destacable en primer lugar porque est altamente reconocido por parte de los programadores de Python y en segundo lugar es un entorno de programacin de nueva generacin que no necesita copiar Ruby on Rails. Django y Rails aspiran a resolver un tipo de problemas similares, de una manera similar, usando una arquitectura similar. En

64

Linux+ 3/2007

para programadores Ruby on Rails: nos gusta porque est de moda o porque lo vale?
IBM ha aadido Ruby on Rails a la lista de entornos de programacin para DB2, entre los cuales tambin se incluyen Java, .Net y PHP. Odeo, es un portal de podcasting con millones de visitas. La coctelera, ha desarrollado The Shaker, una herramienta para la publicacin y administracin de contenidos en Internet, es un servidor de blogs, que se caracteriza por su sencillez, facilidad de uso y usabilidad.

Conclusin

Figura 6. La coctelera, servidor de blogs en espaol desarrollado en Rails por The-Cocktail la actualidad no parece que haya especiales ventajas tcnicas en cambiar de entorno de programacin para un grupo desarrollador de Django a Rails y viceversa. Para los desarrolladores que no se encuentran utilizando ninguno de los dos entornos de programacin para la implementacin web, pero que sin embargo utilizan Python o Ruby, pues lo lgico es que los primeros se beneficien de Django y los segundos de Rails, aprovechando los conocimientos adquiridos que tiene en los respectivos lenguajes de script. Para desarrolladores que no conozcan ninguno de los dos lenguajes pues la eleccin depender del tipo de entorno de desarrollo y del tipo de aplicacin. cdigo en tiempo de ejecucin. Generalmente Rails se basa en proyectos individuales, y la aplicacin puede definir componentes homogneos. En cambio, en J2EE la tendencia es desarrollar los mejores componentes de manera independiente uno de otro, y se utiliza XML para la configuracin y unin de los distintos componentes.

Hemos visto de una manera rpida, las principales caractersticas de Ruby on Rails, las ventajas que tiene, la agilidad, facilidad de desarrollo, es un lenguaje cuya lectura es accesible a primera vista, est pensado para potenciar la usabilidad en las aplicaciones. Tambin hemos visto alguno de los puntos flacos de los que se acusa a Rails, como es el rendimiento, aunque se podra decir que en estos momentos la inversin de personal de desarrollo es mayor que la

Comparando Rails con J2EE

Uno de los debates ms acalorados a la hora de comparar Rails con otros entornos de programacin ya existentes, es el que existe entre Rails y J2EE. Si observamos la figura a continuacin, veremos que son pocas las diferencias reales entre los elementos que componen una aplicacin web. ambos tiene un contenedor en el que el cdigo de la aplicacin se ejecutar, un entorno MVC que facilita la separacin entre el modelo, la vista y el controlador y la existencia de un mecanismo que permite que los datos sean persistentes Por lo tanto posiblemente no sea tanto la parte tcnica lo que diferencia ambos entornos de programacin sino la filosofa que siguen los desarrolladores de cada uno de los entornos, mientras Rails prefiere tener cdigo explcito en lugar de ficheros de configuracin, el hecho de que Ruby sea un lenguaje ms gil y permite generar con

inversin en hardware, con lo cual habra que evaluar realmente qu necesita la aplicacin que tengamos entre manos. Sin embargo, desde la experiencia de Dabne como empresa que desarrolla en Rails, slo hemos visto ventajas, la existencia de conveciones ahorran tiempo, evita reprogramacin de cierto cdigo, el scaffolding permite poder poner en marcha una aplicacin de manera rpida, para emplear Grandes y no tan el tiempo en las partes ms especficas de la grandes usan Rails aplicacin, adems existe una comunidad de En muchas ocasiones se seala a Rails como rails muy activa, lo cual siempre es una buena una apuesta vana, con escasa trascendencia forma de aterrizar en algo nuevo. porque no est siendo utilizado como entorno de programacin en sitio grandes, con gran cantidad de trfico. Sin embargo hemos de En la red tener en cuenta que Rails apenas ha sido publico hace poco ms de 3 aos, lo cual puede ser Sitio oficial de Rails en espaol: una razn para pensar que la implementacin rubyonrails.org.es/. de sitios web no es automtica, an as si mi- Lista de correo de rails en espaol: ramos con detalle, veremos que son mltiples http://lists.simplelogica.net/mailman/ las apuestas por el uso de Rails en empresas listinfo/ror-es. grandes y desde luego en las no tan grandes. Blogs: Veamos algunos ejemplos de donde se http://www.lacoctelera.com/railes, est utilizando Rails, sin incluir a las plataforhttp://www.shinkitune.com/blogonrails/, mas creadas por los propios creadores de RoR http://sobrerailes.com/. (37 signals o Basecamp): Fuentes: Amazon usa Rails en Amazon Unspun, http://rubyforge.org/, ejemplo de aplicacin de la web 2.0 donde http://rubygems.org/. la intencin es llegar a consensos colectivos sobre cualquier tipo de tema, dando la posibilidad a los usuarios de crear listas y sobre la temtica elegida poder establecer un consen- Sobre la autora so de si es bueno, malo, divertido, etc. Carolina Garca Catao es socia de la Leopard, la nueva versin del sistema empresa Dabne-Tecnologas de la inforoperativo Mac OsX incluir por defecto, el macin. Podis escribirle a carolina.garci entorno de programacin de aplicaciones a@dabne.net. web de Ruby On Rails.

www.lpmagazine.org

65

You might also like