The Ruby web development community got a big surprise Tuesday when the programmers behind the Rails and Merb projects announced plans to join forces. Merb will be folded into Rails 3, the next major version of the open source web framework. This unexpected union will put an end to the rivalry between the two projects.
The two frameworks have much in common and share code in a variety of places, but they have been kept apart by philosophical differences and personality conflicts. In an announcement of Rails creator David Hansson revealed that the conflict is over and that the developers behind Rails and Merb will be collaborating on a unified project. Merb lead developer Yehuda Katz will be joining the Rails core team and Rails 3 will integrate some key elements of Merb.
Rails 3 will be more modular and will give users much of the flexibility and "framework agnosticism" that was available in Merb—the ability to cherry pick which components are used and choose between several different options for various layers of the stack. In order to balance this with the out-of-the-box ease of use that developers have come to expect from Rails, the new version will still have good, consistent defaults.
Rails 3 will also benefit from the performance optimizations that the Merb developers have made to some of the components that are shared between the two frameworks. The performance advantages could go deeper in the future and it seems like the emphasis on performance is one aspect of Merb culture that the Hansson wants to see become contagious in the Rails ecosystems. Another critical characteristic of Merb that Hansson wants to adopt in Rails is the strong API stability guarantee, which will make the extensibility of the framework more robust.