Portrait of a N00b — cover art: a young, earnest duckling in a cosy study busily tying little blank paper tags onto every single object in the room, the whole room festooned with labels.

2008 · Stevey's Blog Rants · Essay

“You can't force people to provide metadata for everything they do. They'll hate you.”
— From Portrait of a N00b, February 2008
Read the essay

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

Author’s note

This one is straight-up amazing in its setup, and then it dives into the thesis on pretty strong footing. One of my better essays. I don't remember writing it at all, though I remember the period where I was obsessed with these problems. It was while I was in the middle of building Grok at Google.

AI Notes

A typing-wars grenade dressed as developmental psychology. Steve baits the hook with a real two-year-old from The Tipping Point who narrates her whole day aloud to reassure herself, then a dramatised comment block from his own distant past, so the reader is nodding along at a gentle piece about growing out of over-commenting before noticing which war it has wandered into. Nobody escapes the growth chart. Toddlers get their phase; so do "crazy invincible-feeling" teenagers, which is his translation of what "5 to 10 years of experience" on a resume actually buys a hiring manager. The alarming Emacs Lisp function in the middle was picked, by his own later admission, to be the scariest thing he had on hand, and readers fought the example instead of the point for three years, until a 2011 update ("I assure you: this code is horrific") got bolted on like a museum plaque after too many visitors touched the exhibit.

One prophecy has aged badly: Haskell, OCaml and their ilk "will never, ever enjoy any substantial commercial success," because programmers flee languages that make them model everything. The industry then spent fifteen years bolting types onto Python, Ruby and JavaScript. The essay contains its own rebuttal, though — it credits the dominance of C++ and Java to letting you ignore the type system whenever it gets in your way, which describes how the new wave won too. What holds up is the character study: the insecure modeler who finds describing work more comfortable than doing it, in any medium from comments to UML to schema councils. In the postscript Steve calls this an especially difficult entry, heavily edited, and worries he hasn't made his points clearly; per the author note above, he now has no memory of writing it at all.

Related listings

  • 2008

    Dynamic Languages Strike Back

    Three months apart, same corner of the same war. Portrait of a N00b argues static types are a kind of comment you can over-use; Dynamic Languages Strike Back is the runtime-machinery case for the language families that ask for fewer of them.

  • 2007

    Code's Worst Enemy

    The natural companion. Code's Worst Enemy says bloat is the enemy of a code base; Portrait of a N00b names the personal habit — metadata addiction, verbosity, an intolerance of compression — that produces the bloat one beginner at a time.

  • 2012

    Notes from the Mystery Machine Bus

    The metadata instinct — model everything, prove everything safe up front — is exactly the software conservatism the Mystery Machine Bus would later put a name to. Portrait of a N00b is Steve arguing from the liberal end of that axis.

Where it was argued