Is Rails on Track for Extinction?

How does the future of Rails look today and should this be considered when deciding whether to learn this framework.

Alberto Olvera Sotres
6 min readJan 9, 2021

Introduction

Rails is a back-end web development framework used with the Ruby language to build websites and applications. It uses the model-view-controller (MVC) design pattern and includes default structures for databases, web services, and web pages. It promotes the use of web standards and stresses the importance of using convention over configuration (CoC), don’t repeat yourself (DRY), and the active record pattern. It has been in the market for just over 16 years and although it has decreased in popularity, it is still widely used by professionals.

Advantages

  • It promotes using the best standards and practices of web development giving the application maintainability through the use of the DRY philosophy, extensibility thanks to the modularity of the MVC approach, and security provided by built-in mechanisms that protect it from vulnerabilities.
  • The fast development of prototypes and applications can be achieved with its system of modules, code generators, a large number of open-source libraries (called gems within the Ruby community), and a default object-relational mapping (ORM) system called Active Record. All these features allow scaffolding a complex application and developing functionality with very little code, as well as connecting data and application logic together easily.
  • One of the largest and most engaged developer communities supports the constant improvement of the codebase, by finding bugs and adding new functionality via gems, and helps its members become better developers of this technology.
  • The vast amount of gems available provide out-of-the-box functionality for nearly any project imaginable, and the regular updates on the framework fix any issues found by the user community and keep security up-to-date.
Photo by Mathew Schwartz on Unsplash

Disadvantages

  • It is hard to scale applications due to slow runtime speed, and performance can be poor for complex live applications with a huge amount of users. Making wrong decisions in architecture during the early stages of a project can result in higher costs when it comes to fixing these structural deficiencies since Rails components are tightly coupled and dependant on each other.
  • Implementing unique functionality can prove to be extremely difficult. This lack of flexibility can derail the implementation of new non-standard functionality of an existing app and require a great amount of development to make it work.
  • Over the last 3 years or so, there has been a decrease in popularity and this framework is not as widely used as others like Laravel for PHP or Django for Python. It has been around for a long time and it is sometimes perceived as stagnant or boring. For companies, it can be challenging to find experienced developers. However, Ruby on Rails developers tend to be more skillful and experienced than those for other technologies.
Photo by 𝓴𝓘𝓡𝓚 𝕝𝔸𝕀 on Unsplash

Debunking myths

1. Slow performance and scalability issues

Rails indeed has slower runtime speeds than Node.js and other frameworks, but it only becomes a problem when working with very complex applications with huge amounts of traffic. And even then, Rails is not necessarily the cause of those slow speeds as server architecture and database performance also have a significant impact on this matter. As the amount of requests increases dramatically for any application, all the elements involved in the server system should have been designed and configured correctly for it to perform. In most cases, Rails can be scaled successfully using code optimization, service-oriented architecture, and horizontal scalability (server clusters).

2. Being a mature framework makes it boring

With every new innovative framework, attention is diverted from those that are older, taking away some of their popularity. This has happened to Rails many times over its long life as users go after the newest trendy frameworks out there. But it is due to its maturity that Rails is a great choice for being stable, having a polished codebase, and delivering maintainable web applications. Also, with that maturity comes a vibrant community of experienced developers who are constantly contributing to make the product better with bug fixes, new gems, and helping others in the community solve any issues.

Photo by Nejc Soklič on Unsplash

Reality today

Ruby, the programming language used with Rails, remains today as one of the top 20 programming languages according to the TIOBE index for January 2021, sitting at 15th place. However, Ruby on Rails worldwide interest has been steadily declining since 2008 as shown by Google Trends.

From Google Trends

That should not be discouraging for any developers interested in learning technology though, since this framework is still widely used and behind many popular products with heavy traffic like Shopify, Airbnb, GitHub, Bloomberg, GitLab, Couchsurfing, Etsy, Kickstarter, and many more. Nearly one and a half million websites are using Ruby on Rails today. This data shows that the interest in this technology is still there and there are currently many opportunities for developers to work with the framework in the real world.

From BuiltWith

Improvements introduced in the latest release (Rails 6) had addressed very important issues that were problematic in the past, including support for multiple databases with Active Record which helps with scalability and makes applications more secure and reliable, parallel testing, and making webpack the default bundler for less configuration with new apps.

Furthermore, the introduction of Ruby 3.0 released in December 2020, brings in significant improvement to performance, concurrency, and Typing. The expectation is for it to be 3 times faster than Ruby 2.0, which is a very dramatic increase.

Conclusion

The easy-to-understand and compact nature of Ruby, coupled with the automated features of Rails for faster web application development, give beginners all the tools to put together functioning websites or applications really fast, from which they can build up incrementally as they get more familiar with the framework.

Having a massive and engaged community ready to help new developers, and the existence of over a million websites using this technology in the real world, guarantee to have many challenging and exciting opportunities for years to come.

Also, the process of learning a new technology by itself prepares future developers for the real world where continuous learning of new technologies is part of the job.

For all these reasons learning Ruby on Rails is well worth learning and would help any developer or aspiring developer grow their technical skillset to the next level.

--

--

Alberto Olvera Sotres

Web developer in training, lifelong learner, committed partner, amateur cook, football aficionado.