# Friday, May 2, 2008

I have always watched the development community's fascination with Ruby on Rails with much concern. It seemed like it was gaining much popularity because it was easy to use and spit out web sites based on an easy to use framework rather quickly. What's wrong with that?

A lot. Rails makes it easy to build an application by drag and drop and stitch things together with some glue code. It gives you a platform for most of the plumbing and never forces you to understand the mechanics of objects or other more sophisticated coding techniques. This leads you to some fast and easy web sites that don't scale past the RoR framework. Great for a fun site or a prototype, but not so good if you need to scale past what the RoR framework has to offer.

Some sites are learning this the hard way. Twitter has had some major outages recently and some very public scaling problems. They are mostly a RoR shop and there are rumors that they are going to swap out RoR, rumors that they of course are denying. If Twitter moves away from Ruby, it could do much damage to Rails' adoption in the future at startups that have large aspirations. I am not saying that all of Twitter's problems are caused by RoR, some very large consumer facing sites are built on Rails, but rather are a byproduct of using an application framework to build a large public site (not to be confused with an API framework like .NET or J2EE). Rails gives you a framework and makes it simple to build sites that fit into that general framework. Once you step off the reservation, you are in for a world of hurt. If you are building a site that fits the Rail mold, then if you have good engineers you may be able to scale to a gazillion users, but you lost most of the ease of use of Rails by doing so. If you are building a site that does not fit the Rails mold, then you will have scaling issues, mostly because Rails was not designed to do what you want it to do.

Some in the rails community have broken ranks, the most entertaining one is Zed Shaw, a god in the RoR community, with his infamous exit rant Ruby is a Ghetto back in January.

What I am really saying is that there are no shortcuts. You have to learn how to code and use platforms that scale to the goals of your application. Sometimes this means writing your own code and object model and data access layer.

Comments are closed.