The State of Ruby on Rails in 2021
The State of Ruby on Rails in 2021
As the needs of developers and businesses evolve, so do technologies. Frameworks are an integral part of this technology that helps businesses create solutions. Just like technologies, frameworks evolve and mature over time too.
Ruby on Rails (RoR) is a framework written in the Ruby language. RoR was released in 2004, and it stands as the perfect example of this evolution. The framework loved by startups all over the world is often questioned over its existential future. People speculate how long will the framework survive until it succumbs to the jaws of time. But, is the situation really that bad for Ruby on Rails? Is 2021 the endgame for the framework? Or contrary to what some internet folks believe in, is 2021 the game-changing year for RoR? Let’s find out!
Feel free to use these links to navigate:
- A Timeline of Ruby on Rails
- Is Ruby on Rails Dying?
- Ruby Popularity Past and Present
- Why is Ruby on Rails Claimed Dead?
- Ruby on Rails Disadvantages: Myth or Reality?
- The Speed Question
- The Reliability Question
- The Scalability Question
- The Cost Question
- How Ruby Stacks Up Against Other Languages
- Benefits of Using RoR
- What is Ruby on Rails Most Commonly Used For?
- Job Opportunities for Rails Developers
- What’s New in Rails 6.0?
- The Future of Ruby on Rails
- Ruby on Rails: Here to Stay
A Timeline of Ruby on Rails
As Ruby on Rails turns 16 years old this year, it has seen lots of changes since its inception. Let’s talk about the two most exciting years for the framework:
This year is marked as the one in which a lot of independent, isolated things were packed together and released as a one-stop solution to all Rails woes. Some major additions like the Action Mailbox and the Action Text were introduced in the form of independent frameworks to help unify the efforts of Ruby on Rails developers all over the world.
Ruby moved to version 2.7 and received some routine upgrades like pattern matching, REPL improvement, and compaction garbage controller. These paved the way for some greater changes in the coming year.
This year saw some of the ground-breaking ideas taking shape in both Ruby as well as the Rails framework. Rails 6.1 was introduced, which cleaned up some of the clutter left around in Rails 6.0. The Action Mailer and Active Storage were gotten rid of, and Action Text was improved.
Ruby, on the other hand, faced one of the most exciting updates till today to Ruby 3.0 in 2020. It opened the world of possibilities for Ruby in aspects like type checking, multi-threading, and more. This version has been claimed to be 3 times faster than Ruby 2, and the community is yet to find out its true potential.
Is Ruby on Rails Dying?
Over time, people have stumbled across this question again and again. As we see newer frameworks pop up, which meet the requirements of modern applications better, we tend to think that older frameworks such as Ruby on Rails may not be able to keep up. The passion associated with the framework has only been seen going down, as more new, exciting frameworks have come up. But does this really mean that the days of Ruby on Rails are over?
A straightforward answer to this question is: no. Ruby on Rails is going strong and may well outlive its competitor frameworks in the long run.
To support our claim, let’s compare the popularity of Ruby on Rails now with that in the past.
Ruby Popularity Past and Present
According to the TIOBE index, Ruby began at the 22nd place in the list of most popular technologies used around the world. It saw major growth, to 11th place by 2019. However, it lost 4 places since then and stood at 15th place in 2020. According to the StackOverflow annual survey, Ruby on Rails stood at the 12th position in the list of most loved web frameworks in 2019, and it jumped up a position in 2020 to stand as the 11th most loved web framework. This indicates that even during a time where super simple and fast technologies such as Kotlin and Go are being adopted, Ruby on Rails still hasn’t lost its charm, and it continues to be a serious and solid alternative for developers from the world over.
Why is Ruby on Rails Claimed Dead?
The question that arises now is, then why do people continue to ask this question over and over again? When the stats have for long made it clear that Ruby on Rails is here to stay for long, why do people try to predict its fall?
There seem to be three prominent reasons why Ruby on Rails is often projected to be dead in some time:
Maybe, this is because people have gotten bored with it. The technology, for sure, has outlived the average time any topic stays trending, because of its robustness and far-sighted planning. Developers simply seem to be looking for something new just for the sake of change. There is absolutely no issue with Ruby, on and off Rails, but being around for 16 years in the industry has taken a toll on its youth in the software world!
Like every other framework, Ruby on Rails has its rules and code patterns defined as well. If there is a complex architecture that has been ideated in modern times, it can become a hassle to be able to completely implement it using Ruby on Rails.
Ruby 3 was recently released, which tried to work on the lack of flexibility for the language. Patterns such as duck typing and static type checking now face better support in the latest version of Ruby. Maybe, this is an indication that Ruby on Rails is not nearing its death, rather some drastic updates are soon coming to the framework.
Building upon the flexibility issue, forward compatibility has started to cause problems to Ruby too. Machine Learning, one of the most trending technologies of today, is very difficult to implement in Ruby on Rails. Python has been a pioneer in the field of compatibility, and almost all Machine Learning, Artificial Intelligence, Deep Learning tasks can be done easily in Python, and it has great support for creating web applications as well.
Other modern alternatives that are more universal than Ruby on Rails have started to make Ruby on Rails look much more outdated than it truly is. But this is not an adequate reason to call something dead. Ruby on Rails was never meant to be universal, it was created for some specific use-cases, which it clearly fulfills properly.
Ruby on Rails Disadvantages: Myth or Reality?
With its growing age, Ruby on Rails has been associated with some disadvantages. While some of them may be true, most of them are myths owing to their age-old design. Let’s take a look at some of the common myths associated with Ruby on Rails applications:
The Speed Question
Many devs claim that Ruby on Rails is a comparatively slower set-up than its contemporary counterparts. The only reason behind this that we can figure is that the framework is old, hence it is assumed to have become slow in the current times.
This assumption is wrong on so many levels. Yes, Ruby on Rails is old, but no, it is not outdated. It has been receiving updates on a timely basis since its conception. The Ruby team has been keeping performance at the highest priority while rolling out new versions. The most recent version of Ruby, Ruby 3, was planned with a 3x3 upgrade in mind - meaning that Ruby 3 was expected to be 3 times faster than Ruby 2.
Apart from performance, Ruby on Rails also offers great development speed. With the great number of pre-built modules, it is super easy and fast for developers to build applications. Also, the loading time of Ruby on Rails is up to the mark with other frameworks, which adds to the speed in development and testing as well.
The Reliability Question
Ruby has been unnecessarily associated with increased crashes and failures compared to other frameworks of a similar scale. Millions of applications are running on Ruby on Rails, and if it were really so crash-prone, people would not have been trusting their money with it.
Moreover, Ruby on Rails handles bugs differently. Instead of crashing and restarting the entire application when a bug is found, it activates a code red priority, which later helps in fixing the bug as well.
The Scalability Question
Many startups have recently started wondering if Ruby is really scalable. The whole episode of Twitter moving from Ruby on Rails to Scala set up a lot of flares in the direction that maybe Ruby on Rails is not meant for the bigger picture.
While Java vs Ruby has been going on for a long time, it does not at all mean the end for Ruby on Rails. Many big projects, which include the likes of Shopify, Airbnb, and GitHub, run on Ruby on Rails since the beginning. They have faced no issues in scaling according to user demands over the years. So it is safe to say that Ruby on Rails is as scalable as any other web application framework.
The Cost Question
Ruby on Rails is also rumored to be a costly web framework. There is also a misconception doing the rounds that Ruby on Rails applications are costly to design, develop, scale, and maintain.
In reality, Ruby on Rails is a highly cost-effective language that is loved by start-ups of all scales. Prototyping in Ruby on Rails is super simple, with so many pre-built modules for increasing first release speed. Ruby on Rails is hands down the first choice for start-ups due to its high speed, both in terms of development and performance and its cost-effectiveness.
How Ruby Stacks Up Against Other Languages
An important benchmark to judge a language’s future with is how well it fares when compared to other languages of similar uses. Let’s take a quick look at how Ruby compares against some of the top languages of today:
Ruby vs Python
This is one of the most balanced battles, as both Python and Ruby are interpreted scripting languages, and they both share web development as a common use-case.
Both of these are high-level languages and can be used in server-side environments. They can work on multiple platforms, and use an interactive prompt called the IRB. They are dynamically typed languages, and are supported by Emacs modes.
Some of the key differences between the two include:
- Ruby is a fully object-oriented language while Python is not.
- Python pairs with Django for web application development, while Ruby goes with Ruby on Rails.
- Python has a community with a major portion focused on academia, as Python is the go-to tool for data analysis and machine learning-related tasks. Ruby’s community is composed entirely of web developers mostly.
- On the OOP front, Ruby supports only single inheritance, while Python supports multiple inheritances.
As Ruby on Rails is built keeping web development in mind, it is a close win in the competition where web applications are concerned. Ruby on Rails has measures to help implement complex and high-traffic sites and applications quickly, while Python offers a more general approach. Since Python is built keeping a much wider use-case and audience in mind, this difference is obvious and justified as well.
Ruby vs PHP
PHP and Ruby resemble each other in the aspect that both of them have been around for a very long time, and rumors of death are common to them both. PHP is a framework built for creating server-side applications easily, and so is Ruby. This makes it a level playing field for both of these languages.
The two frameworks share a lot of similarities. To start, both of these are open-sourced, object-oriented programming languages, which makes it easier to learn and create applications in them.
Both PHP and Ruby go hand in hand, and it has been often noticed that PHP developers try to expand their expertise by trying to learn Ruby. It is not very difficult for them too, as both of these languages share a common purpose and style of writing code.
The most prominent differences between the two include the fact that PHP applications are extremely easy to deploy when compared to Ruby applications. Ruby on Rails applications gets complex because you are required to know the entire stack inside out. From web servers to databases, you need to carefully pick out the correct stack for your application. With PHP, it's either LAMP (Linux, Apache, MySQL & PHP) or LAPP (Linux, Apache, PostgreSQL & PHP). Most hosting providers have templates defined for these stacks, so the set-up of a new application is a breeze.
Ruby on Rails outshines PHP in the project development process. Since Ruby is an object-intensive language, everything in Ruby is an object. Rails adds on a robust testing framework. On the other hand, PHP is not always an object-oriented language, and writing code in PHP can get tiring at times. All in all, development in Ruby on Rails is much faster compared to that in PHP.
From the above distinctions, it is clear that while Ruby and PHP are two frameworks built with the same intent, they have found their own user groups over time. Ruby is the clear winner in cases where business-critical and commercial applications are needed, as it provides better control as well as ease in development. On the other hand, PHP is a more generalized web framework and is easy to learn and host.
Ruby vs NodeJS
In the battle of experience vs energy, both Ruby and NodeJS have proven to be solid options for building enterprise-level, scalable applications. Both of these are loved for the simplicity, speed, and ease of maintenance that they offer.
Ruby and NodeJS are both similar in the aspect that they are both used for server-side application development. Both of them do not offer support for multi-threading and offer a high speed of development. They have huge and welcoming communities built around them as they are both open-source frameworks.
Performance-wise, Node beats Ruby on Rails fair and square. It offers one of the best benchmark runtimes when compared to other similar languages.
NodeJS seems to be the framework that finally beats the beast. Its low maturity and lack of multithreading might be some of the things to worry about, but it is better than Ruby in almost all other aspects.
Benefits of Using RoR
Having seen some issues with Ruby on Rails, as well as contrasting it with some other top alternatives, it's time that we look at the bright side. Here are some of the top benefits of using Ruby on Rails:
Ruby has a gem for literally anything that you can think of. Like npmjs, Ruby has its own repository of packages in the form of gems. They are all available and accessible at https://rubygems.org/. The presence of such a large repository of pre-written code helps make development faster, as you are not required to reinvent the wheel every time.
The quality of code available in an average gem in Ruby is found to be better than that found in its NodeJS or PHP counterpart. This means that even if you are using third-party packages to put your application together, you can be assured that these packages contain great quality code, and they will not cause any hindrances in the performance of your Ruby application.
Testing is an important phase in any project’s development lifecycle. Writing tests for each line of code can get time-consuming and might even seem redundant at times. Ruby on Rails reduces this load from the minds of the developers by simplifying the process of testing code.
The Ruby community has always been into testing and automating the process of testing. This adds incredible value to the applications that are built using Ruby and helps deliver quality software on planned times.
Ruby on Rails has a great community built around it. Almost every major city has a local Ruby community that meets regularly and helps people at all levels of experience learn something new. Apart from these local groups, the online community of Ruby is mature too, and you can find solutions to almost every normal issue that you would encounter quite easily.
Ruby is the language of start-ups. Almost every other company in Silicon Valley has either considered or tried it for their top projects at some point in time. If you take a look at some of the most successful start-ups in the world, which includes the likes of GitHub, Airbnb, Etsy & Shopify, you will realize that they have all relied on RoR for their business-critical projects.
Due to the ever-increasing age, and the growing community around the language, RoR has now become a framework worth enough to be called mature. This maturity brings with itself a lot of benefits for developers and companies alike who choose to use RoR in their projects.
The huge community is ever-ready to solve any issues that you might face as a developer trying to build your Ruby project on Rails. As a company, you have a long list of projects and other companies that relied on RoR with all their money and dreams and made it till the end.
Ruby is an expressive as well as concise language at the same time. This helps in writing code faster, and also getting rid of any ambiguities that may arise in very high-level languages. Even though Ruby has a short and clear syntax, it still supports complex paradigms such as duck typing and static type checking. In the latest update to Ruby 3.0, the language now supports concurrency and parallel execution via Ractors. This makes the entire setup of Ruby on Rails a very productive framework to build and scale applications on.
Ruby on Rails has been around for a long time, and the word in the industry is that it will continue to do so for a long time. Popular online code schools such as Makers Academy, CodeCademy, and Steer have chosen Ruby on Rails over other server-side frameworks. This indicates that an entire line of fresh, young Ruby on Rails developers is in the making. This further means that if you choose to build your project in RoR today, chances are you will have people to maintain and improve your application in the future as well.
What is Ruby on Rails Most Commonly Used For?
Ruby on Rails finds its use across a wide variety of domains. From straightforward business outlets like e-commerce websites to more subtle business models like streaming applications, you can build pretty much anything that can generate revenue for you using Ruby on Rails!
E-Commerce Application Development
The widest and vivid use-case of the Ruby on Rails framework is to build e-commerce platforms. Giants like Shopify and Etsy are built using RoR which stands as a great testament to the framework’s robustness.
Social Media Platforms
Twitter, one of the most prominent social media applications of today, was built using RoR. Another prominent example includes Dribbble, the social media platform for designers. These stand as proof of the framework’s ability to be scaled vertically as well as horizontally.
The Fintech Universe
Fintech projects are fast-moving and are needed to be failure-proof at all costs. The Ruby on Rails framework checks both boxes green with its easy to use and fast to scale environment. The presence of a large repository of gems written in good quality code helps create and publish projects faster.
BaseCamp is a productivity tool that is used to organize teams and projects smoothly. It runs in the form of a Software as a Service application, a setup often used by modern companies to offer remote, web access to powerful software hosted in the cloud. Ruby on Rails can be used to create the interface to software like these very easily.
Twitch is one huge project built using Ruby on Rails and is the perfect example to prove that media streaming projects also can be handled extremely well by Ruby on Rails. These types of applications are becoming more and more trending in today’s time, and Ruby is bound to see a surge in usage due to them.
News, Trading, and Data Analytics Platforms
All of Bloomberg’s applications are based on Ruby on Rails. This signifies that Ruby on Rails can be used to build News and Data Analytics based platforms quite easily. If your project idea handles any type of news or trading data or processes any kind of data to draw results on top of it, Ruby on Rails is the way to go for you!
Job Opportunities for Rails Developers
A simple Google search on “jobs for Rails developers” brings up several websites that list Rails developer jobs in abundance. According to Glassdoor, the average annual salary of a Ruby on Rails developer is around $94k per year. This indicates that there is a lot of potential left in the Rails line and that you are never going to run out of opportunities as a Rails developer.
What’s New in Rails 6.0?
Rails 6.0 brought with itself a great number of features. These were long-due given the growth in Rails’ technological competitors. Let’s quickly understand some of the major changes brought with Rails 6.0:
Inspired by the awesome work in BaseCamp 3, Rails 6 ships with an Action Mailbox. The Action Mailbox is a new framework that helps route incoming emails to controller-like mailboxes. This allows a Rails application to integrate with inbound emails better.
Taking another inspiration from BaseCamp’s source code, Action Text is the second major new framework added to Rails in Rails 6. Action Text is intended to make writing, editing, and displaying text in a Rails app super easy. It includes the Trix editor which handles formatting, quotes, and linking inside a text area.
Multiple Databases Support
Applications built using Rails 6 support connecting to and switching between multiple databases at the same time. This helps improve scalability and improve performance as well. Rails 6 ships with an API that facilitates multiple database support, which gets rid of the deep digging in Active Record which was earlier required.
Rails 6 supports parallel testing out of the box. This means that now you can utilize your multi-cored processor to run multiple tests in parallel for improved performance. Each testing worker gets its own database instance and can run its own thread.
A New Code Loader
Rails 6 ships with a brand new code loader for Ruby. The new loader, Zeitwerk, is all set to replace the classic Rails loader that has been around since 2004. This new loader is also useful for gem or gem-like project creators, as it allows any application to have its own independent loader instance, consisting of its own configuration and logging mechanism.
The Future of Ruby on Rails
Having discussed all of this, it is important to understand what the future of Ruby on Rails looks like. With the latest features introduced via the Ruby 3 and the Rails 6 updates, the framework seems to be set to become the perfect alternative for business-minded projects. Ruby on Rails has always been the convenient and easy-to-use solution for critical projects, and with its growing maturity and community, it is bound to get better.
Ruby on Rails: Here to Stay
After a successful stint in the industry for 16 long years, Ruby on Rails has become a mature and reliable framework for developing server-side applications. Prominent companies like AngelList, Airbnb, GitHub, Crunchbase have relied on Ruby on Rails with their critical products and services. This stays as a benchmark for Ruby’s excellence as a business-oriented framework that also takes into account the developer’s ease of use.
With so much content around the internet on the framework, RoR is growing towards becoming the perfect solution for businesses of all scales. Even though people are not talking about it with the craze that they used to when it was launched, it does not signify the end of the Ruby on Rails era. This only indicates that the peak of Ruby on Rails’ popularity has been set, and the framework is going through a period of stability and saturation.
For more of such detailed content on Ruby and other web-related topics, feel free to check out the Scout blog. If you are looking for robust application performance monitoring, make sure to give Scout a try for free!