Why build web applications with Ruby on Rails?
A lot of times entrepreneurs and product owners complain about their engineering partners that they insist on building their applications in Ruby on Rails. They bring along a few ignorant points to prove that Ruby on Rails is worse than the programming language of their choice.
As engineers, we sometimes feel like our potential partners do not have a clue. We’ll make an honest attempt to try and bust the most common myths about Ruby on Rails.
Web hosts don’t support it:
We agree that not all hosting providers offer support for Rails, primarily because of its resource intensiveness than a more traditional language like a PHP. However, these hosting providers are small time and low-end ones where a few applications are hosted on the same server.
The more standard, solid and scalable server providers globally like Amazon EC2, Rackspace, Linode and the likes very much support Ruby on Rails. This enables you to have full control over the server and you can allocate resources required for your application to run seamlessly.
RoR engineers are hard to find, hire and retain:
The growth in the supply of quality engineers & those who are shifting from other technologies are rapidly growing by the day and is as good a problem that you have with any modern day programming language.
Apart from being an engineer-friendly language, one of the key differentiators of RoR is the amount of open source modules or gems as they are called. There are at least 100,000 such gems available now.
Ruby on Rails is not scalable:
This is somewhat true that RoR applications are not as fast as an application built on traditional Java, but it is fast enough to carry out consumer operations of the app. Some of the most trafficked applications on the web use RoR even after great scale.
These limitations aside, there are so many other great things that works in favor of Ruby on Rails like pragmatism, expressiveness, developer friendliness and the strong community that is ever willing to help each other in solving technical problems.