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."

More Choices
Merb also provides developers working on smaller applications with a way to replicate common Rails tasks with less overhead and a higher degree of customizability, Katz says. The Merb architecture is object-relational-mapping-agnostic, and gives coders a wide range of choices among JavaScript libraries and template languages, he adds. Merb 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 continues, "so it's easy to opt out and just use the pieces you need."

More Efficiency
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.

Quote from Yehuda Katz, Chief Maintainer Merb Project, Engine Yard

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."

About the Author

John K. Waters is the editor in chief of a number of sites, with a focus on high-end development, AI and future tech. He's been writing about cutting-edge technologies and culture of Silicon Valley for more than two decades, and he's written more than a dozen books. He also co-scripted the documentary film Silicon Valley: A 100 Year Renaissance, which aired on PBS.  He can be reached at [email protected].

comments powered by Disqus


  • Visual Studio 2019 v16.7 Ships with Better Git Integration

    Better GitHub integration and other improvements highlight the new Visual Studio 2019 Version 16.7 and first preview of v16.8.

  • Visual Studio Codespaces Private Preview Woos C++ Developers

    Microsoft announced a private preview of Visual Studio Codespaces, which eases the setup and use of cloud-powered development environments that can be used from anywhere for remote development and other scenarios, targeting C++ console app and library developers.

  • Data Prep for Machine Learning: Normalization

    Dr. James McCaffrey of Microsoft Research uses a full code sample and screenshots to show how to programmatically normalize numeric data for use in a machine learning system such as a deep neural network classifier or clustering algorithm.

  • Microsoft Intros Azure Well-Architected Framework Best Practices

    Taking a page from the Amazon Web Services (AWS) book on cloud computing platforms, Microsoft has introduced its own Azure Well-Architected Framework, providing a set of architecture best practices to help users build and deliver great solutions and improve the quality of cloud workloads.

  • Creating a Progressive Web App with Blazor WebAssembly

    Not surprisingly, it's dead easy to create an app in Blazor that runs outside of the browser window and (potentially) in an offline mode. Before you get carried away, though, there are some key design decisions to make.

.NET Insight

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.

Upcoming Events