Wednesday, September 19, 2007

Selecting the right tool for the job.

As web craftsman, learning new things is just part of the job description.

About 2 years ago I started learning Ruby, and then Ruby on Rails. I love working with Ruby on Rails. It is a great framework that has helped me to become a better programmer.

Nevertheless, as professionals, it is important that we avoid fanaticism and keep an open mind. We need to be able to clearly assess a business problem and select the best solution.

Selecting the right tool for the job sometimes means learning a new tool.

Thus, while I love working with Rails, I have found that it is not always a perfect fit. Many of the projects I work on are for small business sites. They implement CMS functionality, custom tailored to the needs of the client. Rails makes it productive and fun to create them. However, Rails also makes it expensive to host them. Each Rails instance (mongrel) has around a 70MB footprint. That's a big minimum footprint for these simple types of sites and clients with tight budgets.

Enter Merb
Today I found Merb. Merb appears to have many of the similar "best practices" of Rails that I have enjoyed, but aims to be lighter and faster. I have yet to test it out, but some sources seem to indicate it may cut the memory footprint in half (compared to Rails).

Perhaps for my small business website clients Merb will be the best tool for the job.

Have you used Merb? I'd love to hear your experiences or suggestions!!


  1. I'm starting to get interested with Merb. The thing that puts me off about Rails is they bundle everything including the kitchen sink. I'd rather select the ORM, Javascript library etc that I wish to use rather than being told what I can use. I've had all sorts of headaches deploying rails sites due to their memory usage, it would be interesting to hear how well Merb fairs in the memory department. I think Rails is great, but I believe Merb has a very promising future.

  2. Initial indications show that Merb does in fact use less memory than Rails, and perhaps serve up more requests with the smaller footprint than Rails.