David Heinemeier Hansson created the Ruby on Rails software framework and is a partner in 37signals, producers of the popular Basecamp suite of online collaboration tools. He has been profiled in leading publications such as Wired and Business 2.0. He’s the recipient of the “hacker of the year” award by both Google and O’Reilly Media.
I recently spoke with Heinemeier Hansson. We discussed Ruby on Rails, web development, and the state of ecommerce.
Kerry Murdock: Our listeners are ecommerce owners and managers; most are not developers. Could you describe Ruby on Rails?
David Heinemeier Hansson: Ruby on Rails is actually two parts. The first part is Ruby, a programming language similar to Java or what have you. The Rails part, which I’m involved in, is the stuff that sits on top of it. It makes Ruby suitable for web application development. It is similar to other frameworks, such as .net, that sit on top of languages and make them easier for us.
For Ruby and Rails, the target is pretty much any web application. We have many people using Ruby on Rails to build their own ecommerce shops or add ecommerce elements to their assisting applications.
Ruby on Rails makes it a lot easier and faster for anybody who wants to make a web application.
Murdock: Our site, Practicalecommerce.com, is a Rails application. Our chief architect, Brian Getting, is an enthusiastic proponent of your framework. Could you tell us some major sites that use Rails?
Heinemeier Hansson: Two of the big ones are Yellowpages.com and Twitter, which is sometimes a blessing and a curse to bring up since they’ve [Twitter] had many problems unrelated to Rails. In the ecommerce space, there’s a cool site called Shopify, which is an ecommerce engine built on top of Ruby on Rails, where somebody, without knowing programming, can build their own ecommerce shop.
Murdock: Software frameworks, as I understand it, reduce the development time of rolling out applications. Is that true?
Heinemeier Hansson: Yes, I definitely think so. I created Ruby on Rails, in part, because I wasn’t getting stuff done fast enough. Ruby on Rails was created for the first product we made at 37signals, called Basecamp. I was the sole developer. I had 10 hours per week to work on the application, and I was going to school on the side. I needed something that was just intensely productive. I wasn’t finding that in the traditional environment of C#, Java, PHP, and so forth.
What makes Rails and other similar frameworks so effective is they round up a lot of the commonalities that everybody goes through when they create a new application. For example, all the drudgery of connecting to the database, mapping it to objects, and so forth. These are common elements that all applications need.
With Ruby on Rails in particular, we have popularized the notion of convention over configuration. Before Rails, most frameworks and environments assumed that everybody was starting from scratch, from a blank slate, and they had to configure every part of the framework from scratch to fit their applications.
I noticed that everybody seemed to be doing the same thing over and over again. They all seemed to be putting roughly the same pieces of configuration inline, or they were all tweaking pieces of configurations that didn’t matter. An example is what we call the primary key in a database. That’s just a decision that has no bearing on the end application. So, why bother spending and wasting time on figuring out what that should be? Instead, in Rails we’ve chosen to go with what we call conventions.
So, there are a whole lot of decisions that have been made upfront about how a web application should work. It eliminates having to repeat the same choices over and over. That massively speeds up development time.
Murdock: How much time does it save? You mentioned Basecamp, the application you developed.
Heinemeier Hansson: It hard to generalize. People have claimed anything from 50 percent faster to 10-times faster. It depends on the environment. If you are working in Java, what framework are you using? Are you working at PHP? What are your tools and techniques? It’s pretty much impossible to generalize.
For me, if it hadn’t been for Ruby on Rails, I probably wouldn’t have done Basecamp. It wouldn’t have been feasible to build an application with just 10 hours per week, by myself. I spent about four or five months at roughly 10 hours per week doing it. We launched Basecamp in February of 2004.
Murdock: I’ve known lots of developers. Your framework, Ruby on Rails, affects web developers in almost an emotional way. A developer recently told me that your framework changed his life. How do you respond to that?
Heinemeier Hansson: Why are programmers more passionate about Ruby on Rails than the other environments? I think it’s because Ruby and Rails are passionate about programmers. Ruby is a language that was created with one core mission: to make programmers happy. That’s the mission of Mats [Yukihiro Matsumoto], the Japanese fellow who created Ruby. That is such a powerful mission statement for a language.
I tried to do the same thing with Rails — bring the notion of making a programmer happy from Ruby and into Rails. And, it really resonates with programmers.
We care a great deal about the aesthetics of the framework. That is something that programmers appreciate. Once they’ve worked in Ruby on Rails, it’s usually very hard for them to go back to languages and environments that are not optimized for this. They are not optimized for beautiful code and all of these other things that they’ve tried in the Rails world. Developers respond with a lot of affection for the language and for the framework.
Murdock: Our audience is ecommerce merchants, by and large. What do you think of the state of ecommerce?
Heinemeier Hansson: It’s a lot better than it used to be. I buy pretty much everything I can online. I see that the trend from sites such as Shopify that makes it easy for people to put up a very convincing shop. It’s helping things even further.
We see a change from when we launched Basecamp four years ago. It wasn’t that long ago when customers would ask if it was safe to enter a credit card. Today that’s a non-issue. We don’t get any support requests saying, “Oh, I don’t trust your site for putting my credit card.” So, it definitely seems like things have moved forward in a positive way.
Murdock: Do you have a favorite ecommerce site?
Heinemeier Hansson: I like Zappos a lot. And, it’s not so much because of the site, but because of the organization, and the emphasis on customer service. One of the great ecommerce experiences I have had over the past year was ordering my first pair of shoes through Zappos, choosing normal delivery, and then getting an email two hours later saying, “We’ve upgraded your delivery to next day. You’re going to have it in the morning.” I almost didn’t believe it.
I have also found that there are a ton of shops that are selling through Amazon but aren’t Amazon themselves. Like clothing stores, and so forth. I’m also discovering them on Google.
Murdock: You’re from Denmark. You now live in Chicago. Tell us about your interest in web development.
Heinemeier Hansson: It started back in the late ’90s when I was working as a gaming journalist. I was reviewing computer games, console games, and so forth. I needed a website for that. So, I started learning a bit of HTML and coding on my own.
As time went on, I wasn’t happy with just a static site. I wanted a site with community features, and auto-updating — all of these things. To get that, I pretty much had to learn programming. It wasn’t something I was looking to do.
That’s how I got interested in web development. I started learning PHP and so on. I built my site for myself. As time went on, I started appreciating the process of creating a web application more than writing a game review site. So, I switched dreams and picked up programming.
Murdock: Anything else on your mind, David?
Heinemeier Hansson: If there’s someone out there who is thinking about using Ruby on Rails but is unsure of it, I say, “Try it for one day.” The great thing about Ruby on Rails is that every single part is free. And you can actually make something useful in a single day. On the Ruby on Rails work site, we have a video showing how you can make a very simple blogging system in 15 minutes.
So I strongly encourage people who are either programmers or work with a programming team to use it. Give it a try. See if you like it.
It’s at 37signals.com. We post to our blog a whole lot about small businesses. It’s all very much applicable to ecommerce sites. We also address how we run our team, how we do four-day workweeks and stuff like that.