El 25 de diciembre, a manera quizás de regalo navideño, se ha liberado la versión 2.3.0 del lenguaje de programación Ruby, el cual introduce una serie de nuevas características, las cuales probablemente serán apreciadas por quienes usan este lenguaje. Cabe decir que Ruby es un lenguaje de programación interpretado, lo cual francamente me sigue pareciendo extraño, porque hoy en día se puede escribir un compilador para prácticamente cualquier lenguaje. Ruby es orientado a objetos y fue creado por el programador japonés Yukihiro “Matz” Matsumoto en 1993. La presentación oficial del lenguaje fue en 1995. Ruby tiene una sintaxis combinada entre Python y Perl pero también usa características de lenguajes como SmallTalk. Tiene cierta conexión con Lisp, Lua, Dylan y CLU.
El nombre de Ruby fue en realidad una broma de los amigos de Matsumoto, que aludiendo al lenguaje de programación “Perl” (perla), decidieron que este lenguaje debería llamarse “rubí”. Hay mucho trabajo en Ruby aunque en mi opinión, sigue siendo muy lento porque se interpreta. Hay quien ha querido llevar a Ruby a una plataforma de máquina virtual como en JRuby, en un interesante esfuerzo por llevar a Ruby a Java. También hay otra opción, Rubinius, un intérprete modelado en las máquinas virtuales de SmallTalk, que aunque parece un lenguaje poco usado, tiene una gran influencia en el desarrollo de los lenguajes de programación. Los programadores del proyecto Ruby, sin embargo, han apoyado la máquina virtual YARV, que se fusionó en el árbol de código fuente de Ruby el último día del año del 2006. A esta versión se le llamó Ruby 1.9.
El creador del lenguaje, Yukihiro “Matz” Matsumoto, dice que Ruby tiene como objetivos la productividad y la diversión del desarrollador, a partir de lo que vienen a ser los principios de una buena interface de usuario. Sostiene que el diseño de los sistemas debe enfatizarse en las necesidades humanas más que las de la máquina. Dice “Matz”: “A menudo la gente, especialmente los ingenieros en computación, se centran en las máquinas. Ellos piensan, Haciendo esto, la máquina funcionará más rápido. Haciendo esto, la máquina funcionará de manera más eficiente. Haciendo esto… Están centrados en las máquinas, pero en realidad necesitamos centrarnos en las personas, en cómo hacen programas o cómo manejan las aplicaciones en los ordenadores. Nosotros somos los jefes. Ellos son los esclavos”.
Ruby tiene algunos principios que llaman la atención, por ejemplo, el principio de la sorpresa menor, lo que significa que el lenguaje debe comportarse de manera que se minimice la confusión de los usuarios no experimentados. Es decir, en un fragmento de código, una mayoría de programadores de Ruby deberían poder saber qué es lo que se intenta ejecutar basándose en este principio minimalista. Sin embargo, no me queda claro cómo es que esto pueda implementarse. De hecho la frase en sí misma ha sido controversial, ya que los no iniciados pueden tomarla como que las características de Ruby intentan ser similares a las características de otros lenguajes conocidos. En mayo de 2005 en una discusión en el grupo de noticias comp.lang.ruby, Matz trató de distanciar Ruby de la mencionada filosofía, explicando que cualquier elección de diseño será sorprendente para alguien, y que él usa un estándar personal de evaluación de la sorpresa. Si ese estándar personal se mantiene consistente habrá pocas sorpresas para aquellos familiarizados con el estándar.
Las novedades en Ruby 2.3.0 no parecen, sin embargo, ser para el uso común del lenguaje. Da la impresión que muchas de estas nuevas ideas se han implementado para intentar ser más eficientes. Como sea, a quien le interese, puede ver la descripción de estas características, así como la forma de descargar Ruby, en las referencias.
Referencias: