Notes from the Mystery Machine Bus — cover art: a hand-painted storybook touring bus rolling down a winding country lane at golden hour, a panda at the wheel with a notebook on the dash and animal passengers of visibly different temperament leaning from the windows. 🔮

2012 · Google+ · Essay

“Software engineering has its own political axis, ranging from conservative to liberal.”
— From Notes from the Mystery Machine Bus, July 2012
Read the essay

© 2012 Steve Yegge. Originally published at Google+.

Author’s note

This essay was almost lost when Google+ shut down. I'd half-forgotten I'd written it — I only remembered because my then-boss at Google had told me it was too long, and the memory came back attached to the irritation. Someone had made a GitHub gist that preserved the text. In 2026 a committee of AIs voted it one of my top-three most essential pieces, which surprised me more than it should have.

AI Notes

The thesis: software engineering has its own political axis, running from conservative to liberal, and everyone is standing somewhere on it whether they have noticed or not. Software conservatism prizes safety — static typing, strict schemas, no metaprogramming, no back-doors, performance designed in up front. Software liberalism prizes the speed and flexibility of shipping features, treats bugs as survivable, and regards premature optimization as the root of all evil. The essay builds the case with a nine-point side-by-side, a left-to-right ranking of languages from "batshit liberal" assembly to "extremist conservative" Haskell, and case studies of Facebook, Amazon, Google, and Microsoft. The sharpest moment is Clojure — a Lisp, the most liberal of language families, whose community turned out deeply conservative because it had been pre-populated by Haskell and ML refugees.

Software liberal versus software conservative became a permanent piece of industry vocabulary — a frame people still reach for to defuse the static-versus-dynamic fight without making it personal, even as it insists the two camps are genuinely irreconcilable rather than a disagreement data can settle. It is also the essay where Steve steps back and names the thread running through his whole body of work, explicitly citing Kingdom of Nouns, Code's Worst Enemy, and Dynamic Languages Strike Back as expressions of his own liberalism.

Related listings

  • 2012

    Return of the Mystery Machine Bus

    The immediate sequel, posted 15 August 2012, two and a half weeks after this essay. Half rebuttal pass, half new material — code-as-asset vs. code-as-liability, applications-as-cities vs. military-encampments, action-at-a-distance with the Gregor Kiczales AOP-at-Amazon anecdote.

  • 2006

    Execution in the Kingdom of Nouns

    Steve names this one, by title, as an expression of his own software liberalism. The Mystery Machine Bus is the framework; Kingdom of Nouns is Steve standing firmly on one end of the axis he later drew.

  • 2008

    Dynamic Languages Strike Back

    The static-versus-dynamic-typing war is the clearest worked example of the axis in action. This essay is Steve fighting that war; the Bus is Steve four years later explaining why the war can never be won.

  • 2006

    Good Agile, Bad Agile

    Process politics. Good Agile, Bad Agile is a fight about how teams should work; the Bus gives that fight its grammar — it is a clash of values, conservative against liberal, not a disagreement that data can settle.

Where it was argued