The decision of which framework or language to choose from is not a simple one and rests on both the company values and project values. For simplicity’s sake, we can refer to values or priorities.
What’s more important?
- Velocity
-
Speed of feature development?
- Scalability
-
Can the app support hundreds of thousands of users concurrently without major redesign?
- Maintainability
-
How easy is it to change application features down the road?
- Staffing
-
How easy is it to hire people with the right skillset
- Community
-
The community behind the framework/language?
- Community values
-
The values behind the framework/language, and do they match projects?
In my experience, Ruby/Rails software engineers tend to be good at:
- Velocity
-
that’s why Pivotal Labs consultancy chose Rails as their primary framework
- Automated-testing
-
which means — maintainability in the future
- Onboarding
-
rails apps are laid out very similarly and most rails devs know where to look for configuration
- Object-oriented design
-
The community has very strong OOP design principles, and some of the best books on the subject, such as POODR
Other languages don’t have a single comprehensive web dev framework that automates everything from DB migrations, to secrets encryption, sending/receiving of email, in addition to the MVC, etc.
Hiring for Rails
Rails today is used to power nearly 3M websites worldwide according to the website trends.builtwith.com/. |
Where do all of these engineers go? They will all be available for hire for decades to come.
Recent Rails Apps
New Rails sites come online all the time. 37Signals just recently launched a redesigned email service provider — hey.com which DHH described as follows:
The HEY stack:
-
Vanilla Ruby on Rails on the backend, running on the edge
-
Stimulus, Turbolinks, Trix + NEW MAGIC on the front end
-
MySQL for DB (Vitess for sharding)
-
Redis for short-lived data + caching
-
ElasticSearch for indexing
-
AWS/K8S
Personally, I would never use MySQL — I am a big PostgreSQL proponent for various reasons, from licensing to features, to scaling it. So that this blog post is my take on web development and Rails. |
Summary
So, NO — I don’t think it’s dying, if anything it changed from being the cool new kid on the block to a "pro" athlete that nobody can beat at the game. Yet.
Look, people thought that NodeJS would beat Rails, but the poor value system in Javascript, a heavily fragmented ecosystem, poor testing practices, and the async hell leads to unreliable code throughout. I’ve seen this again and again.
Django is probably 2nd best choice of all shown, but it was always copying Rails' features to Python, and always a step behind, but never ahead. If you have a lot of people with Python knowledge, then, by all means, Django is a good choice. But that applies equally to Go and Rust. If you are outsourcing these apps, you want to optimize the cost of development, which is likely to be the cheapest with Rails and the fastest with Rails.
— Konstantin
February 1st, 2021.