A magazine about programmers, code, and society. Written by and for humans since 2018.
February 2nd, 2026
Welcome to the 89th issue of De Programmatica Ipsum, about Ruby. We are thrilled to welcome Graham back to the newsroom! We are also introducing "Arts", a new category exploring the connection between programming and the arts. In this edition, Graham describes the patterns that explain the rise and popularity of Ruby; Adrian raises a warning against the putrefaction of the Ruby community; in our Vidéothèque section, we watch Eileen Uchitelle explain the magic behind Ruby on Rails; and in the Library section, we review "Eloquent Ruby" by Russ Olsen and "The (poignant) Guide to Ruby" by _why.
by Graham Lee
I think of NeXTSTEP as one of the best compromises ever pulled off by the commercial computing industry. Xerox's PARC laboratory showed people Smalltalk and the Personal Dynabook, giving people in the late 1970s one possible vision of the future of computing. This vision proposed that computing be made (morally) individual and accessible. Though, given the limitations of 1970s hardware, it was far from financially accessible.
by Adrian Kosmaczewski
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.
It is seemingly impossible to talk about Ruby without talking about Rails, and this article will not be the exception. This web framework has had a both terrific and terrible (some would say oversized) influence in the past 20 years, and has, against all odds, regained interest in a world of microservices, DevOps engineers, containers, and Kubernetes clusters. Rails has been able to adapt to the unknown, from the burgeoning cloud services of 2005 to the latest fads, but always gathering a chorus of frowning eyes around the "magic" it uses and enables.
Most people traverse this industry in silence, duly writing, debugging, and deploying their code in whatever way ensures their salary or stock option grants; some others become unexpected stars in a firmament that would otherwise be dull and uneventful. And since in this magazine we celebrate not only the technological but also the artistic, we have the honor and privilege of reminding every serious (ahem) software developer that being silly and childish and playful is a valid choice. Today's Library entry, precisely, falls in this category.
Programming languages have settled into a comfortable middle age, with most coming to resemble one another. Many use some variety of ALGOL-derived structure, maybe with the occasional feature that first made its appearance in a LISP variant. Execution starts at the beginning of the file, or the entry point function. Each statement runs in sequence – except the ones with the magic keywords that say something else happens. Edsger Dijkstra would be perfectly at home using any of these languages, with the cognitive toolbox he developed in the 1960s. So why do they look so different?