(Actually, that could be one equal sign, or maybe three, depending on how this works out).
This decision comes as a shock to must Ruby web developers, given the history and philosophy of the two frameworks. Rails has been described as a monolithic, instant web application generator that likes default configurations. It’s very easy to create a fully functional web application, but not so easy to slim it down or to use other than the default stack. Plugins for Rails often break between versions because there is no clearly defined API.
According to the announcements, the Rails team has finally seen the Merb light. Rails 3.0 will incorporate multiple features of Merb:
- An option to generate a Rails app with only minimum core support. This means making the Rails code more modular.
- Performance improvements taken directly from Merb code.
- A well-documented API for plugins, with a test suite for that API.
Merb will also be evolving towards that same codebase, with the plan that Merb 2.0 will be Rails 3.0. Both teams plan to devote a lot of effort towards making migration of existing apps as easy as possible.
Combining these frameworks will not be a trivial task, but I’m thinking it may prove even more difficult to combine the personalities on the two teams. Has DHH really converted to the Merb way, or will there be further conflict between the two approaches? Not that that’s a bad thing, but how easily will those conflicts be resolved?