Table of Contents
- What is Ruby on Rails?
- Ruby on Rails Revolutionized the Web Developer World
- Why Do So Many Think Ruby on Rails Is Dead or Dying?
- Ruby's and Ruby on Rails' Overall Popularity
- What is Ruby on Rails Used For
- Community: Ruby vs. Python vs. PHP
- Ruby on Rails Job Demand
- Why You Should Pick Ruby on Rails
- Senior Developer Comments on Recent RoR Changes [UPDATED 2023]
Every year, we’re pelted by articles proclaiming the death of this gem of a framework. And while Ruby on Rails (RoR) is over 15 years old, it’s nowhere close to passing on from the programming world.
Why use Ruby on Rails, you're wondering? There are many use cases where Ruby on Rails development services offer a better fit than any other tool.
What is Ruby on Rails?
Ruby on Rails is an open-source server-side web application framework with an MIT license. While Ruby on Rails is written in Ruby, a dynamic, general-purpose programming language from Japan, RoR is, in fact, a framework, not a language. Many entrepreneurs and non-developers often confuse the two, thinking of Rails when hearing Ruby but rarely the other way around.
This may be brought on by the fact that the most of Ruby on Rails developers use the Ruby on Rails framework for development.
Ruby gained momentum as a programming language following the launch of Ruby on Rails.
The Origins of Ruby on Rails
Rails was created in 2004 and won the "Programming Language of the Year” award from Tiobe in 2006 despite being written in 1995 (a great year for action movies—Goldeneye anyone?).
There are other frameworks based on Ruby, but their popularity with developers and active contributors is low compared to Ruby on Rails. We’ll take a closer look at that later on in the article.
This isn’t to say that other Ruby frameworks are lower in quality than Rails. Quite the opposite, actually—they were built to respond to very specific use cases and often outperform Rails in these instances.
Rails, however, will be a good fit for the majority of projects that call for using a Ruby framework. It also increased productivity and helped developers deliver MVPs and startup apps much faster, which is why many Ruby on Rails agencies recommend RoR for startups today.
Having delivered over 30 RoR projects since 2010, we know Rails inside and out. Take a look at one of our Ruby projects.
Ruby on Rails Revolutionized the Web Developer World
When RoR entered the scene in 2005, it introduced a fresh approach to building Web applications.
Rails brought along the convention-over-configuration software design paradigm that facilitates developer work on many levels—for example, by eliminating the need to write boilerplate code.
With Django, Python’s most popular Web framework released the same year, Rails propagated the use of the MVC pattern and good development practices, such as the DRY principle.
The Rails way of web development unshackled devs from the tedious parts of the coding, freeing them up to focus on the business features and logic of the app.
It also increased productivity and helped developers deliver MVPs and startup apps much faster.
Why Do So Many Think Ruby on Rails Is Dead or Dying?
Almost an urban legend by now, the myth of RoR’s demise is the product of many misconceptions that grew around the framework and the language it’s based on.
Time to dissect them, then.
#1. Slow Performance
While Rails has slower runtime speeds than, for example, Node.js or Golang, this only becomes noticeable with huge products with large-scale traffic. However, with the right Ruby on Rails development company managing the project, these issues can be mitigated through optimized code and efficient system architecture.
And if this isn’t a huge app with a lot of users and requests, Rails isn't necessarily the culprit behind the slow speeds—there’s also server architecture or databases to consider.
With a well-thought-out architecture and infrastructure (necessary in all large-scale projects, regardless of the programming language), even huge apps or their parts written in Rails can be fast.
Examples of large-scale RoR apps include Basecamp, Airbnb, and GitHub.
So where does all that bad rep come from?
Because Rails does so much for the developer, inexperienced devs tend to make wrong decisions when writing the code. With lousy code, the drop in performance is significant.
When it comes to Ruby and RoR’s inherent performance issues, they are actively being worked on. For example:
- Ruby 2.6.1, released in 2018, included performance improvements and new features. The developers behind Ruby 3 aimed to speed up the language by three times compared to Ruby 2.
- Rails 3.1, Release Notes, introduced YJIT (Yet Another Just-In-Time Compiler) as an experimental feature. Subsequent versions continuously improved YJIT, making it a key element for improving performance in Ruby applications..
- Rails 6.0 released in 2019 packed solutions that simplify building Web apps even more. From then on, Rails started requiring Ruby 2.5+, providing up-to-date perks of Ruby aboard.
- Rails 7.0, released in December 2021, introduced Hotwire (HTML Over The Wire), which can improve perceived performance by reducing full page reloads and better integrating with modern front-end technologies, particularly through Hotwire key components such as Turbo and Stimulus.
2. Scalability Issues
I’ll start by explaining why blaming only the framework for scalability issues and deficiencies in handling many user requests is wrong.
For the application to serve requests quickly, each element in the server system architecture, not only the web app’s backend, should be configured correctly and be appropriately performant.
Ruby on Rails was accused of being difficult to scale when Twitter moved away from Rails to Scala. The transition was probably what first sparked the debate around RoR’s scalability issues.
Still, let’s keep in mind that we’re talking Twitter-sized traffic here. Many Ruby on Rails companies have implemented service-oriented architectures and horizontal scalability to successfully overcome these challenges.
So, before condemning Rails, try to identify which element exactly is responsible for the slowdown.
Available scaling options with Rails:
- code optimization
- service-oriented architecture
- horizontal scalability
Asynchronous database queries in Ruby on Rails 7 address scalability issues with a new feature called load_async. This feature allows the Rails app to request different pieces of information from the database simultaneously. For example, it can fetch a list of products and a list of users at the same time rather than waiting for the product list to finish before starting on the user list.
This approach can make your Rails app much faster and more efficient, especially when gathering various types of data for a single page or action. Instead of the total time being the sum of all individual query times, it becomes closer to the time of the slowest query. As a result, the app can handle more requests in less time, making it more scalable and responsive to users.
3. It’s Mature, Hence Boring
Whenever a new framework emerges, especially one that brings something innovative to the table, it goes viral, and, suddenly, hundreds of its users and contributors pop up all over the world.
Then a few years pass, the hype dies down, and what was once cutting-edge becomes much less exciting, intriguing, and challenging.
It’s maturing. But maturity does not necessarily have to be boring.
Maturity means stable, refined code; and maintainable web applications, even if no longer written in a trendy framework. Ruby on Rails services thrive on this stability, making it a solid choice for long-term projects.
Chasing technology trends isn’t always a good idea. Instead of improving business operations, changing to something more popular can actually yield adverse results and increase overhead.
Here’s an example of what can go wrong:
You have Ruby on the Backend, but Python is the top dog now, so it’s natural to feel like Python might benefit your business.
But is adding yet another language to your server-side stack necessary? Or maybe it would only make the codebase more confusing and difficult to maintain?
Unless your application is as big as Twitter, business benefits from adding Python won’t be big enough to compensate for the implementation costs.
A better approach is to use what’s available within your current setup and solve the problem with a minimum waste of resources.
When used by experienced developers who are well-versed in building apps in Rails, RoR’s maturity, combined with excellent tooling, libraries, and community support, makes addressing most of the pressing issues a rather straightforward affair.
Let's look at the state of Ruby on Rails.
Ruby’s and Ruby on Rails' Overall Popularity
According to the TIOBE Index for June 2023, Ruby is in the TOP 20 most-used programming languages. Largely thanks to the consistent demand for Ruby on Rails development services. Additionally, the Stack Overflow Developer Survey 2023 places RoR in a similar spot.
The 2024 edition of the Stack Overflow Annual Developer Survey also places Ruby in a similar spot.
Most popular programming, scripting, and markup languages. Source: Stack Overflow 2024
The list of products you can build with Ruby is very long due to the vast (and still growing) number of gems and libraries that serve as building blocks for different types of apps. The versatility of Ruby on Rails development services is evident in the broad range of applications it supports. Here are the most common types of apps built with Ruby. Ruby is often chosen for the cost-effective and fast development of MVPs. Many startups rely on Ruby on Rails agencies to develop MVPs quickly and efficiently. This language is also often used for prototyping, introducing updates, and testing different versions of products before building fully functional apps. Because of Ruby’s ability to support traffic-heavy apps, it is perfect for social networking apps like Twitter. Source: Airbnb Ruby on Rails companies often recommend Rails for ecommerce platforms due to its cost-effectiveness and scalability. Ruby is a programming language of choice for many eCommerce platforms like Spree or Shopify. The reason why it is perfect for the job is the speed of development, flexibility, and cost-effectiveness of Ruby, which allows for managing a lot of transactions at once. Source: Shopify Some of the best examples of such platforms are GitHub - the biggest Git repository hosting platform for developers, and Bloomberg - a multi-platform financial news and analytics hub. Source: Bloomberg Because of its speed, efficiency, and flexibility, Ruby is also used for: While Rails’ popularity might have dropped over the years, the framework is still used by over a 740k websites globally, including several major players such as Dribbble and Hulu. Even though PHP and Python are used more widely than Ruby, two of their most popular frameworks, Laravel, and Django, respectively, have significantly fewer contributors than Rails. A higher number of contributors means gems (libraries) are of very good quality, and as the saying goes, there’s a gem for everything in Rails. Ruby on Rails developers benefit from a wealth of open-source gems and libraries, which significantly speeds up development. Rails is often praised for the effort of its community to create reusable libraries that encapsulate solutions to standard problems. The quality of community contributions is a major reason why Ruby on Rails companies can deliver high-quality projects efficiently.
GitHub contributors to Ruby frameworks: GitHub contributors to Django (Python) and Laravel (PHP): If Rails were dead, hiring managers wouldn’t be looking for Rails developers. Despite claims of RoR's decline, the demand for Ruby on Rails developers remains strong. On LinkedIn, job listings for Ruby on Rails developers surpassed 38,000 positions worldwide as of mid-2023, and this trend is continuing into 2024 (source: teamcubate.com). This demand has been largely stable compared to 2023, where job openings were slightly higher at around 39,000, indicating consistent need across sectors. The popularity of RoR reflects the enduring relevance of RoR and Ruby on Rails agencies in building scalable web applications, including for major platforms like Shopify, GitHub, and Airbnb. Here are worldwide job ads from LinkedIn for Rails, Laravel, and Django along with the languages they’re written in - as of September 2024. Because the world of Rails is somewhat specific, with many people referring to Rails when meaning Ruby, the analysis above might be slightly inaccurate. Conversely, many hiring managers mean Django when recruiting Python devs and Laravel when looking for PHP developers. With coding by convention, building applications in RoR is fast and easy—an excellent choice if you’re on a tight budget and under tight deadlines. For businesses looking for rapid development, cost-efficiency, and long-term stability, Ruby on Rails development companies offer an ideal solution. Thanks to the sizeable talent pool, finding experienced Ruby on Rails developers shouldn’t take long. Ruby on Rails is mature and offers stability, directly translating into successful, hassle-free maintenance for years. Good developers will know how to tap the magic of Rails and use the saved time to focus on business features and application logic. Inexperienced programmers may struggle with the complexities of the framework, which is why partnering with an experienced Ruby on Rails agency is critical to the success of your project. In the hands of inexperienced developers, Rails will never be a good choice for advanced, complex applications. It can actually be a source of many headaches and future issues with maintenance, performance, security, and stability—all of which incur significant costs that could otherwise be avoided. For simple APIs or blogs, Rails is an excellent pick, even for beginner devs. Below, you’ll find Wojciech Maciejak, our former senior Ruby and JavaScript developer, briefly reviewing recent major changes in the world of Ruby on Rails. Ruby on Rails development services continue to evolve, with significant improvements in performance and scalability over the past few years. We’ve noticed in recent years a significant increase in the number of applications built with Ruby on Rails in “the API only” mode. Thanks to that, it is possible to create an API as an MVP quickly, and at the same time, build the frontend of the application in any JS framework. What’s more, writing Single-Page Applications (SPA) is getting some traction, and it’s one of the strongest trends right now. At Monterail, we’ve already built some SPAs with Laravel Vue Stack, so in 2023, it’s time for Ruby. Source: Google Trends In 2023, we can also observe going back to the roots of the Ruby on Rails world with Hotwire. Along with its appearance, we’re finally able to build efficient and modern Web applications within one application in a very fast way and without poor development experience. The funny thing is, we’ve been using similar techniques but never in such an organized, cohesive way.
Hotwire has gained traction as an alternative to traditional JavaScript-heavy frontend frameworks for Rails applications, particularly with the release of Turbo 8. Many developers find it a fast and productive option, especially for smaller teams and solo developers.
The Turbo 8 update brought significant improvements, including enhanced performance through optimizations for faster page loads and smoother transitions. Alongside Turbo 8, the Hotwire ecosystem has expanded with new tools and extensions. A notable addition is the Hotwire Browser Extension, which aids in developing and debugging Hotwire applications.
Stimulus, a core component of Hotwire, has also seen substantial advancements. Developers can now implement smooth concurrent updates using Stimulus and Turbo Stream broadcasts, enhancing real-time functionality in applications. Using custom Turbo Stream actions has expanded the capabilities of Stimulus controllers, offering more flexibility in application design.
Hotwire's integration with Ruby on Rails has strengthened considerably. Full support for Rails 7.2 ensures seamless integration with the latest features, keeping Hotwire at the forefront of Rails development. Ruby and Ruby on Rails have been facing performance issues for years now, but real change has been on the horizon, too. I observe a strong focus on dealing with this aspect and improving the framework and language itself. The Ruby 3.0 version turned out to be three times faster than Ruby 2.0 and predictions made by Jakuhiro Matzuomoto. Now, version 3.1 takes another step toward better performance. One of the steps was implementing the so-called “Fiber Scheduler” which allows for asynchronous work of Ruby without any side effects or tedious developer’s work. It means one thing - one of the strongest arguments against Ruby is slowly losing its relevance! Ruby is getting more and more performant, no doubts about that! Ruby takes a closer look at well-known problems and modifies the way the framework works and makes it towards asynchrony, too. At the beginning of 2022, a new version of the PG gem was released that enables making asynchronous requests to the database. It only proves the general development direction of the Ruby community. In Rails 7, we finally see one great feature which was long-awaited in Rails. Our databases were never encrypted by default. In general, it does not mean that it was unsecured, but if we can do it, we just should encrypt even simple data in the database. Now you don’t have to add any gems or additional implementations, you can just use simple command because Rails support encryption out of the box. It’s a really important feature of Rails 7!
The introduction of Active Record Encryption in Ruby on Rails 7 has significantly elevated the focus on security within the framework. This built-in feature has transformed database encryption from a complex, optional add-on to a core, easily implementable functionality. By allowing developers to encrypt sensitive data with just a single line of code in their models, Rails has made robust security practices more accessible and widespread. The automatic encryption process between the application and the database provides an additional layer of protection, safeguarding data even in the event of unauthorized database access. Not all changes in Ruby on Rails are thought out in advance. Some of them remind me of an experiment that shows that RoR is not afraid of trying new things. One such feature is Ractor - a Ruby Actor Model which will offer parallel computation capabilities to Ruby apps. It works like service workers in JavaScript, allowing for the implementation of proper threading between processes, ensuring safety due to fewer deadlocks and livelocks. Their communication is based on message passing, substantially different from conceptual threads. Just to summarize, in the last few years, a lot changed in the Ruby on Rails world. There are some revolutionary changes, there are some improvements, and some small steps which will be hopefully continued in the next few years. From the perspective of a Ruby developer but also a potential client, these matters are the most important: Whether you're looking for a Ruby on Rails development company to build an MVP, a complex web application, or even a social network, Ruby on Rails services will continue to deliver robust solutions for years to come.What is Ruby on Rails Used For
MVPs
Social Networking Apps
Apartment Sharing and Booking Apps
It’s also used for apartment sharing and booking apps - Airbnb and Couchsurfing- because it swiftly manages a large number of daily transactions and property bookings.Ecommerce platforms
Platforms that support complex databases
Community: Ruby vs. Python vs. PHP
Ruby on Rails Job Demand
Why You Should Pick Ruby on Rails
Senior Developer Comments on Recent Ruby on Rails Changes [UPDATED 09.2024]
1. Back to the roots - Hotwire in 2023
2. Performance boost!
3. Encrypt everything with Rails
4.Parallel Execution in Ruby
Summary