Take a true object-oriented language, such as Smalltalk. Drop the
unfamiliar syntax and move to more conventional, file-based source
code. Now add in a good measure of the flexibility and convenience of
languages such as Python and Perl.
You end up with Ruby.
OO aficionados will find much to like in Ruby: things such as
pure object orientation
(everything's an object), metaclasses, closures, iterators,
and ubiquitous heterogeneous collections. Smalltalk users will feel
right at home (and C++ and Java users will feel jealous).
At the same time, Perl and Python wizards will find many of their
favorite features: full regular expression support, tight
integration with the underlying operating system, convenient
shortcuts, and dynamic evaluation.
Ruby is easy to learn. Everyday tasks are simple to code, and
once you've done them, they are easy to maintain and grow. Apparently
difficult things often turn out not to have been difficult after all.
Ruby follows the
Principle of Least Surprise---things work the
way you would expect them to, with very few special cases or
exceptions. And that really
does make a difference when you're
programming.
We call Ruby a
transparent language.
By that we mean that Ruby
doesn't obscure the solutions you write behind lots of syntax and the
need to churn out reams of support code just to get simple things done.
With Ruby you write programs close to the problem domain. Rather than
constantly mapping your ideas and designs down to the pedestrian level
of most languages, with Ruby you'll find you can express them
directly and express them elegantly. This means you code faster. It
also means your programs stay readable and maintainable.
Using Ruby, we are constantly amazed at how much code we can write in
one sitting, code that works the first time. There are very few
syntax errors, no type violations, and far fewer bugs than usual. This
makes sense: there's less to get wrong. No bothersome semicolons to
type mechanically at the end of each line. No troublesome type
declarations to keep in sync (especially in separate files). No
unnecessary words just to keep the compiler happy. No error-prone
framework code.
So why learn Ruby? Because we think it will help you program
better. It will help you to focus on the problem at hand, with
fewer distractions. It will make your life easier.