Ruby es un lenguaje con un balance cuidado. Su creador, Yukihiro “Matz” Matsumoto, mezcló partes de sus lenguajes favoritos (Perl, Smalltalk, Eiffel, Ada y Lisp) para formar un nuevo lenguaje que incorporara tanto la programación funcional como la imperativa.
A menudo ha manifestado que está “tratando de hacer que Ruby sea natural, no simple”, de una forma que se asemeje a la vida real.
Continuando sobre esto, agrega:
Ruby es simple en apariencia, pero complejo por dentro, como el cuerpo humano.
Acerca del crecimiento de Ruby
Desde su liberación pública en 1995, Ruby ha atraído devotos desarrolladores de todo el mundo. En el 2006, Ruby alcanzó reconocimiento masivo, formándose grupos de usuarios activos en las ciudades más importantes del mundo y llenando las capacidades de las conferencias relacionadas a Ruby.
Ruby-Talk, la lista de correo más importante sobre el lenguaje Ruby creció hasta lograr un promedio de 200 mensajes por día en el 2006. Se ha reducido en los últimos años a medida que el tamaño de la comunidad movió la discusión de una lista central a muchos grupos más pequeños.
El índice TIOBE, que mide el crecimiento de los lenguajes de programación, ubica a Ruby entre los diez mejore del ranking mundial. Gran parte del crecimiento se atribuye a la popularidad del software escrito en Ruby, particularmente el framework Ruby on Rails.
Ruby es totalmente libre. No sólo gratis, sino también libre para usarlo, copiarlo, modificarlo y distribuirlo.
Viendo todo como un objeto
Inicialmente, Matz buscó en otros lenguajes para encontrar la sintaxis ideal. Recordando su búsqueda, dijo, “quería un lenguaje que fuera más poderoso que Perl, y más orientado a objetos que Python2”.
En Ruby, todo es un objeto. Se le puede asignar propiedades y acciones a toda información y código. La programación orientada a objetos llama a las propiedades variables de instancia y las acciones son conocidas como métodos. La orientación a objetos pura de Ruby se suele demostrar con un simple código que aplica una acción a un número.
5.times { print "Nos *encanta* Ruby -- ¡es fuera de serie!" }
En muchos lenguajes, los números y otros tipos primitivos no son objetos. Ruby sigue la influencia del lenguaje Smalltalk pudiendo poner métodos y variables de instancia a todos sus tipos de datos. Esto facilita el uso de Ruby, porque las reglas que se aplican a los objetos son aplicables a todo Ruby.
La flexibilidad de Ruby
Ruby es considerado un lenguaje flexible, ya que permite a sus usuarios alterarlo libremente. Las partes esenciales de Ruby pueden ser quitadas o redefinidas a placer. Se puede agregar funcionalidad a partes ya existentes. Ruby intenta no restringir al desarrollador.
Por ejemplo, la suma se realiza con el operador suma (+
). Pero si prefieres usar la palabra sumar, puedes agregar un método llamado sumar
a la clase Numeric
que viene incorporada.
class Numeric
def sumar(x)
self.+(x)
end
end
y = 5.sumar 6
# ahora y vale 11
Los operadores de Ruby son simples conveniencias sintácticas para los métodos. Los puedes redefinir como y cuando quieras.