ED: Although relational databases cover 90% of use cases, there are times when different backing stores are handy. What do you think of adding alternative stores, such as an object database or RDF datastore?
DHH: Rails will happily serve up any model that you can imagine. Instiki, the wiki I created, has recently been ported over to Rails but still uses Madeleine (a Prevayler implementation in Ruby that works kinda like an object db) as a backend.
So it's quite easy to forgo Active Record and use something else as a backend. I've recently seen people use SOAP, SAP, LDAP, and a bunch of other backends. Or even just plain text files. It's all possible.
What has happened, though, is that Active Record has reduced the pain of dealing with the object-relational mismatch to a point where its a lot less appealing to seek alternatives—especially with databases like SQLite that give you the feel of flat text files, but within the context of SQL.
My personal enthusiasm for projects like Madeleine has thus dampened quite a bit as Active Record got better and better. It's not that other approaches are not cool, just that I don't feel the pain necessarily to ignite my interest all that often.
ED: Quite a few handy web frameworks have suffered from getting big and potentially unmanageable—Zope, for instance. What's your strategy to avoid this?
DHH: Stay below the infrastructure surface. Don't let business logic creep in the back door. It's not the responsibility of Rails to deal with content management, access control lists, forums, chats, or what have you. We're about the general structures that make sense of any kind of application.
So we won't ever become Zope. Or OpenACS. Or any of the other frameworks that have dipped into business logic waters and been consumed by it.
We're all about making it easier and easier to do what most people do most of the time in any type of application. For example, we're working on preparing a new sub-project called SwitchTower for the next version of Rails. It solves the problem of deploying applications to production servers. That's a problem that most every application needs to deal with, but it doesn't complicate the development process by making the default stuff any harder. It's just there, patiently waiting until that's your problem.
ED: What's coming next for Rails?
DHH: I've already hinted at SwitchTower as one of the major new elements, but otherwise, we're mostly about 1.0 right now. The final spit and polish.
After that, we do have a ton of plans, though. I'm especially excited about The Conductor. But I'll keep that guy under wraps for a little while longer.
Edd Dumbill is co-chair of the O'Reilly Open Source Convention. He is also chair of the XTech web technology conference. Edd conceived and developed Expectnation, a hosted service for organizing and producing conferences. Edd has also been Managing Editor for XML.com, a Debian developer, and GNOME contributor. He writes a blog called Behind the Times.
Return to the O'Reilly Network