Yehuda Katz: Plug-ins the focus of Rails 3.0
September 14, 2010 —
(Page 1 of 3)
Related Search Term(s): Rails
Four years ago, Merb was created as an alternative to Ruby-on-Rails. The project was focused on creating an optimized environment that was thread-safe. But in December of 2008, Merb and Rails were on a collision course, set to split the Ruby community in two. Instead of fighting, the two projects made nice, and it was decided that Merb would be merged with Rails for version 3.0.
At the end of August, Rails 3.0 finally arrived. We caught up with Engine Yard's Yehuda Katz, creator of Merb and now a core Rails committer, to ask him about the new combined projects and to check in on the major changes to Ruby's partner in all things Web.
SD Times: What did the merge accomplish? What historic Ruby problems are now gone?
Yehuda Katz: Merb was created four years ago to address the fact that Rails wasn't thread-safe. We decided it would be easier to start over and write something small rather than try to make the existing monolithic thing thread-safe.
Over time, Merb became this full-fledged Rails competitor. During that time, Rails actually got thread-safe, Rails got faster, Rails got Rack, Rails got a lot of the things that Merb had. But because they were starting from an existing thing, they were never really able to catch up to Merb's aggressive performance targets.
But at some point, we were fighting a lot, and we sat down and said, “We don't have the exact same priorities, but we have the same goals. We'll get really aggressive about dealing with the parts of Rails that are too slow or could use better threading.”
So we rewrote Action Pack. Rails has some backwards-compatibility concerns that make it impossible to make the basic experience quite as fast as Merb, but one of the goals of Rails 3.0 was to build a toolkit so that if you have a performance concern, you could build a subset of Rails that would be just as fast as Merb.
Are the speed benefits obvious from the start?
If you just start a Rails 3.0 application from scratch and compare it to Rails 2.3, you may not get a huge speed improvement. But what Rails 3.0 does is it gives you the ability to opt out of expensive features.