Ruby is a new language, developed by Yukihiro Matsumoto in 1993, as a simple, very object oriented, interpreted language, influenced by Perl, Python, Lisp. For some years Ruby remained a Japanese only product, developed on Japanese newsgroups and mailing lists. Only in 1999 an English mailing list on Ruby appeared, and only in 2000 the first English book on Ruby was printed; this greatly limited the diffusion of the language, which deserved a wider audience, but, for some time, was known only in Japan. Around 2005, the diffusion of the web framework "Rails" gave new emphasis to the diffusion of Ruby.

In many aspects Ruby is different from every other programming language I have ever used; it is an interpreted language, as Python, and has many similarities with Python: harray, hashes, metaprogramming, a polymorphic structure. Many things work in a similar way, but the underline philosophy is very different: Pyhton wants to be simple, with a clear structure, few lexical constructs, each thing being done in only one way (and eventually the correct one); the core is simple and most is in additional modules. Ruby instead gives to the programmer the maximum flexibility; there are many ways to do the same thing, there is an exasperation of the object oriented paradigm, and every possible feature is fitted into the language. Ruby is a very interesting language, but it is not easy.

Ruby versions
Version 0.95 1995
Version 1.0 1996
Version 1.2 1998
Version 1.4 1999
Version 1.6 2000
Version 1.8 2003
Version 1.9 2007
Version 2.0 2013
Version 2.1 2013

Version 1.8 was accepted as an ISO and JIS standard, but version 1.9 is not backward compatible with version 1.8; version 2 also has minor incompatibilities with version 1.9. Version 2 introduced a better interpreter (YARV). There are also just-in-time Ruby compilers, and Jruby, which produces a Java bytecode.


There are many books on Ruby, but most are limited the version 1.8 of the language, new editions being planned for 2014-2015. The evolution of Ruby is fast, and with version 1.9 many things changed, so you have to look for books covering at leas version 1.9. Some books have been translated in Italian, but I suggest to avoid the Italian translations of books on computer science. Often the quality of the translation is bad; it's clearly done by non-programmers: with a wrong choice of Italian technical terms, and errors, so some topics are difficult to understand. Some good books are:

The official web site for the language is:

Documentation can be found also on:

A bit dated Ruby guide is in: