EvaluandoRuby
Escrito por Martin Fowler
Traducido por Rafael Vacas
Revisado por Jorge Ferrer
Si estás leyendo esto, asumo que estás enterado de que ha habido una gran agitación entorno al lenguaje de programación Ruby y en particular de Rails, el framework para el desarrollo de aplicaciones Web. Algunos lo ven como el futuro de la programación, otros como una diversión peligrosa.
Empecé con Ruby hace algunos años. Los
Programadores Pragmáticos lograron captar mi atención y pronto se convirtió en mi lenguaje de script preferido. Con el tiempo he llegado a usarlo en gran parte de la producción de este sitio Web, en particular de este bliki. Me encanta este lenguaje.
Hay que distinguir entre mi gusto personal y si es algo que deban utilizar nuestros clientes. Podemos determinar su conveniencia en función de las características de los proyectos de estos clientes – y esto nos lleva a muchos argumentos sobre los pros y contras de la definición dinámica de tipos, convención sobre configuración, procesos versus threads (hilos) y otros. Tales discusiones son útiles, pero sigo siendo cauteloso con ellas. Hay demasiados asuntos que son difíciles de juzgar de esta forma y al final acabamos desperdiciando el tiempo en proyectos que son ralentizados por usar una tecnología que sonaba bien durante un partido de golf. Yo prefiero realizar estos juicios basándome en la experiencia – encontrar gente con experiencia exitosa en proyectos y que hayan usado Ruby.
Podemos encontrarnos con casos así en algunos escritores conocidos. Ruby ha atraído a mucha gente con buena experiencia en otros lenguajes pero que sienten que Ruby les da una visión adicional, nombres como los dos Prag, Justin Gethland, Bruce Tate, David Geary y otros, deberían ser suficientes para hacer de Ruby algo digno de observar. Pero yo soy muy casero y he acercado mí oído a los trabajadores de ThoughtWorks: personas cuya historia conozco y cuyos proyectos me son más fáciles de verificar.
Aún es pronto, pero ahora tengo un puñado de experiencias en proyectos sobre los que hablar. Cuando pregunto “¿crees que eres significativamente más productivo con Ruby que con Java/C#?” siempre obtengo un rotundo Sí. Para mi esto es suficiente para empezar a decir que en proyectos adecuados deberías echarle un vistazo a Ruby. Lo cual, por supuesto, sólo deja abierta la cuestión de qué se entiende por ‘adecuado’.
Algo a mencionar es que aunque tenemos un par de proyectos que podríamos llamar típicos proyectos Web que encajan con lo que actualmente se asume como territorio de Rails, hay elementos que son diferentes:
• Un kiosco donde los consumidores manipulan directamente la pantalla táctil. Rails está presente aquí ya que la interfaz de usuario es un entorno Web muy basado en Ajax. Pero hay también comunicación con dispositivos hardware, cifrado, temas de red – todo en un dispositivo con Linux.
• Un buen número de sentencias SQL en procesos secuenciales (batch) donde Ruby se usa para especificar cuales son necesarias, y donde las expresiones resultantes se convierten a SQL para realizar el verdadero trabajo. Hay un poco de Rails en el frontal – pero de nuevo no se trata de la típica aplicación Rails.
• Un proyecto que parece una aplicación Web en muchos aspectos, pero que implica bastante trabajo de ofuscación de datos en diferentes formatos y la generación de gráficos y organigramas llamativos (usando Ploticus)
En todos estos casos, los implicados aseguraron haber obtenido la funcionalidad, y el valor, mucho más rápido que en otras plataformas. Esto me sugiere que si estás buscando rapidez y productividad en la entrega deberías echar un serio vistazo a Ruby.
Todavía quedan algunos temas abiertos. En particular es pronto aún para ver que pasa en las etapas posteriores donde se aplican mejoras, sobre todo cuando hay cambios en el equipo. Hay gente que piensa que la naturaleza dinámica de Ruby y la falta de herramientas será un problema, otros que la simplicidad que Ruby propone compensará la diferencia. Tal es la naturaleza de la cuestión que no podemos realmente decir nada aún – os pondré al día cuando descubra más.
Cedric Brust argumenta eficazmente que aún siendo Ruby una plataforma superior no llegará a ser de uso corriente. Ciertamente entiendo la argumentación, como muchos ex-smalltalkers conozco desde hace tiempo varias plataformas mucho más efectivas de las que usamos actualmente en los entornos empresariales Si es importante para ti trabajar con plataformas con una elevada adopción, deberías esperar a ver que pasa. Son muchos por supuesto a los que no les importa no seguir la corriente.
También hay muchos proyectos donde la productividad del desarrollo se hunde por factores políticos y otros de comunicación. En estos casos la ventaja de Ruby se vería perceptiblemente atenuada.
Pero sobre todo soy cada vez más positivo con respecto a usar Ruby en trabajos serios donde la rapidez, buena respuesta y productividad son importantes.
Artículo Original

