I am sure many of you are asking yourself- so, why should I use Ruby on Rails (a.k.a. RoR) for my next project? I am going to share with you why I would. It is the Rails, the application framework, that is the force behind RoR. What Rails does is constrains developers in this predefined application structure with necessary elements required to build a reasonably good enterprise/commercial strength Web-based solution. Constraints can be liberating. It is certainly true for RoR. As a result, you can expect to build an application of reasonable quality with a less experienced/young team faster than any other technology, for example, Java/.Net (assumption is the team has the same years of experience with both technologies ). The database migration tool that it provides to help with incrementally building the database alone can be reason enough to give it a serious thought. Rails' simple yet elegant plugin architecture have fostered a large active community of plugin builders. You can find many useful plugins that are needed for many applications. These plugins could speed up your development time even faster.
We all know imitation is the highest form of flattery. It is true for Rails too. Rails has inspired many copycat frameworks in many languages. Even Microsoft has taken a notice of it. Microsoft has recently published its Rails-inspired MVC framework for its .Net platform. Please remember, these Rails-inspired MVC frameworks do not give you all the things that you get from Rails to make your team hyper productive.
While RoR philosophy of "Convention over Configuration" contributes to developers' productivity, it could also be limiting for certain situations. RoR is good for new applications as well as porting existing applications where your existing databases can easily support "Single Table Inheritance" in your domain.
I have heard many expressed concerns about Ruby's performance because it is a dynamic language. It reminds me of Java's early days. We have come a long way since then. We have many high traffic RoR applications in production. Ruby is now supported on Java VM through JRuby and on .Net CLR through IronRuby. Performance should not be a concern for RoR applications that can also be built using Java or .Net. If you are not convinced, here is a very good case study on YellowPages.com that should remove all your concerns about RoR. If you are still not convinced, David Hansson, the man behind the Rails, talks about why scaling with RoR is boring...:-)
Are you considering RoR for your next project? Did you recently complete a RoR project? Please feel free to share your experience with us here.