Apologies to any readers who develop on the LAMP stack, or who use ASP, CFM, Python, or anything other than Ruby — this post might not be of interest to you. But it’s fairly rare for two essentially competing frameworks to merge and join forces. That’s what happened today, though, when the popular Ruby on Rails framework announced that it would be joining forces with the less popular, but up-and-coming, Merb framework.
The much-hyped Rails framework has enjoyed a ton of time in the spotlight over the past 4 years and powers some of the web’s most used sites and applications, including Twitter, YellowPages.com, Kongregate, A List Apart, Scribd, and Xing. But Rails certainly isn’t for everyone. Many people love the way it does things, but dislike the way it endeavors to have an answer for everything. Rails is a full-stack framework that would rather you use the built in pieces to get things done — i.e., Prototype for AJAX, Active Record for ORM, or test/unit for testing.
Now, the core teams from Rails and Merb are merging in an effort to bring the two frameworks together for Rails 3, slated for beta release at RailsConf in Las Vegas in May. “We all realized that working together for a common good would be much more productive than duplicating things on each side of the fence,” wrote Rails originator David Heinemeier Hansson in a blog post about today’s merger. “Merb and Rails already share so much in terms of design and sensibility that joining forces seemed like the obvious way to go. All we needed was to sit down for a chat and hash it out, so we did just that.”
Both the Rails and Merb teams ensure that this doesn’t mean much of a change for developers on either framework who don’t want it to. The Merb team plans to work hard to create an easy path to upgrade to Rails 3 for Merb users, and current Rails users could certainly ignore the changes. The biggest effect of the merger, though, is likely that Rails is going to become more modular. There will still be default options in place, but replacing them without harming other parts of the framework will be much easier.
Rails 3 will have the “ability to opt in or out of specific components. We will focus on reducing coupling across Rails, and making it possible to replace parts of Rails without disturbing other parts,” according to Merb core team member Yehuda Katz.
Rails should also get faster — Merb’s speed over Rails has always been something that proponents of the younger framework boasted about. Rails 3 will also come with a new rigorous API for extensions. “This will allow users and plugin developers to have a clearer, more stable API to build against. It should also significantly reduce plugin breakage from release to release,” says Katz.
This is a huge day for developers of both the Rails and Merb frameworks and for Rubyists in general. But it’s also a fairly significant occurrence for the web development community at large. The combination of these two popular frameworks could give Ruby, and Ruby on Rails, a big boost. It’s also interesting to see two competing frameworks come together and iron out the minor differences that kept them apart in order to work toward a more positive single goal.