One of the things that I like about Rails is that I expect it to do a good job of sticking around. It will look similar in 5 years and keep a lot of the same strengths it has now.
Anyways, a convention over configuration equivalent of Rails for front-end UI development that wins a similar level of mindshare would be most welcome. I am not holding my breath for that to happen. There’s too much diversity in what people want and need. And writing new frameworks is fun! So, I expect the front-end environment in 5 years to look similar to how it does now. Fragmented and diverse. New and exciting. But with a different set of libraries and techniques that are considered the most popular.
On the other hand, you will still be able to build your backend application in Rails in 5 years using the same concepts and patterns and a huge ecosystem of high quality bolt-on functionality. What makes it tough for other Rails-like frameworks to supplant Rails is that the framework originated at a great time and defined a lot of things. The web application software market is a lot more mature now. So a Go, Elixir or NodeJS version of Rails isn’t going to develop the same level of mindshare and open-source tooling that Rails did. That level of mind-share strengthens the tool, adds helpful libraries to the ecosystem, and enables everyone to get things done faster and benefit from a virtuous cycle of popularity.
For applications that don’t need to reach a certain kind of mega-level scale quickly to be economically viable, I think it is tough to compete with the ecosystem Rails has. It’s not the most exciting framework out there, but for getting to market fast and economically, I think it is one of the best options if not the best.
I do wonder if from the perspective of hiring developers, it makes sense more sense to choose Python/Django? If it wasn’t Rails, and I’d had a different journey into programming, that’s probably what I would be talking about in this post. I am much less familiar with the Django ecosystem.
Some things that you’d build with Rails right now:
- Instagram post scheduling app
- Directory site of anything
- Social network for Influencers
- Marketplace sites
- Zapier-esque tools
You can certainly build these with other languages, too. Rails just seems to get you a lot for free and get you a super high speed of feature development and productivity, so it’s hard to see it going anywhere for a while longer.
If you think I’m making a grave mistake with this stance, I’m interested to hear why.