Should we develop it using Ruby on Rails?

Around a week ago, a budding entrepreneur met me. He had an idea and was trying to determine the best technology that can help him to convert it into an online application. At that point of time, he knew PHP very well and had heard a lot about Ruby on Rails. After visiting few blogs and trying out few tutorials on Ruby and RoR, he had almost decided to use Ruby on Rails as the technology for his application until he came across this post.

PHP or Ruby on Rails

In the post, author describes his experience while he was trying to rewrite his application using Ruby on Rails. As per the post, the author switched back to PHP after spending two years rewriting the application using RoR. Due to this post, the entrepreneur was not able to make a final choice and thus wanted to know my opinion.

At this point of time, I do agree that Ruby is one of my preferred programming languages and Ruby on Rails is an excellent framework. However, I do believe that Ruby and RoR are not the silver bullets and as such, they cannot be used for almost every application. I had come across the post long back, but this time I found out that the author had eventually switched back to Ruby on Rails (Refer to the Foreword of Ruby on Rails Tutorial Book).

The post lists 7 reasons that made the author switch to PHP from Ruby on Rails initially. However, none of the reasons are specific to Ruby on Rails or PHP. For example, a good code is always a result of the developer’s discipline and not a feature of any programming language (With respect to the 7th reason). Also, you can implement whatever is possible using almost any programming language (with respect to the first reason). Similarly we could talk about other reasons as well, but that would be the topic of another post.

When I had first started with Ruby on Rails, I was so impressed by its meta-programming features, that I was trying to use it wherever possible, but not necessary. At that time, my senior had warned me by making me realize that though it looks cool to use those features, it also makes it difficult to debug and maintain. Thus, we should use those features only when they are absolutely necessary. That was really an interesting lesson and eventually I realized that most Ruby on Rails project fail as the developer gets carried away with these meta-programming features.

Finally, coming back to our main topic, I met the entrepreneur again and asked him following questions:

  • Are there any existing gems or libraries that can result in faster development of the application using Ruby on Rails?
  • Will the application be largely dependent on external APIs and services? (In Ruby on Rails, you can preload objects and connections in an application scope for better performance)
  • What are the deployment options? (shared servers, cloud servers etc.)
  • Finally, is Ruby on Rails a option just because it’s cool?

It’s always difficult to choose the right technology for any application. It depends on lot of factors. But one thing is certain, and that is, the choice of a technology should never be made simply because some other developer or team had a great success (or failure) with that particular technology.

Speak Your Mind