The list of acceptance criteria for papers submitted to the 4th History of Programming Languages (HOPL) conference held in 2021 were the following: they had to refer to languages created before 2009, that were widely used around 2011, and that had great influence in other languages that followed. Let us be very clear: Ruby fulfilled those three criteria, and by a large margin, yet the conference did not feature a talk by Matz about it, instead featuring a presentation about Groovy, a language that borrowed from Ruby much more than just the name as an inspiration.
We are holding no grudge against the organizers of the HOPL conference, who we hold in very high esteem in this magazine. Pascal suffered the same fate as Ruby, for example, although Wirth did show up at the third HOPL (2007) to talk about… Modula and Oberon. Admittedly, the criteria for selection are strange. But let us not drift away from the subject of this month.
Many articles in this magazine feature the phrase “younger generations” and this one should be no exception, simply because we are talking about a language whose apex happened 20 years ago, a time before Lady Gaga, before the Arab uprising, before ICE disappearing people, before waking up every day to an increased risk of World War III happening the next minute.
Ruby was, by far, the hottest programming language of the mid-2000s. The most important driver of its hype train (pun intended) was, of course, Ruby on Rails, which yielded an unusual amount of IPOs in the NASDAQ. Merely two months ago, Rails celebrated its 20th anniversary since the release announcement of its first version.
Rails’ success pushed the Ruby programming language to the frontline, following a similar process whereby WordPress pushed PHP, Django pushed Python, and Node.js pushed JavaScript. 2005 was the time of Web 2.0, of script.aculo.us, of Prototype.js, of being the 2006 TIOBE Language of the Year, of merging with Merb, of deploying apps with Capistrano (admittedly, one of the first tools featuring something akin to “configuration as code”, and an ancestor to Puppet, which was also created with Ruby), and so many more beautiful events.
Ah, the things you could do with Ruby blocks, and the beautiful APIs you could sprinkle in your code with them.
The following is a quote we used in a previous article about Smalltalk, and we reproduce it here because it faithfully conveys the feeling of bliss, innocence, and wellbeing of that era:
I always knew that one day Smalltalk would replace Java. I just didn’t know it would be called Ruby.
This phrase is attributed to Kent Beck, quoted by Giles Bowkett in a July 2007 blog post titled “Smalltalk, Outside The Ivory Tower?”.
Ah, does not this feel good? Well, spoiler alert: the honeymoon is over.
It all started with Ruby and its “major flaw”, one that has always tainted its perception by journalists and entrepreneurs: Ruby is slow, suffering from the stigma of early Twitter’s “Fail Whale”. Such claim was really never entirely true, for various reasons.
First, thanks to the many implementations of the Ruby interpreter, some of which are specifically built for performance, like TruffleRuby for the GraalVM.
Second, thanks to the C API that allows Ruby to interact with raw native code. This mechanism has certainly helped many low-level libraries to achieve extraordinary benchmarks.
Third, thanks to the fact that newer systems following the microservice architecture enable developers to defer performance-critical payloads to be created with other languages.
Finally, and also worthy of mention, thanks to the outstanding research conducted around Ruby, to make it ever faster, safer, while keeping its developer-friendly character.
But the damage was done, and the psyche of journalists and entrepreneurs proved to be quite resistant to change.
To add insult to injury, Rails was the last bastion of the monolith era, and since the release of Docker it has lost some of its appeal, in particular around developers building applications targeting Kubernetes deployments (which is Latin for “lots of them”). Fashion matters a lot in the world of programming, as it does in pretty much every other human activity. The history and evolution of the language was covered by others, and we are not going to expand on this aspect.
In the meantime, Ruby inspired other notable programming languages (hey HOPL organizers, re-read the previous sentence and make sure you invite Matz to the next conference around 2035, thank you so much). The most prominent of these heirs are (in the opinion of the author of these lines) Crystal (built on top of the LLVM toolkit) and Elixir (based on the foundation of BEAM and Erlang). They both borrowed Ruby’s syntax and visual layout, admittedly a favorite one by many programmers, but opting instead for a faster runtime or implementation paradigm behind the curtain.
These days, however, Ruby’s over reliance on Rails and its outspoken creator (we are being polite here) ended up becoming its downfall (even dropping out of the top 20 at the TIOBE index… I know, the ignominy). While some authors discover in astonishment the opinions and manners of a particular person and others sign open letters to the community, the current situation and the need for a change in the governance of the Rails project are no surprises at all to us old timers with a little bit of memory. Let us travel back to 2008:
But if you accept the premise that this kind of statement won’t change anyone’s mind, and is ultimately ineffective – even counterproductive – what are we left with? What purpose does the statement “stigma of being a Windows developer” serve? I can only think of one: David gets off on putting other people down.
And that makes him kind of a douchebag.
Which also means when you’re using Rails and OS X, you’re using the platform of choice for douchebags.
(“Douchebaggery”, by Jeff Atwood, published February 26th,… 2008.)
The current problems around the Ruby galaxy do not end there, sadly. We also have to mention the RailsConf fiasco of 2025. And then, how Shopify took over Bundler and RubyGems a few months later, a move akin to Microsoft co-opting the whole JavaScript galaxy for itself, through the purchase of npm and the preeminence of TypeScript everywhere.
Hannah Arendt, German-American philosopher and historian, wrote the following about the trial against Adolf Eichmann:
The problem with Eichmann was precisely that so many [other Nazis] were like him, and that the many were neither perverted nor sadistic, that they were, and still are, terribly and terrifyingly normal. From the viewpoint of our legal institutions and our moral standards of judgment, this normality was much more terrifying than all the atrocities put together, for it implied—as had been said at Nuremberg over and over again by the defendants and their counsels—that this new type of criminal, who is in actual fact hostis generis humani, commits his crimes under circumstances that make it well-nigh impossible for him to be aware or to feel that he is doing wrong.
(As quoted in “Hannah Arendt and Kant on Eichmann and the Banality of Evil” in The Montreal Review, January 2025.)
The Ruby community is in deep turmoil, and to be honest, I am deeply troubled and concerned, even if I am not a dweller of that galaxy anymore (which I was, though, and very enthusiastically so, for a long time). The current issues are, in my view, a reflection of the (truthfully degraded) state of the world, and the appalling level of impunity enjoyed (and promoted, most notably over social media) by some powerful spheres of influence.
I feel I need to emphasize this: Matz’s original philosophy, that one of creating a language that would make programmers happy, is still, and more than ever, a very valuable proposition, despite the lack of empathy, respect, and decency of some prominent members of its community. Higher values must be upheld at all costs, before more of those “Little Eichmanns” take over the world of technology, one project at a time.
I would gladly welcome a HOPL V talk about Ruby, but not in the current conditions, and certainly not if driven by an overtly hostile agenda, at the antipodes of the original ideals put forward by the early Ruby community. It is high time for a change.
Cover photo by Tanya Barrow on Unsplash.