Whatever happened to Ruby?
Whatever happened to Ruby?
If you’ve been around the world of web development long enough, you’ve seen many languages and frameworks rise and fall. The shooting star that is Ruby and its web application framework, Ruby on Rails, burned brighter than most. In 2008, just three years after Rails was introduced, this very publication posed the question of whether the framework might be the successor to Java, noting that it squeezed the drudgery out of web development and that Ruby-adjacent startups were seeing big venture capital investments.
Fifteen years later, the idea that Ruby would displace Java seems laughable. The TIOBE index, which tracks search results for queries about different languages, had Ruby in 16th place when I last checked. It sits between MATLAB and Object Pascal. (Java held a respectable fourth place.) Filtered, a company that provides virtual environments in which job applicants can show off their skills to potential employers, doesn’t even list Ruby in its top eight languages. Hirers only tested for Ruby about 0.5% of the time, they said.
But don’t put Ruby in a museum with FORTRAN or ALGOL just yet. I spoke to current and former Ruby programmers to try to trace the language’s rise and fall. They shared their thoughts about how and why Ruby’s been displaced from the list of most loved languages—and also why they think it still has a future.
When Ruby was great
There were a number of factors behind Ruby’s initial surge of popularity, but chief among them was that it made it easy to quickly ramp up development, particular for front-end applications. And that hasn’t changed. “Ruby on Rails is still a great way for a small team to have the impact of a large team,” says Noel Rappin, co-author of Programming Ruby 3.2. “It remains one of the fastest ways to go from zero to a real, valuable product.”
“Ruby is and always has been the best language when it comes to providing the user with a solid front-end experience,” explains Pulkit Bhardwaj, e-commerce coach at BoutiqueSetup.net. “It provides ease of use for the final users and gives a stable, secure experience. It also provides a space for experimentation, as Interactive Ruby offers immediate expression results line by line.”
Ruby has also been associated with a strong open source community from its earliest days. Kevin Trowbridge, CTO of Qwoted, believes that the nature of the language itself has a lot to do with that. “It’s the most literate of all programming languages,” he says, meaning that “it’s just so easy to write and read. That’s why you have the community, which is extremely strong, and the philosophy, which is that it’s optimized for product, developer productivity, and happiness.”
But these advantages never gave Ruby and Ruby on Rails anything like complete dominance. And the other languages and frameworks certainly didn’t stand still in the meantime. “Rails came along at the cusp of a period of transformation and growth for the web,” says Matthew Boeh, a Ruby developer since 2006. “It both benefited from and fueled that growth, but it was a foregone conclusion that it wasn’t going to be the only success story.”
Boeh recently took a job as a senior staff software engineer at Lattice, a TypeScript shop. “You could say that Ruby has been a victim of its own success, in that its community was a major driving force in the command-line renaissance of recent years,” he says. “In the early ’00s it was introducing REPL-driven development to people who had never heard of Lisp, package management to people who would have been scared off by Perl’s CPAN, test-driven development to people outside the highly corporate Java world, and so on. This is all stuff that is considered table stakes today. Ruby didn’t originate any of it, but it was all popularized and made accessible by Rubyists.”
Ruby’s challengers: JavaScript and Python
If there’s a single language that now dominates in the spaces where Ruby used to rule, it’s JavaScript. That only became true as the language escaped the browser to take over the rest of the world. “As JavaScript grew into a full-stack language, engineers have been enabled to build front end, back end, and mobile projects in one language or even a shared codebase,” says Jemiah Sius, director of developer relations at New Relic. “Ruby is easy to learn and has a very high security standard, as well as an active community. But when someone thinks full-stack, they think JavaScript—Node.js, React, or whatever their preferred framework is.”
Qwoted’s Trowbridge notes that JavaScript has been able to take up this slack because the language has improved from one that developers once viewed with a certain amount of scorn. In fact, it’s become more Ruby-like with time. “The browser vendors made efforts to formalize, standardize, simplify, and enhance,” he says. “It’s so much nicer than JavaScript used to be.”
“The JavaScript ecosystem in its current form would have been unimaginable in 2004—it needed both the command line renaissance and the takeoff of the web platform,” adds Lattice’s Boeh. “Did you know it took a full decade, 1999 to 2009, to release a single new version of the JavaScript standard? We get one yearly now. Rails became a big deal in the very last time period where it was possible to be a full-stack developer without knowing JavaScript.”
Meanwhile, Python has come to dominate one of the hottest areas of development today, artificial intelligence and machine learning. “Python became popular among the scientific community because they could prototype models and algorithms faster than ever, so it moved years ahead of Ruby” says Bhardwaj. “Ruby on the other hand became perceived as slow to execute and didn’t get that spotlight for development.” New Relic’s Sius agrees: he says that “when someone thinks about a versatile language that can create everything from games to VR to AI to ML, everyone knows Python is the clear winner.”
The decline of Ruby
Several dynamics have driven JavaScript and Python to dominance over Ruby, and they go beyond just the qualities of the languages themselves. “Python and Ruby on paper are quite equivalent,” says Qwoted’s Trowbridge. “They’re both dynamic, interpreted scripting languages that are happiest on the server. They don’t use memory very efficiently, so they’re expensive to run, but they have an incredible amount of flexibility, so they are also rather quick to write and friendly to beginners.”
But when it comes to data science, Python has a leg up because of the ready availability of libraries like TensorFlow and Keras. “These frameworks make it easy for coders to build data visualizations and write programs for machine learning,” says Bhardwaj.
JavaScript, meanwhile, has spawned seemingly endless libraries that developers can easily download and adapt for just about any purpose. “As a technologist, you can go on your own hero’s journey following whatever niche thing you think is the right way to go,” says Trowbridge. But when it comes to JavaScript, “these libraries are excellent. Why ignore all of that?”
Many of those libraries were developed by community members, which inspired others to contribute in a snowball effect familiar to anyone involved in open source. But one big player has had an outsized influence here. Python’s TensorFlow, which Bhardwaj called a “game-changer,” was released by Google, which has followed academia’s lead and made Python its internal scripting language. Google, as the maker of the dominant web browser, also has an obvious interest in boosting JavaScript, and Trowbridge gives Google much of the credit for making JavaScript much faster and more memory efficient than it once was: “In some ways it feels almost like a low level language,” he says. Meanwhile, Ruby is widely acknowledged to be lagging in performance, in part because it lacks the same sort of corporate sponsor with resources for improving it.
And in some niches where Ruby once thrived, it hasn’t been replaced by another language; rather, the ground has shifted so those niches aren’t recognizable anymore. “I got my start in the business making marketing sites and online stores for the clients of a local creative agency, and I think it’s also easy to miss how much that bottom end of the web dev world has been automated away,” says Lattice’s Boeh. “Within a couple years, that entire business was no longer viable—nobody was interested in bespoke sites like that when they could do pretty decently for themselves with WordPress or Shopify.”
Why Ruby isn’t going anywhere
That said, Ruby isn’t going away—and Shopify, a giant in e-commerce, is one of the biggest reasons why, as Ruby on Rails is its primary development platform. “Ruby is still the best for creating e-commerce apps because of its dynamic functionality and flexibility,” says BoutiqueSetup.net’s Bhardwaj. “You can build your app through different modules and modify them later. This makes it easier to update the app for additional features.”
And while Shopify obviously doesn’t operate on the scale of a company like Google, it still aims to act as something of a patron for Ruby like Google does for its favorite languages. For instance, Shopify recently developed YJIT, a just-in-time compiler that improves Ruby performance and has been built into the Ruby standard.
Qwoted’s Trowbridge says Ruby also thrives “as an excellent server-side ‘glue’ language that works well for the server component of web applications, as in Rails’s ‘API only’ mode.” In some ways, he notes, that role “leaves Ruby essentially where it started.”
All in all, almost everyone I spoke to believes that Ruby and Ruby on Rails will continue to be used in a number of settings. “There are many languages which remain heavily used and relevant, while not as buzzy as they once were,” says Trowbridge. “I’d put forward Java as the foremost example of this and suggest that Ruby and Java will share a similar trajectory.”
Finally, there’s a warmth and enthusiasm about Ruby from its community that you don’t seem to find with other languages, even the ones that have in many fields “defeated” Ruby. For instance, Cosmin Andriescu, CTO of Lumenova AI, says that “Rails still has a major advantage, with its vast amount of Ruby gem libraries, over a lot of the JavaScript frameworks, which have unstable APIs and not enough maturity in all the necessary web development tooling.” Boeh, somewhat more bluntly, characterizes Python as “the language where I have met the most people who absolutely hate using it.”
“I still use Ruby for personal projects and hope I am able to use it professionally again,” Boeh adds. “There’s a lot of exciting developments happening in the Ruby world right now and as of six months ago there were plenty of employment opportunities. Ruby is never going to be the Next Big New Thing again, but I think it’s here to stay.”