David Heinemeier Hansson is the creator of one of the hottest technologies amongst software developers these days: the Ruby on Rails Web framework.
Hailing from Denmark, Hansson is a partner at 37signals, a Chicago firm that develops tools for communications and collaboration. InfoWorld Editor at Large Paul Krill met with Hansson during the RailsConf 2007 event in Portland, Ore., last week, where Hansson expressed pride in how the community has latched onto Ruby on Rails. Development of Ruby on Rails 2.0, featuring REST (Representational State Transfer) is in progress. Hansson stressed Rails's emphasis on convention over configuration, suggested Microsoft is having battles internally regarding open source, and expressed doubts about whether Microsoft can win converts its new Silverlight technology.
When did you develop Ruby on Rails and why?
I started developing Ruby on Rails actually as part of the first Ruby project I did, which was Basecamp. The summer of 2003 was when I originally got into Ruby, and I had been doing PHP and some Java for about four or five years ahead of that. But I was getting fed up and tired with those environments and wanted to give something new a chance, so I stumbled over Ruby and started playing around with it. And within about a week of playing around with it, I knew there was no way I could go back to either PHP or Java or anything else I'd been doing before.
Why is that?
Ruby just felt like such a great fit for my mind. So many things that I was frustrated about in previous environments I'd worked with just seemed to be solved incredibly beautifully in Ruby. And that was really one of the first things that I noticed that I intensely liked about Ruby, it was the aesthetics of the language. Ruby code is just inherently beautiful. Sure, you can write ugly code, but you can write incredibly beautiful code too.
How did Rails come about?
It started out not wanting to be Rails. It started out just me wanting to implement Basecamp, this Web application for 37signals. And I started working on that, and Ruby at that time had some Web frameworks, but [they] weren't necessarily what I directly liked. I came into Ruby with a lot of preconceptions of what Web applications should be like and how they should be developed from all the work I'd been doing in PHP and Java. And I wanted to bring some of those ideas in. So I started working on a little bit to talk to the database, a little bit to run some templating language to get something in HTML displayed. And all of those small pieces started just getting built up more and more. And a few months into it, I realized that I now had a fairly sizable chunk of tooling that I'd built just for myself just to implement Basecamp in Ruby. Maybe I could actually share that. So around December 2003, I kind of got into the mode that, hey, I want to release this. I want to wrap this stuff up, these tools I'm doing, put it into a box and let others enjoy themselves with it. Because I was thinking, Ruby is kind of a hidden gem right now. And it's really a shame. There are so many Web developments out right now that are, in my mind, stuck in PHP or Java, which is what I was thinking about at the time. And if I could have so much fun as I was having with Ruby right now, it'd be a travesty if I just kept all that to myself. So around December of 2003, I made the decision to really make a framework out of it, but it wasn't until six months later that Rails was actually released for the first time. We released it I think June 24 of 2004, the release of Rails 0.5.
This is another weekend Ruby Conference. Why are developers so excited about Ruby and Ruby on Rails? You kind of elaborated on that a bit before.
Sure. I think a lot of developers are excited about Ruby on Rails because it allows them to focus and think about something as simple as the joy of programming. That's not just a side effect of working on real enterprise production systems, it's at the forefront of development [of] Ruby on Rails. We really want developers to be happy about the programs they're working on, the tools that they're working with, and the environment they're living in as programmers. And I think that [we are] explicitly choosing to make that the center of development of how we go about developing Rails, making sure that the aesthetics are just right. It's not the traditional computer science attributes we're trying to optimize for like memory usage or performance. We naturally care about those things because if it's not fast enough, it's not going to make us happy. But primarily, we care about getting beautiful code and getting a development environment where people are just happy about their work. And there are plenty of things in most traditional development environment that make people miserable. We tried to find those pain spots and remove them.