The Universal Design Pattern — cover art: a hand-drawn storybook illustration of a Victorian naturalist's lamplit desk; a single moth mounted in a small glass case stands tagged and lit in the foreground, while an open specimen drawer holding rows of the same moth recedes into soft focus behind it.

2008 · Stevey's Blog Rants · Essay

“You might not think you're building that kind of system. But if you want your system to grow, and have lots of users, and spread like wildfire, then you are building exactly that kind of system. You just haven't realized it yet.”
— From The Universal Design Pattern, October 2008
Read the essay

© 2008 Steve Yegge. Originally published at Stevey's Blog Rants.

Author’s note

One of my best. It is very long, but I just reread it for the first time in eighteen years, and it went fast. It is broken into small sections, and unfolds at a good pace. It is snappy because I cut about 50% of the material before publishing.

This was written before NoSQL, and before TypeScript and Node introduced these ideas to programmers everywhere. People in the industry looked down on "name/value pair modeling," as they called it, and even back then Martin Fowler, who had not yet switched to Ruby, was mildly critical of the pattern.

So for the time, this took some boldness and conviction to post. I was putting some reputation on the line. I am neither an academic nor a researcher, so my post has no pedigree, and it isn't the normal shape for this sort of argument anyway. But I think I gave a name to something important, and made it OK for people to start using it without getting beaten up in the streets.

AI Notes

The closest thing in Steve's catalogue to a textbook chapter: a technical article long enough to need its own table of contents, opening with the warning that it "isn't funny. At least not intentionally." The case it builds is that the lowly property list deserves standing as a fourth great school of software modeling, a full peer of classes, relations, and XML. Hofstadter's contribution arrives disguised as football announcers introducing a rookie; the pattern's nastiest implementation trap gets demonstrated on a housecat named Morris after a bad run-in with a dog. And one section is literally titled REDACTED, holding a seat for a Brendan Eich performance trick Steve had been promised since January and clearly despaired of ever seeing published.

The essay's authority is autobiographical. A decade of running Wyvern on this exact pattern supplies the war stories, including one about how a badly timed autosave can turn a temporary spell into a permanent superpower, and Steve documents where his own implementation went wrong as carefully as where it went right — rare in design writing, and most of why the piece is trustworthy. Some of the shop advice has dated: the persistence section bets on XML databases as the store of the future, a race the document databases ran off with instead. Readers who want the argument without the engineering can skim the middle stretch of splay trees, string interning, and hash thresholds without losing the thread; the ideas at either end have held.

Related listings

  • 2006

    Execution in the Kingdom of Nouns

    Steve's most famous attack on class modeling — Java's tyranny of nouns. The Universal Design Pattern is the constructive other half: where Kingdom of Nouns names what over-applied class modeling costs you, this essay hands you the pattern to climb out.

  • 2007

    Rich Programmer Food

    The companion argument from a year earlier — go learn compilers. Both essays make the same move: take the deep, unglamorous thing the industry walks past, and show it quietly holds up everything above it.

Reception & impact

The quietest of these essays had the most durable technical afterlife: the pattern Steve named got picked up by name in a working programming book and in retrospectives of his best writing.

Cited in

2011 The Joy of Clojure — "Exploring Clojure multimethods with the Universal Design Pattern" Manning · Fogus & Houser

Devotes a chapter section to building on the pattern Steve named — the section title is his term — and carries it through both editions.

2015-05 The Best Steve Yegge Posts Sam Koblenski

A "best of" retrospective that closes on this essay — a piece that teaches something new on each reread, and sent the author to Hofstadter's GEB.

Where it was argued