David Heinemeier Hansson was a 23-year-old student at Copenhagen Business School when he began work on Ruby on Rails a little over four years ago. His goal was to write a simple Web application framework that would free developers from the misery of repetitive coding that he sees as inherent in widely used platforms like Java and .Net.
By most accounts he succeeded. His open-source framework earned him the Google-O'Reilly Best Hacker award in 2005 and is now being backed by the likes of IBM and Sun and a small army of Web hosting and consulting companies. He says the platform is being downloaded about 10,000 times a week from the main Rails repository, only one of many sources.
Its rise hasn't been without hiccups. Some users have complained that Ruby on Rails doesn't scale well for the most demanding applications, although the Rails development community has developed plug-ins to fix the problems. There have also been calls for standardization to prevent splintering in the Ruby language.
But the buzz around the platform continues to grow. Heinemeier Hansson, who now lives in Chicago and works for collaboration tools company 37signals, will be in Berlin in two weeks for Europe's second Ruby on Rails user conference. He spoke with IDG News Service about what to expect at the show and what the future holds for Ruby on Rails.
IDGNS: What can we expect at the conference in Berlin in September?
DHH: This will be the second Ruby on Rails conference in Europe. The shows in Europe tend to be a bit smaller than in the U.S. Last year in London we had about 400 people; this year I'm expecting double that number in Berlin. There will be a number of new tools announced. CodeGear, the Borland company, is going to announce its Ruby on Rails IDE. It's been in beta for some time, and they're going to use the show to launch that. Sun is always very involved with the whole JRuby initiative, they've made a good number of strides, and they'll probably be talking about the latest in Rails running on JRuby. And I know IBM has been maintaining their DB2 adapter for Rails.
IDGNS: Will we hear about any updates to Rails itself?
DHH: The next big release is Rails 2.0, I'm going to discuss that in some form in my keynote speech. Currently the goal is to consolidate and sharpen what we already have. The big push we've been making is for RESTful services. In many ways it was an option before, a choice, and there was a little bit of insecurity for some developers about whether something like WS* SOAP would be the way the wind would blow in terms of Web services. We've decided now that we're going to pursue this from the assumption that people want to be RESTful.
We're also going to pull out a fair number of elements, features that aren't a good fit for what people want to do most of the time. So a number of elements will move out and be plug-ins. If your application absolutely depends on them you won't be stranded, you'll be able to get the plug-ins easily. So Action Web Service, for example, the Rails answer to how to do SOAP, that whole service will no longer be bundled with Rails. If you need to do a SOAP Web Service it will be easy to install it again. We're saying if there's any doubt whether to use REST or SOAP, use REST.
IDGNS: So removing elements is to keep Rails simple and lightweight?
DHH: Yes. We don't believe that just because at one point back in the day we included an experiment, or chose to do an API, that it's going to stay for ever. We don't want to turn into Java, this pack rat that just keeps hold of any possession. We're not afraid to take out stuff that's not relevant or we plain don't like. That's important to keeping it a light and friendly framework.
IDGNS: Do you have an updated release date for 2.0?
DHH: I might be giving one, it depends how things shape out. We've maintained that we hope to complete it this year. This is an open-source project founded on desires to get things done, things wax and wane, so we don't have a traditional road map, and we definitely don't try to pin down shipping dates.
IDGNS: Some people have said we should have a standard implementation of Ruby to prevent splintering. What do you think?
DHH: There's definitely talk about making Ruby a specification that can be implemented in JRuby or IronRuby (a version of JRuby for Microsoft .Net), I know there are some people who are moving along in that aspect, and that would be nice. None of them impact me on a day-to-day basis. I'm happy with the implementation of Ruby done by Matz [Ruby creator Yukihiro "Matz" Matsumoto]. The JRubys and IronPythons are niches; that's not what's being used by the majority of Rails users.
IDGNS: But enterprises are interested in JRuby because they can use Rails on their existing Java servers....
DHH: JRuby is a great way to open the conversation with enterprises by saying, You don't have to throw out all this "junk" you've accumulated over the years, Ruby is just an incremental piece you can put in. But in some ways, it's sugar coating to get people to really come on board. It's a bridge for getting from one place to another.
The majority of Ruby on Rails users out there are people who go straight to Ruby on Rails, they don't have junk in the trunk. And they are still by far the highest number of users. The enterprise is a fairly newcomer.
IDGNS: So what's Rails being used for mostly today?
DHH: The vast majority is Web applications, that spans public Web sites, some for Web 2.0-ish applications, some e-commerce solutions, we're building collaboration tools. Any application that's a good fit for delivering through a browser is a good fit for Ruby on Rails, from the shaded gradients of Web 2.0 to mortgage processing applications for detecting credit ratings.
IDGNS: Where would you like to see it really succeed? What's your dream for Ruby on Rails?
DHH: My dream is that people adopt it on its own merits. We're not trying to bend Ruby on Rails to fit the enterprise, we're encouraging enterprises to bend to Ruby on Rails. Come if you like it, stay away if you don't. We're not going head over heels to accommodate the enterprise or to lure them away from Java. That's how you end up with Java, if you start bending to special interest groups.
We'll continue to add techniques and technologies that work for us, and it's great if it works for other people too, but Rails is very much an egotistical brainwork for me. I care about designing for me and producing a framework that works great for me, and that's the only constituent I have in mind when I develop it.
IDGNS: You remind me a bit of Linus Torvalds talking about Linux 10 years ago.
DHH: It's almost impossibly hard to design things for other people. You build it for yourself, that's what you have to do, and then you'll create something you like and you really want to use, and then other people will like it too.
There's no way to co-opt and infiltrate us because we don't have commercial pressures. I couldn't care less whether a corporation or a business adopts Rails or not. I'm building Rails for me, so there's not a lot of pressure they can apply. They can't say, add this functionality and we'll get a thousand extra customers for you. That won't work. They're going to have to win arguments on technical merits.
IDGNS: How would you characterize Sun's and IBM's relationships to Rails?
DHH: I think they recognize what developers want, they are recognizing there is great enthusiasm and passion for Ruby on Rails, and they don't want to miss out on that. To a large extent, they are following the passion, the excitement.
We don't want to work in these big environments like .Net and J2EE. I know some people inside of Sun know what's going on, but whether they as a company choose to accept the lessons I don't know. In some ways, Rails is a rebellion against J2EE, but at the same time, they're doing great work with JRuby and Unix level tools like DTrace. Like any big company it's going to have different factions inside. I welcome Sun and IBM to come in and offer services.
IDGNS: How many Rails committers are there?
DHH: We're 12 people in the core group who have commit access. Then there are hundreds of people who contribute improvements for their own benefit.
IDGNS: How old are you and what was your background before you created Ruby on Rails?
DHH: I'm 27. I worked with PHP and Java, they were my main background. I was mostly doing PHP on my own, and I worked at a Java shop for a period of time. It was J2EE to some extent and otherwise Java in general. Those were the two forming influences. With Ruby On Rails, I tried to form the best of both worlds to make it as quick as PHP and as solid and clean as something like Java.