I can’t learn a language for the sake of it. I need to have a concrete desire to do some- thing with it—to solve a problem or a task, to create something of value... That’s how
I got into Ruby around the summer of 2003. I wanted to build a Web application and decided this was the perfect opportunity to learn Ruby.
That Web application was Basecamp, which eventually served as the point of extraction for Rails.
Coming from PHP and Java, I remember how many of Ruby’s most wonderful features seemed odd at first. “What is it exactly that makes blocks so special?” I thought.
“They’re just convenience for writing a line of code at the beginning and the end.” Little did I know...
As I started using Ruby and extracting Rails, I quickly wised up. Ruby is such an incredibly rich and expressive language that it’s hard to appreciate its beauty by simply relating it to past experiences with other languages.
To create Basecamp, I needed to live and breathe Ruby. And when I did, I kept finding aspects of the language that were exactly what I needed for the situation at hand. Tasks that would have made my eyes roll in PHP or Java made my smile light up as Ruby time and time again showed that programming could be simple, fun, and outright beautiful.
As I was learning the language, I often consulted the ruby-talk mailing list. One voice in particular seemed to know Ruby well and appeared to have the ambition as well as the ability to help others understand it more fully. That voice belonged to David A. Black, the author of this book.