Building anything uses resources.
Although it can differ depending on what it is you are building, the main elements required are materials, tools, and some specific skill-sets. One resource that is often overlooked, is time. What makes this unique from other resources, is that once it’s gone… you can’t get it back. One way to help mitigate that, it how we manage it by the tools we choose to work with.
Time catches up with all of us eventually. Ruby was developed in the mid-’90s , as a solution for a truly object-oriented language. With inspiration from Python and Perl, its goal was to simplify how humans interact with functionality in a more natural way; but the language was considered somewhat obscure for years, and remained as a bit of an outlier. That changed around 2004; Ruby really took off when a professional race car driver and full-time developer (but maybe not in that order) David Heinemeier Hansson developed a Model-View-Controller framework that leveraged Ruby.
The Happy Path ?
If you are reading this, you may already have an opinion on how Ruby on Rails fits into the development world today. Rails is a Gem — a Ruby-centric term for library — and like any other library is designed to enable a heuristic approach to fast-track your programming, so you don’t have to start from scratch. As mentioned earlier, time is a resource. One of the advantages of using Rails is the quick development process, and the speed at which a Minimum Viable Product can be achieved. With the ability to generate application structure, models, and functionality, developers can spend more time on the business logic of the app itself. Like the language it is built with, the code in rails is known for its readability. We spoke about the Model View Controller design pattern, which divides the app logic into separate parts, and quite conveniently.
While Rails isn’t the only framework to do this, it certainly makes it easy for us. By running simple generate commands, Rails sets up our directory with the tools we need, and will even conveniently set up inheritances, and lets us simply set up our routes. Even when the application is complex, the usability can be easily extended.
Another side effect of Rails’ popularity (or lack thereof) is that besides polarizing developers, it also makes it a somewhat niche framework. Developers that are proficient in Rails can be highly sought after, thus increasing their compensation, without having to reinvent the wheel. The same Stack Overflow survey, as well as a quick search on indeed.com, reflects there is still a high demand for those proficient in Rails.
Rails today, gone tomorrow?
Being the pragmatic programmers that we are, we have to consider the possibility that Ruby on Rails, now a seasoned gem, may not be a relevant tool used by developers.
A quick search online consisting of “Ruby on Rails” and <any negative suffix>, might yield results that imply the framework has had its moment in the limelight but is no longer on track (see what I did there?).
It was reported by Infinium there has been a decline in Gem creation in recent years, which could be directly related to declining interest in the framework. For any technology to stay relevant, there needs to be innovation.
According to InfoQ Twitter stopped using Rails in 2010, citing issues with performance. Accused of being hard to scale, due to Rails’ feature-rich nature, this can result in slower runtime speeds and type errors. Even with all the investments, both financial and technical Twitter had made with their Ruby stack, the fact they stopped using Rails was a barometer to indicate a changing technical climate.
Anecdotally, the opinionated nature of Rails as well as the language it’s built with can be problematic for some. The implicit nature of how it works can have learning implications for new developers, and bugs may become difficult to find. In general, it is agreed that Rails uses more memory and resources, which is expensive.
Conclusion: How I learned to stop worrying and love the Rails
Latin is considered a dead language, but there is still value in learning it. It is still widely used in academics, sciences, and it provides insight into understanding the recursive nature of our shared history. While Rails isn’t a language per se, its value and impact can not be overstated.
As someone learning to code for the first time since a global pandemic potentially fast-tracked the decline of civilization — or at least forced us all indoors for extended periods — I was impressed by the intuitive nature of working with Ruby on Rails. Like most languages in development, the more exposure you have, the stronger your skills will become; and with that, your currency as a full-stack developer will rise.