Say the word “ruby” to non-tech people and the first thing that may come to mind are the ruby slippers from the Wizard of Oz. But if you ask any tech person what “ruby” is, chances are they will instantly gravitate to Ruby on Rails.
Ruby on Rails combines two concepts developers love: elegant, readable code and easy development. This led to a surge in popularity for the web application framework in the early 2000s. But Ruby on Rails’ inherent problems such as scalability, error testing, speed and magical methods can cause frustration and technical debt. That has led many companies to abandon Ruby on Rails or use it just for projects, and choose other languages that offer easier expansion and lower long-term costs like the MEAN stack or constants like Python and Java.
How Ruby on Rails works
To understand why this happened, first you need to know how Ruby on Rails works. Ruby on Rails comes in two parts. The language, Ruby, was developed by Yukihiro "Matz" Matsumoto in 1995. Its main philosophy is to make programming fun, and many developers consider it a more “eloquent” developer experience. Rails is a framework; a tool used to support web development with a standard building pattern. It was released in 2005 and quickly became an unstoppable web development tool once paired with Ruby. Ruby on Rails follows most of the common web development practices, including Model-view-controller (MVC), RESTful Routes and object-relational mapping.
From a developer perspective, there are many reasons to enjoy Ruby on Rails. It follows a philosophy of “convention over configuration” which means a developer who follows the rules of the framework will be rewarded with less code and less repetition. This made Ruby on Rails popular, since developers could create applications extremely quickly in a “plug and play” fashion.
Ruby on Rails’ shortcomings
Most companies don’t rely on Ruby on Rails for their main products because it has some significant drawbacks. Runtime speed (how developers measure the speed of compiling and executing code) is slow in Ruby compared to languages such as NodeJS and GoLang. Boot speed (how developers measure the time it takes to “run” a server) is also a significant issue, especially as projects grow larger. The “convention over configuration” philosophy of Ruby also causes problems. Most companies have a unique product that requires their software to be customized. It’s very rare for two web apps from different companies to be exactly the same. When developers personalize their code and deviate from Rails conventions, they will have to create more from scratch. That begs the question of why use Rails at that point? Large, complex projects in Ruby can quickly become frustrating – so much for writing beautiful code!
The numbers say it all
Coding Dojo recently analyzed the most used programming languages by companies in the largest U.S. metro areas. Ruby on Rails appeared on the top five list in just two markets: San Jose and Atlanta.
Despite this lack of demand, many coding bootcamps only teach Ruby on Rails. Why? It’s because Ruby is a simplistic and easy-to-read language with a conventional framework that stresses common practices. It’s easy to learn and can be a great teaching tool if you uncover the magic behind it. But Ruby-only developers will be in for a rude surprise when they enter the workforce.
Where does this leave the future of Ruby on Rails? Likely it will continue to decrease in popularity, as it has for the past few years, but remain a good tool to learn a subset of developer skills. Companies will continue pushing ahead with other programming languages and use Ruby for quick micro services. Even though Ruby on Rails remains a great teaching tool, developers that move onto other languages will open up more career pathways.
Kristoffer Frisch-Ekenes is an instructor and Bootcamp Leader at Coding Dojo. A former computer science major, Kris came to Coding Dojo for its innovative approach to training software developers from the ground up. In his spare time, he loves playing with his dog and hanging out at Seattle’s many parks.