Shortly after I first met with computers in the early 80s, I became interested in programming languages. Since then, I have been a "language geek." I think the reason for this interest is that programming languages are ways to express human thought. They are fundamentally human-oriented.
Despite this fact, programming languages have tended to be rather machine-oriented. Many languages were designed for the convenience of the computer.
However, as computers become more powerful and cheaper, this situation has gradually changed. For example, look at structured programming. Machines do not care whether programs are structured well. They just execute them bit by bit. Structured programming is not for machines, but for humans. This is true of object-oriented programming as well.
The time for language design that focuses on humans has been coming.
In 1993, I was talking with my colleague about scripting languagesabout their power and future. I felt scripting to be the way future programming should be. It is human-oriented programming.
However, I was not satisfied with existing languages such as Perl and Python. I wanted a language that was more powerful than Perl and more object-oriented than Python. I couldn't find the ideal language, so I decided to make my own.
Ruby is not the simplest language, but the human soul is not simple at all in its natural state. It loves simplicity and complexity at the same time. It can't handle too many complex things, nor too many simple things. It's a matter of balance.
Therefore, to design Ruby, a human-oriented language, I followed the Principle of Least Surprise. I consider that everything that surprises me less is good. As a result, I've developed a very natural feeling, even a kind of joy, when programming in Ruby. Since the first release of Ruby in 1995, many programmers worldwide agreed with me about the joy of Ruby programming.
As always, I'd like to express my very greatest appreciation to the people in the Ruby community. They are the heart of Ruby's success.
I am also thankful to the author of this book, Hal E. Fulton, for declaring the Ruby Way to help people.
This book explains the philosophy behind Ruby, distilled from my brain and the Ruby community. I wonder how it was possible for Hal to read my mind to know and reveal the secret of the Ruby Way. I have never met him face to face, but I hope to meet him soon.
I hope this book and Ruby both serve to make your programming fun and happy.
Yukihiro "Matz" Matsumoto
September 2001, Japan