Both are open-source development frameworks for creating Web applications and services in the Ruby programming language. Rails has been around since about 2004, while Merb emerged earlier this year as what many see as a faster, more lightweight alternative.
A rivalry developed between the two that has been "tearing apart the community," Merb creator Ezra Zygmuntowicz wrote in a blog post. So the developers behind the projects have hashed out a plan to merge them into the forthcoming Rails 3 release.
"It's Christmas, baby, and do we have a present for you," Rails creator David Heinemeier Hansson wrote in his blog Tuesday evening. "We're ending the bickering between Merb and Rails with this bombshell: Merb is being merged into Rails 3!"
"We all realized that working together for a common good would be much more productive than duplicating things on each side of the fence," he wrote. "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."
The plan is to merge into Rails 3 the characteristics that made Merb different, Merb developer Yehuda Katz wrote in another posting. "This will make it possible to use Rails 3 for the same sorts of use-cases that were compelling for Merb users. Effectively, Merb 2 is Rails 3."
The plan calls for a more modular framework in Rails 3, so that developers can start with the Rails core and add other components as they want them. Merb will also port its performance improvements into Rails. "This includes architectural decisions that are big performance wins," Katz wrote.
Rails will get a public API (application programming interface) with a test suite that users and plug-in developers can build against, something that sets Merb apart today.
It won't be a "big bang rewrite" of Rails, Heinemeier Hansson said. "This is going to be a progressive improvement of Rails that'll carefully judge new initiatives on their impact on backwards compatibility as well as their general utility," he wrote.
The "probably-over-optimistic goal" is to have a beta of Rails 3 ready for the RailsConf in May next year, he said.
Before that, Rails 2.3 -- a "blockbuster release packed with goodies" -- is scheduled for release in January, he said.
"To be perfectly clear: we are not abandoning the Merb project," Katz wrote. "There are many production applications running on Merb that are relying on both timely bug fixes and a clear path to the future."
He continued: "If you're using Merb today, continue using Merb. If you're considering using Merb for a project because it works better for your needs, use Merb. You will not be left in the cold and we're going to do everything to make sure that your applications don't get stuck in the past."
Merb committer Carl Lerche describes how the detente came about in another blog post.