An Interview with a Ruby Pioneer
Interviewed by Michael Swaine
A legend in the Ruby community shares his recollections and insights and hopes, from the early days of Ruby enthusiasts to the future of Ruby on silicon and Ruby for phones.
Chad Fowler cut his programming teeth on a Commodore 64 as a kid making blobs of color fly around the screen with ridiculous text and awful “music.” Years later, he has come to realize that this describes his ideal project.
Well, that’s his story. Those whose lives have been enriched by encountering Chad are more likely to emphasize his talents as a teacher (in courses from Pragmatic Studio with Dave Thomas, as author of several excellent books, or for his many lectures and conference keynotes), as a much sought-after consultant (whose consulting work takes him to many countries every year), as a skilled software developer (he’s presently CTO of InfoEther and formerly software developer or manager for some of the world’s largest corporations), or as a generous contributor to the Ruby community (who organizes RubyConf and co-created RubyGems). Or possibly for his earlier career playing saxophone in Memphis bars.
Chad’s generosity was obvious to us when a few simple questions from us led him to share his rich memories and deep insights about Ruby, the most exciting programming language to come on the scene in a generation. Here’s Chad.
Ms: When and how did you first encounter Ruby?
Cf: Around the turn of the century (I love that I can say that now) I had a habit of spending my Saturday mornings learning a new programming language. It was my rapid, shallow version of Dave and Andy’s suggestion in The Pragmatic Programmer to learn a new language every year. I would typically download the runtime or compiler of a new language, read some documents, and try to write a useful program in the new language on the same day.
Sometimes the languages were mainstream ones I’d just never played with. Sometimes they were completely esoteric obfuscated languages such as Befunge, Ook or Malbolge. Every once in a while I’d spend time looking at a spoken language like Lojban or other so called “conlangs.” Whatever the case, I was always looking for something that would make me think differently or able to express myself in a way I hadn’t considered.
At the same time, I was going through the decision-making process of what programming language to more fully dedicate myself to. I had been using Java for several years by then and had gone pretty deep with it including a fair amount of mucking about with the JVM itself, compiling my own little non-Java-language programs into JVM byte code. I had finally reached the stage where I felt I had learned about as much as I could from Java, and though I mostly loved it, it was time to broaden my horizons.
As an aside, when I got started in the IT industry as a young musician looking for side work, I was lucky enough to find a mentor to guide me through the process. I was focused on system administration at the time, and he gave me some magic advice which I’m convinced is the seed that made my career what it is today. He told me to learn three technologies, all very different from each other which would make me think differently from each other and also open up a new set of marketable skills that would look good as a set on my resume. This worked so well for me early on it was as if I had literally been given the recipe for successful career starts.