The Destructor Cometh
The software our civilisation depends on is beginning to break under its own weight...
Jonathan Blow is making his own programming language. He calls it ‘Jai’, and he envisions it as a fullyfunctional replacement for C++. Not just for making games, but for all other applications.
This may seem like quite the departure for the creator of Braid and The Witness, but it’s an idea that’s been brewing in Blow’s mind for some time now. In university he dabbled with making experimental programming languages. After graduation the delirious day-to-day drudgery of coding in C++ compelled him to craft a clean break from its conventions – its thick sedimentary deposits of legacy cruft.
Blow believes that Jai could ultimately make programmers 5080% more efficient. He also hopes to improve their quality of life by liberating them from C++’s depressing development environment. These are noble goals, yet Blow also asserts that there is a much higher stakes game in play. He believes that our society’s programming knowledge base is in peril, and that our high-tech sector is already undergoing a process of undignified collapse.
Casey Muratori identified the origins of this crisis in his excellent lecture ‘The Thirty Million Line Problem.’ As recently as the early 90s it was still possible for one person to create an operating system from scratch in as little as 20,000 lines of assembly code. But those days are long gone. Today’s operating systems are built on tens of millions of lines of code – cruft upon cruft, and bloat upon bloat. And they just keep getting bigger.
This inefficiency makes us suffer in a multitude of ways every day. You copy and paste some text into Gmail, and the formatting gets stuffed up for no reason. An image takes ten whole seconds to load into Adobe Photoshop. The controls in ArmA 3 lock up and are only released if you tap the Alt key twice. Every single day a large and increasing chunk of your brainpower is dedicated to performing work-arounds for the simplest tasks.
An operating system should work flawlessly, not randomly reboot your computer and destroy all your work.
An operating system should work flawlessly, not randomly reboot your computer and destroy all your work.
Today’s IT isn’t just draining, it’s undignified. Oh, and sometimes people die – remember when Boeing created a self-crashing plane?
The sheer complexity is absurd. Something as fundamental as testing code simply can’t be done – there are far too many possible hardware permutations. All you can do is release a game and fix the bug reports as they come pouring in. These days it’s physically impossible to guarantee a steady frame rate!
No one has confronted this ridiculous state of affairs because increases in hardware performance have kept pace with the drop in software efficiency. But as the end of Moore’s Law looms, the cancerous growth will soon become too monstrous to ignore.
Jonathan Blow takes this problem extremely seriously. Not just because he believes that coders and consumers alike deserve a better computing experience, but because all this software bloat is a threat to civilisation itself. Blow has cited the infamous Bronze Age Collapse as an example of what happens when a very complex society responds poorly to external shocks – if the key knowledge that makes a civilisation function is not passed down from one generation to the next, the collapse of living standards is sudden, and utter.
We can already see what happens when programming knowledge is lost. Just the other day the governor of New Jersey put out a desperate call for COBOL programmers when his state government’s antique mainframes buckled under the weight of requests for COVID-19 relief benefits. New hires at Cloud Imperium are expected to wrangle a code base that’s almost a decade old; they’re forced to scry the reasoning of CryEngine coders who’ve long since left for greener pastures.
If you’re still quarantined in an Isolation Cube when you’re finished reading this magazine, what better way to pass the time than with YouTube vids lamenting the ghastly state of modern software – Jonathan Blow has conducted several interviews and lectures on this depressing topic, explaining how in his own small way he’s fighting to turn the tide.
You can also hear perspectives from those who chose Faust’s bargain. On the GDC YouTube channel the creator of The First Tree explains how he cranked out a profitable game: by making extensive use of stock art assets, by making the two-hour story as cloying and mawkish as possible, and by writing a jumble of completely unoptimised spaghetti code that just barely executed.
It’s a stark contrast, representing a fundamental decision we all must make. Do you want to leave the world in a better state than when you found it? Or do you want to take the money and run? Choose, dear reader.
Choose and perish.