Para empezar mis posts, me parece importante hablar sobre el lenguaje de programación que actualmente privilegio: Ruby.

Una breve historia

Le primera versión de Ruby fue publicada en 1995, por Yukihiro Matsumoto (llamado “Matz” en la comunidad), en la comunidad de programación japonesa. La primera versión estable (1.2), apareció en 1998. En ese tiempo, Ruby todavía era solamente en japonés.

En 2001, el primer libro en inglés sobre Ruby fue publicado: Programming Ruby, de Dave Thomas (apodado “The Pickaxe”, “El Pico” en español). Eso permitió hacer que Ruby sea mucho más accesible a mucha más gente.

En 2005, Ruby se volvió muy popular, gracias al framework web Ruby on Rails, que hasta ahora es el programa más importante en Ruby. Ruby on Rails revolucionó muchos aspectos del desarrollo web (usando mucho, por ejemplo, la noción de “convención sobre configuración”). Haré una presentación de Ruby on Rails en un futuro post.

Actualmente, Ruby es uno de los lenguajes de programación más usados en el mundo.

El lenguaje

Ruby es un lenguaje dinámico, interpretado y débilmente tipado. Por eso, pertenece a la misma familia que Python, PHP y Javascript. De hecho Ruby es muy parecido a Python. Pienso hacer otro post sobre las diferencias entre esos dos lenguajes.

Ruby tiene muchas raíces en el lenguaje de programación Perl y también en el lenguaje Smalltalk (en los cuales fueron desarrollados los principios de la programación orientada a objetos).

Para crear una clase Person, que puede decir algo, es tan sencillo como:

class Person
  def say(sentence)
    puts sentence
  end
end

joe = Person.new
joe.say('hi man!')

Ruby, al contrario de Python, es un lenguaje muy enfocado a la programación orientada a objetos. De hecho en Ruby, todo es un objeto.

irb(main):001:0> nil.class
=> NilClass
irb(main):002:0> 1.class
=> Fixnum
irb(main):003:0> 1.2.class
=> Float
irb(main):004:0> "something".class
=> String

La sintaxis es bastante intuitiva y permite programar de una manera que parece más natural, más cercana a un lenguaje humano. Por eso tiene como singularidad que en muchos casos los paréntesis son opcionales.

roberto.says('hi')

es equivalente a

roberto.says 'hi'

Pero no te preocupes, si te molesta esta forma, ¡puedes seguir poniendo los paréntesis!

Por su naturaleza, Ruby es bastante sencillo de entender y de empezar a usar.

La filosofía

Una de las particularidades más interesantes de Ruby, es que fue diseñado por Matz para la felicidad del programador. Es decir que el enfoque no fue en la rapidez de ejecución del lenguaje o en la facilidad de uso, sino de ser el “mejor amigo” del programador. Esto hace que programar en Ruby sea un verdadero placer.

Ruby da al programador toda la libertad que ese puede necesitar. De hecho, eso es una espada de doble filo, porque con mucha libertad viene mucha responsabilidad. Es decir, que alguien puede hacer cosas muy raras en Ruby (particularmente usando metaprogramación) que pueden resultar complicadas de mantener.

También hay un enfoque importante sobre las pruebas y las metodologías ágiles dentro de la comunidad, por el hecho que la programación en Ruby permite ser muy veloz (porque es un lenguaje de muy alto nivel).

El soporte

Ruby es muy fácil de usar en Linux. También viene preinstalado en OSX desde 2007 y muchos desarrolladores Ruby usan Macs.

Windows también es soportado, aunque como para muchos lenguajes de programación, sea un poco más complicado de configurar.

La comunidad

Ruby tiene una comunidad muy importante, con mucho compromiso en el open-source. Por esta razón, existen un montón de librerías Ruby (llamadas gems) que puedes usar, sin tener que reinventar el agua tibia. Puedes ver la lista de las gems disponibles en RubyGems.

Como Ruby es bastante usado, puedes encontrar muchos recursos en linea y tutoriales gratuitos.

También la comunidad es famosa por ser muy amigable y abierta.

Conclusión

Eso fue una presentación rápida del lenguaje Ruby. Por todas las razones que expliqué anteriormente, hice de Ruby mi lenguaje de programación principal, con el cual hago mi desarrollo web (con Ruby on Rails), pero también lo uso para hacer varios scripts para ayudarme a automatizar cosas repetitivas.

¡Espero que este artículo te haya dado ganas de aprender este muy lindo lenguaje! Si fue así, puedes seguir el curso de Ruby en CodeCademy que es totalmente gratuito.

Si tienes cualquier pregunta, ¡déjame un comentario y te ayudaré!

Referencias