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

An ambitious book-length argument about how programmers model the world, compressed into a single blog post with its own table of contents. Steve sets up three great schools of modeling — class-based, relational, XML — and reclaims the dismissed fourth: the Properties Pattern, aka the Prototype Pattern, known to most working programmers as "just name/value pairs." The intellectual spine is Hofstadter's Prototype Principle from Gödel, Escher, Bach: there is generality in the specific — a fully individuated thing can itself be the template for the next thing, which inherits its properties and overrides a few to become its own. Steve walks the pattern through Eclipse, JavaScript, Lisp, Bigtable, his own game Wyvern, then out to DNS, LDAP, and dependency injection, until the reader sees it everywhere. He calls it Universal because it's the best known way to build open-ended systems — and open-ended systems are the ones that get to grow up.

It's the engineer's favorite — cited back to Steve more than almost anything he's written — and has aged unusually well. In 2008 he was describing schemaless, property-bag persistence and Bigtable-style modeling as a first-class discipline; the industry spent the following decade rediscovering the same ideas under the NoSQL / document-database banner. Where Platforms Rant is the cleanest statement of the cultural thesis, Universal Design Pattern is the cleanest statement of the technical one: the durable, far-reaching ideas in software are usually the ones hiding in plain sight, dismissed as too simple to matter.

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