When is Ruby on Rails the best choice for your new app development?
When you need to have your MVP app done fast, and performance is not your primary concern, at least not in the beginning.
1. When you need your app done fast
Rails is a framework that relies on defaults done right. With Rails you don’t need to spend a whole day on the configuration.
When it was released in 2005, Ruby on Rails was probably the only framework which allowed to develop a web app in weeks, rather than months. At the same time, it provided clean software architecture, relying on the Model-View-Controller (MVC) design pattern, known from serious frameworks (Java, Spring, Hibernate) but just much easier to learn and use.
Ruby as a scripting language is not being compiled, so by its nature, it’s slightly slower than Java or C#. However Ruby on Rails framework is just much more lightweight and easy to develop in the initial phase of the project.
If want to complete your project fast, Rails is a way to go. If your project is a serious, long-term, sophisticated system with a lot of developers involved, and where performance matters the most, perhaps other frameworks (such as Java, Node.js) could be worthwhile to consider.
2. When a large part of your project is web-based
One of the biggest Ruby on Rails advantages is an amazing amount of useful gems (ready to programs and libraries) most of them answering to some typical web-based requirements. For example, you don’t have to implement typical functions such as “log in”, “sign up”, “forgot password?” - simply install one of the gems, and have the whole thing done in a few hours rather than days.
If your app is web-based, you will save a lot of time using Ruby Gems.
However, if your app is not a web-based one or the web part is just an add-on to a mobile app, perhaps Rails that has no big advantage over other frameworks, such as Node.js - created primarily to be a backend-only.
3. When you think of yourself more as a start-up, rather than an enterprise
Rails was created for startups. And unlike Java, .NET, or PHP, Rails community is very much a start-up community focused on solving typical start-up problems. Rails is focused on rapid development, quick prototyping, MVPs, mockups, etc, etc.
If you need to have your features to be presented in a few days, then finished up in weeks (rather than having them all done perfectly but in months), Rails is probably a better choice.
4. When you hate Javascript
Most backend developers (frontend ones don’t really have a choice) we know - don’t love Javascript to put it mildly. This, of course, cannot be fully justified, but the hate for Javascript started in the late 90s and despite the growing popularity of this language, doesn’t subside (although to be fair: a lot of people changed their mind since then).
Still, there’s this notion that a real backend software developer is better not to be burdened with something as “silly” as Javascript. Ruby on Rails as a back-end framework is free from this issue. Most developers love it and don’t want to switch to other solutions.