The world's most popular open source database
Lenz Grimmer is a member of the community relations team at MySQL AB. He lives in Hamburg, Germany and has worked for MySQL since April, 2002. Before joining the community team in December 2005, he was a member of the release engineering team that is in charge of creating the official release builds of the MySQL server.
The Ruby scripting language was first published in 1995, and has a very dedicated and active community of users around it. And with the release of the Ruby on Rails web framework in July 2004, Ruby has emerged as a serious alternative to PHP and Java for developing database-driven web sites. MySQL is one of the most popular choices as a database backend for Ruby on Rails applications and we support the Rails community with a dedicated forum about MySQL and Rails.
David Heinemeier Hansson is one of the original authors of Rails. He is a partner at 37Signals, a Chicago-based company that offers web-based productivity applications that are all based on the Rails framework.
I had the pleasure of interviewing David and would like to thank him for answering my questions. This interview was written in collaboration with David by using Writeboard, one of 37Signals web applications built using Ruby on Rails and MySQL.
Q: Please tell us a bit more about yourself and your background.
I’m 26, a partner at 37signals, and currently living in Chicago. I graduated from the joint business and computer science bachelor’s program at Copenhagen Business School last year and have been working on Rails and the 37signals’ suite of applications since.
Q: You’ve recently moved from Denmark to the US - how do you like it so far?
Except for the first few weeks of blistering of December cold in Chicago, it’s been great. I have a great place in Bucktown and a fun car, so its been a nice upgrade in standards of living over my student life in Denmark.
And the US seems to just have more. That’s definitely not always a good thing. More junk food, more lame commercials, more clueless people. But you don’t have to focus your attention on that. You can choose to focus on the more great restaurants, higher sense of entrepreneurial spirit, and of course less taxes.
Q: How would you briefly describe Rails from your perspective to new users? Why should they consider it?
Rails is about allowing beautiful code to solve the problems most people have most of the time in web-application development. It’s about taking the pain away and making you happy.
I’d actually almost advice people to cut their teeth in web-development on the mainstream offerings. Once you’ve tried developing a substantial application in Java or PHP or C# or whatever, the difference in Rails will be readily apparent. You gotta feel the hurt before you can appreciate the cure.
Q: When did you start working on Rails? What was the motivation?
Rails was extracted from my work on Basecamp—a project collaboration tool from 37signals. So it was motivated by needs, not predictions. And I believe that’s a big part of why we’re currently enjoying such success. I didn’t try to imagine what some programmers might need for a fantasy job. I just built what I needed to get my work done with a smile.
Ruby on Rails Logo
Q: So it basically started like so many Open Source projects that initially just scratched a developer’s personal itch, interesting! How would you describe the developent process of Rails? As an Open Source project that is backed by a company, how do you integrate the community?
Although Rails comes out of the work done at 37signals and a good number of the most active Rails contributors work at that company, it’s not backed by 37signals in the sense that MySQL is backed by MySQL AB.
37signals doesn’t sell services or commercial licenses for users of the framework, we just use it to get our work on Basecamp, Backpack, Campfire, and other applications done.
And we have plenty of other companies represented in the core group to sorta balance the concerns. So Rails is very much its own despite sharing obvious cultural traits with how we work at 37signals.
Q: How many people are currently actively involved in contributing to the Rails development? Could you name a few key people?
We have a core group of about 12 people who holds the keys to the code repository. They’re all listed on the Rails core page with name and mug-shot.
On top of that we have hundreds of contributors that helps us with patches and spotting bugs. Their work is visible on the Rails development site.
Q: Thank you for these pointers – this indicates a vibrant and healthy community behind the project. Could you give us a rough estimate on how many Rails users are out there? What is the most popular OS platform?
Rails has been downloaded more than 300,000 times according to RubyForge. We have hundreds of people who have signed up on the Working Commercially With Rails list as, well, doing commercial work with Rails. The actual number is probably in the thousands now.
And on the application show-case site, we shine a light on just a handful of the public Rails applications out there.
The most popular developer platform seems to be OS X. Everyone in the Rails core group is running OS X and most of the top contributors too. On the server it’s more of a split between Linux and FreeBSD. So Rails is definitely most heavily represented on ‘nix-based platforms, but there’s still a good number of Windows people too. And packages like Instant Rails for Windows makes it easy for them to get started as well.
Q: Which Rails-based project (apart from the applications developed by 37Signals, of course) does impress you most?
There are a ton of them. I’ve been really pleased to see all the cool things Rails has been used for since its release. We got people using Rails for everything from social sites to mortgage applications to selling baby clothes to sending invoices to managing humanitarian efforts. I think Rails is represented in just about any web-application domain you can image.
But to highlight just one, I really like 43things.com. It’s made by a group of ex-Amazonians with a mission to make the world a better place by helping people reach their goal in life. That’s such a noble venture and the fact that they have more than 200,000 trying to reach their goals with the help of 43things.com is amazing.
Q: Can you tell which of these showcased applications run on MySQL?
All applications developed by 37signals (Basecamp, Backpack, Writboard and Ta-Da List) as well as the applications created by Robot Co-Op (43 Things, 43 Places and 43 People) run on MySQL, I am not sure about the rest. However, MySQL is the default database in the Rails configuration file database.yml, so I would guess the overall usage of MySQL among these is pretty high.
Q: What do you think do people like most about Rails?
Getting stuff done in style. The ability to quickly deliver functionality without feeling like a hack doing it.
Q: What are your future plans, what is the most missed feature that Rails users would like to have?
Rails 1.1 is on the near horizon. We’re adding a bunch of nice new extensions, but development on the core framework has definitely slowed down simply because we’re reaching the edges of what most people need most of the time.
Now our attention is mostly targeted against plugins for stuff “some people need some of the time” and for tools, like SwitchTower (cluster deployment), that decreases the pain outside the framework issues.
Q: Is there anything about MySQL you would like to comment on? Anything missing or that we can improve on to better support Rails?
I love MySQL because its fast and easy for the simple stuff. I’m entirely uninterested in fancy features like stored procedures, triggers, and the like. So I hope nothing is being sacrificed while the 5.0 series chases these.
My advice would be to focus on enabling that simple feature set to go higher. Make clustering and other scaling techniques even easier. Perhaps baking in support for managing partitioned data sets.
Q: Thanks for your suggestions. We strive on making things as simple as possible and I hope you will be delighted to hear, that we already added partitioning support in MySQL 5.1! Could you name 2 other FOSS projects you would like to draw more attention to? Why do you think they matter?
lighttpd is an amazing web server that’s well-positioned to make a dent in Apache market share for web applications. It ships with built-in support for FastCGI/SCGI, is really tiny and easy to install, and incredibly fast. On top of that, the author Jan Kneschke is super responsive to the concerns from the Rails community. Their site even runs Ruby on Rails!
Balance is a really nice software-based load balancer that we use to separate web and application servers at 37signals. It’s nice, fast, and has an interactive terminal that gives you real-time stats, which helps a lot when you want to monitor how things are doing.
Q: I am sure that Jan (who happens to be employed by MySQL as a developer) will be flattered to read your praise about Lighty :)
Now that Rails has become so popular – do you still find time to contribute code by yourself?
Most certainly. For Rails 1.1, I had the good fun of adding three of the major new features. Polymorphic associations, join models, and form_for/fields_for. I love programming in Ruby and contributing to Rails too much to let popularity interfere with that.
That’s very good to hear. Thanks a lot for your time and keep up the good work!
This interview was performed using Writeboard in February, 2006.