Development Software Spotlight

Merb: Rails Alternative Takes Modular Approach

  • By John K. Waters
  • 10/27/08

Engine Yard has just 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.

Rails, of course, is the framework that catapulted Ruby to the popularity it enjoys today. In fact, when developers talk about Ruby on Rails (RoR), they often simply say "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, explained 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 said. "It's highly tuned for specific cases. But once you get out of that zone, you have to fight with Rails quite a bit."

Merb also provides developers working on smaller applications a way to replicate common Rails tasks with less overhead and a higher degree of customizability, he said.

The Merb architecture is object-relational mapping (ORM)-agnostic, and gives coders a wide range of choices among JavaScript libraries and template languages, Katz said. It offers flexible routing and better control over groups of processes, and additional features can be plugged into the framework using standard gems. (RubyGems is a Ruby packaging system that provides a standard format for distributing Ruby programs and libraries.)

"This isn't one giant framework here," Katz added, "so it's easy to opt out and just use the pieces you need."

Another feature of this release (Merb 1.0), Katz pointed 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 said, and better control over groups of Merb processes.

Comments

Add your Comment

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above