A couple of months ago I started hearing about the Merb framework, an alternative to the Rails framework for creating Web sites in Ruby. As you may know, Rails came under some fire for not scaling well; Twitter, in particular, had several problems. (Although I would argue that the demands of a site like Twitter are probably in the top 0.1% of all sites, so this concern may not be an issue for most Web sites.) Version 2 of Rails specifically addressed these concerns, but still, people started to look around for alternatives, including not using Ruby at all. This is where Merb came in: a smaller and faster Ruby framework. I hadn’t yet gotten to play with Merb but was going to add it to my framework-comparison homework. That may be a moot point now, as it was just announced that Merb and Rails will work together on the next version of both frameworks. Version 3 of Rails will incorporate some of Merb’s best attributes, resulting in a better Ruby framework for Web development and ending a minor feud within the Ruby community. So the next version of Merb will be Rails 3.0 and the next version of Rails will be influenced by Merb: what does this mean?For starters, Rails will ship in a more modular format, with a core version and extra features that can be enabled. This will improve the performance of a Rails site by not including code and functionality that’s not required. Other features in Merb that will be incorporated include a public API and test suite, as well as some architectural choices. Some of the key players in the framework will be more flexible. For example, you’ll be able to use the default ActiveRecord ORM or use another. And you’ll be able to use different JavaScript libraries.
The hope is to have a beta of Rails 3 ready by the May 2009 RailsConf in Las Vegas, although the developers think that’s “probably-overly-0ptimistic”. The next minor release of Rails, 2.3, will come out in January 2009, and Merb will continue to be supported for those currently using it.
For more information from the people behind both frameworks, and to get a sense of how big this is in the Ruby community, see:
- http://yehudakatz.com/2008/12/23/rails-and-merb-merge/
- http://weblog.rubyonrails.org/2008/12/23/merb-gets-merged-into-rails-3
- http://brainspl.at/articles/2008/12/23/merb-is-rails
- http://splendificent.com/2008/12/the-merb-rails-merger-announcement-an-inside-opinion/