New Ruby Framework Offers Modular Approach
Engine Yard releases Merb, a new open source Web framework for building Ruby applications.
Engine Yard last month released the community version of a new Web framework for building Ruby applications. Dubbed Merb, the open source framework written in Ruby is "super-light and super-fast," according to the company, which is positioning it as an alternative to Rails.
Both Merb and Rails are model-view-controller (MVC) frameworks, but where Rails is monolithic, the Merb architecture is modular. It's based on an extensible, pluggable architecture, and the code base was kept to the bare minimum.
This modularity is the key difference between the two, and the need for it among Ruby developers was the driver behind the project's creation, explains Engine Yard's Yehuda Katz, chief maintainer of the Merb project. Katz, who works full time on Merb application development, sees the framework's modularity as a missing level of flexibility that Ruby developers need as they move into the enterprise and the cloud.
"Rails is great for getting up and running with an app that other people have built before using known technologies," Katz says. "It's highly tuned for specific cases. But once you get out of that zone, you have to fight with Rails quite a bit."
"This isn't one giant framework here," Katz continues, "so it's easy to opt out and just use the pieces you need."
Another feature of the current Merb 1.0 release, Katz points out, is the "Merb Stack," a coherent, maintained stack designed to allow developers to start building new applications immediately; there's no time wasted putting together a complete stack of their own. Also, Merb 1.0 is built on a single master process, rather than several disparate processes. That approach makes it possible for groups of Merb processes to share memory. That memory-sharing capability leads to more efficient handling of multiple requests over short periods of time, Katz explains, and also to better control over groups of Merb processes.
San Francisco-based Engine Yard is also responsible for Rubinius, an open source virtual machine for running Ruby programs and a Ruby core library.
Merb is licensed under the MIT license. "Merb started out about two years ago as a little hack," Katz says. "As a fledgling project that went a little beyond the hack, we wanted to encourage adoption. We thought that this license would be better for enterprise adoption than the GPL [General Public License]. We didn't want people to be scared of the license."