News

Merb Merges with Rails 3

The Christmas announcement that the Ruby on Rails project would be merging its efforts with the rival Merb framework in the development of Rails 3 was good news and not-so-good. For Ruby developers worried about a community fracture, it was probably good news; for those who liked the idea of choice among Ruby frameworks, maybe not so much.

Yehuda Katz, chief maintainer of the Merb project, sees the merger as a net positive for the community. A couple of weeks before the merger announcement, a very public spat broke out between the Merb and Rails teams, which Katz characterizes as "overblown Internet drama," stemming from the Rails team's opposition to the Merb team's desire to offer a public API. Merb creator Ezra Zygmuntowicz took the fight more seriously, declaring in a blog post that the rivalry was "tearing apart the community."

But Katz said that that ideological dust up actually became the catalyst for the merger. "For the longest time there was this idea, I think on both sides, that Merb and Rails had irreconcilable differences," he tells ADT. "But when we actually got to talking, it turned out that that wasn't true. We saw pretty quickly that we could easily do what we wanted to without stepping on each other's toes and produce a product that worked for everybody, so why not? Together we'll get the best of both worlds."

Application hosting vendor Engine Yard , the primary commercial supporter of the Merb project (and Katz's employer), is providing three full-time contributors to the effort. "Suddenly the Rails project goes from having zero full-time employees in the last five years to three full-time people," he said. "That's going to make a huge difference."

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, Katz explains. This modularity will actually engender greater competition among Rails plug-in developers, he said.

"Competition is much more likely to flourish when people can make alternatives to specific components in Rails," he said. "I think this merger is going to open the door to competition in the wider world of Rails users, and not just those who are gutsy enough to use Merb."

The merged groups will also get the benefit of new marketing efforts, Katz said, in the form of the new Rail Activism Team. "Big projects can be much more successful with a few focused people whose job it is to go out and make sure that the community's needs are being met," he said. "We're making it the job of a few people to go out and talk to those who are thinking about using Rails but haven't gotten around to it and figure out what they need. It's basically all the things that people doing full-time programming aren't really good at."

JRuby Core Developer, Ola Bini, author of Practical JRuby on Rails Web 2.0 Projects: Bringing Ruby on Rails to Java (Apress, 2007), and now a consultant at ThoughtWorks, sees the merger as mainly a positive development.

"The good part about the merger is that more resources go into the common good," he said. "There are very smart people in both the Merb and the Rails community, and they are definitely capable of creating even better things together. The new Rails core group has also already shown that they are willing to make organizational changes. So getting more resources will make the situation better."

Bini, who blogs on Ruby, Java, and related language topics on his "Programming Languages Synchronicity" site, said the downside of the merger is simply that there's one less competitor. "It's a loss, but at there are several other interesting alternatives to Rails, such as Ramaze and Sinatra," he said. "Both of these frameworks push hard on different aspects that some people perceive Rails as being weak in. So I don't necessarily think that this will mean less competition. And as usual, if there is place for one more competitor, that competitor will certainly come. Programming ecosystems work the same as nature: when there's a void, it will be filled."

The new merged group announced that the beta of Rails 3 will be released at RailsConf 2009 in May. "The pressures on," Katz said.

About the Author

John K. Waters is a freelance writer based in Silicon Valley. He can be reached at [email protected].