
"i'm fine" has a known bug
Picture a pet snake. It lives in a flat in the early 2000s with a programmer, a beige PC, and a network cable running along the baseboard. One afternoon it chews through the cable. Upstairs, the programmer's email client keeps saying it is connected, because as far as the software knows, nothing has changed. The connection is a promise. The snake has broken the thing the promise was standing on.
Joel Spolsky posted that snake on November 11, 2002, in an essay called "The Law of Leaky Abstractions." The law fits in one sentence: all non-trivial abstractions, to some degree, are leaky.
An abstraction is a clean surface over a mess. The one he opens with is TCP, the protocol under nearly everything you do online. TCP promises that your messages arrive, complete and in order. Underneath, the network it runs on drops packets all day and routes the rest through Ohio for no reason. TCP covers for all of it with retries and acknowledgments, and you never think about it. Until the snake. Then no amount of retrying gets a byte through, and the promise, which was always a promise about a lossy world, has nothing left to stand on.
He stacks up more. A car has windshield wipers and headlights, which are an abstraction over weather. You still can't drive as fast in the rain. Two SQL queries that are logically identical can take a thousand times longer or shorter depending on what the database does with them, so you end up learning the thing SQL was built so you wouldn't have to learn. Walk a big grid one way and it's fast; walk it the other way and the machine pages memory in and out of disk and crawls. Every one of these is a promise that holds on an ordinary day.
Here is one that isn't in the essay. "I'm fine" is an abstraction. Two words sitting on top of a great deal of packet loss. It has a clean interface. It takes a question and returns a value, and the caller can move on.
It holds up well. It holds through a whole work call. It holds through a cousin's wedding and a cashier asking how your day's going. The person asking doesn't want the lower layers; they want the return value. That's what the abstraction is for, and that's why we build it. Spolsky's point was never that abstractions are bad. They are the reason you can send an email without knowing what a packet is.
But the law says to some degree, always. The song from 2016 comes on in a CVS and the lower layers come through at once, all of them, out of order, exactly the way the network actually behaves.
the many times they'd pry i'd say i'm fine, can't let it get to me
The strange thing about a leaky abstraction is where it fails. The word "fine" keeps working; it's still there, still returning. The failure shows up at the seams, where the thing underneath pokes through: a pause that runs a half second long, or the sentence after "fine" that goes nowhere. People who know you have been reading the seams for years. They see behind the wall before you've finished building it, which is why they ask twice.
There is a second idea folded into Spolsky's essay. Abstractions leak in ways that are specific to what they're hiding. TCP leaks as timeouts. The car leaks as hydroplaning. The leak tells you what's underneath, if you're willing to read it. So does yours. Someone who goes quiet around a certain name, someone who can't hear a certain song, someone who's "fine" in a very particular way at 2:14 a.m. is handing out a map of the lower layers whether they mean to or not.
The essay ends on the line that matters. The abstractions save us time working, he writes, but they don't save us time learning. You can ship a thing on top of TCP without knowing how it works, right up until the day you need to know, and that day arrives on its own schedule. "Fine" saves you the afternoon. It does not save you the eventual, unavoidable afternoon of finding out what it was holding up.
You've said it four times this week. It works because nobody has checked under it yet. Someone will, or a song in aisle seven will.
The snake always finds the cable.
The painting: Pieter Bruegel the Elder (attributed), Landscape with the Fall of Icarus (c. 1560), Royal Museums of Fine Arts of Belgium. Public domain.
Sources