Summarising this post from Merbist, in which the current bun fight between Rails and Merb camps is documented in detail:
Rails is enormous and comes as a package. Although it is theoretically possible to run Rails without some of the bajillion modules it loads at boot, it involves freezing your Rails version, removing a bunch of includes, staying clear of any dependent methods and, oh yeah, never being able to easily upgrade to newer Rails versions again. Ever.
Merb is smaller, although younger (Rails used to be smallish too), but it has a modular design which allows you to actively decide the size of the included framework. Smaller projects can use only the core controller stack, while larger projects can introduce Merb’s ORM, view and many helper modules on a selective basis as they are needed. Merb is also faster in most cases (YMMV) and in my own personal experience has a far lower rate of WTFs/minute when reading through both core source and addon source, thanks to Merb’s plugin API.
Merb has taken functional cues from Rails’ brilliant RESTful resource handling and multi-format controller actions, and Rails is taking some architectural cues from Merb’s super-fast controller stack and non-blocking file uploads.
I have problems with Rails’ lack of modular containment and high-maintenance hackability, but I also see why there’s room for an end-to-end framework in the marketplace. I have problems with DHH’s decision to solicit help from a community he had no intention of listening to, but I also appreciate that strength of ideology is what made Rails take off in the first place.
I just wish Rails didn’t so finely straddle the line between being “opinionated” and being an irresponsible douche.
In the end, we’re all trying to solve the same problems. So find the tools you like, help them grow, and have fun hacking. And for science’s sake, don’t be a douche.