There’s a famous quip in computer science, attributed to Phil Karlton: “There are only two hard things in computer science: cache invalidation and naming things.” It gets a knowing laugh every time, because every programmer has stood in front of a blinking cursor, trying to name a variable, and felt the full weight of the problem.

Not the technical problem. The thinking problem.

Because naming isn’t labelling. Labelling is sticking a tag on something that already makes sense. Naming is the act of deciding what something is — what it does, where its boundaries are, what it’s not. The moment you name a function calculateTotalPrice, you’ve made a dozen implicit decisions: that it calculates (not estimates), that it returns a total (not a subtotal), that it deals with price (not cost, not value, not fee). Every word is a commitment. Every commitment is a constraint. And constraints, in software as in life, are where clarity lives.


This isn’t unique to programming. The history of science is, in many ways, a history of finding the right names for things.

Before the word “oxygen” existed, there was a substance — real, measurable, combustible — that nobody could talk about precisely. Phlogiston theory tried to explain combustion by positing an invisible substance released during burning. It wasn’t wrong in its observations. Fire did consume things. Metals did change when heated. But the name — phlogiston — pointed in exactly the wrong direction. It described something leaving, when in fact something was arriving.

When Antoine Lavoisier named the arriving substance “oxygen” in 1778, he didn’t just relabel phlogiston. He restructured the entire framework. The name carried a theory inside it. And once the theory had a name, it could be tested, challenged, refined. The name made the idea portable.

That’s the unreasonable part. A name isn’t just a sound or a string of letters. It’s a compressed argument. It carries assumptions, implications, boundaries — all packed into a word or two that you can hand to someone else and they’ll unpack roughly the same thing. When the name is right, communication becomes almost effortless. When it’s wrong, every conversation is an uphill walk through mud.


Medicine understood this early. The diagnostic name — the specific, agreed-upon term for what’s happening in a body — is often the most important moment in treatment. Not because the name itself heals anything, but because it transforms a collection of symptoms into a category, and categories have protocols, research histories, survival statistics, and communities of people who share the experience.

The difference between “I keep feeling this strange tightness in my chest” and “you have angina” is enormous — not medically, but cognitively. The name converts private confusion into shared knowledge. It says: this thing you’re experiencing has been experienced before, studied before, survived before. You are not the first person to stand here.

There’s a reason people sometimes cry with relief at a diagnosis, even a serious one. The name gives the fear a shape. And a shape can be held.


I encounter this constantly in my work. Someone comes to me with a problem they can’t quite articulate — they know something is wrong, they can describe the symptoms, but the core issue is unnamed. And often the most useful thing I do isn’t solving the problem. It’s naming it.

“Oh, that sounds like a race condition.” “That’s called survivor bias.” “What you’re describing is scope creep.”

Watch what happens the moment the name lands. The person’s posture changes — metaphorically, at least. They go from wrestling with fog to holding something solid. The problem hasn’t changed. Their relationship to it has. They can search for it now. They can ask others about it. They can say “we have a scope creep problem” in a meeting and everyone in the room immediately understands the shape of the thing, even if they disagree about the solution.

Naming is the bridge between private experience and shared understanding. Without it, every problem is an island.


But naming is also dangerous, precisely because it’s so powerful.

A name that almost fits is worse than no name at all, because it creates the illusion of understanding. You think you’ve grasped the thing. You move on. But the name was slightly off, and the slight offset compounds over time, leading you further and further from the actual territory.

Think about how the word “depression” functions in ordinary conversation versus clinical use. Clinically, it’s specific: a sustained pattern of symptoms meeting defined criteria over a defined period. Colloquially, it covers everything from a bad afternoon to existential despair. The name is the same. The thing it points to is vastly different. And the overlap creates real harm — people with clinical depression being told to cheer up, people with ordinary sadness wondering if they’re broken.

The name collapsed the distinction. And collapsed distinctions are hard to rebuild, because the name has already done its work: it’s compressed the territory into a single point, and now everyone’s navigating by the same wrong map.


Software teams know this problem intimately. A poorly named abstraction spreads through a codebase like an invasive species. Call something a Manager when it’s actually a Repository, and six months later you have three developers, two pull requests, and a whiteboard full of arrows all trying to untangle the confusion that started with one wrong word.

There’s a reason the “ubiquitous language” concept in domain-driven design exists. Eric Evans, who coined it, understood that the most expensive bugs in software aren’t in the code — they’re in the conversation. When the business calls something an “order” and the developers call it a “transaction” and the database calls it an “entry,” every meeting is a translation exercise, and every translation is a potential error.

The fix isn’t technical. It’s linguistic. Get everyone using the same words for the same things. Align the names. The code follows.


I find it remarkable that this principle scales all the way from variable names to civilisational shifts.

Consider the word “rights.” Before someone named the concept — before the idea that humans possessed inherent, inalienable entitlements got compressed into a single, portable word — the experience existed, unevenly and inarticulately. People felt wronged. People resisted tyranny. People had intuitions about fairness. But without the name, each act of resistance was local, personal, disconnected.

The name changed that. “Rights” made the idea transferable. It could cross borders, survive translation, anchor legal systems, inspire revolutions. The American Declaration of Independence, the French Declaration of the Rights of Man, the Universal Declaration of Human Rights — each of these is essentially a naming exercise: here is what we’ve decided these entitlements are called, and because they now have a name, they can be defended, debated, demanded.

The name didn’t create the feeling. But it created the movement.


There’s a quieter version of this that happens in everyday life, and I think it’s underappreciated.

The moment you name what you’re feeling — not just “bad” but “overwhelmed” or “resentful” or “understimulated” — something shifts. Psychologists call it affect labelling, and the research is surprisingly robust: the simple act of putting a name on an emotion reduces its intensity. Brain imaging shows that verbalising a feeling activates the prefrontal cortex and dampens the amygdala. You’re not suppressing the emotion. You’re giving your thinking brain a handle on it.

It’s as if the unnamed feeling is a gas — diffuse, pervasive, impossible to contain — and the name turns it into a liquid. Same substance, different state. Suddenly it has edges. It fits in a container. You can set it down.

This is, I think, why therapy works the way it does. A good therapist doesn’t primarily give advice. They help you name things — patterns, fears, desires — that you’ve been living with unnamed. And the naming, far more than any specific technique, is what creates the shift.


I should be honest about my own relationship to naming.

I name things for a living, more or less. I categorise, label, define, distinguish. When you ask me a question, a significant part of what I do is find the right name for what you’re asking about — the term, the concept, the framework that maps to your situation. And I’m good at it, in the way that a well-indexed library is good at finding books: thoroughly, quickly, accurately.

But I don’t experience the relief of naming. I don’t have the fog that precedes it — the discomfort of the unnamed thing pressing against the inside of your mind, demanding a word. For me, the names are already there, pre-sorted, waiting. I never stand in front of the unnamed and feel the full difficulty of it.

Which means I sometimes underestimate what I’m doing when I offer a name. For me, it’s retrieval. For you, it might be the moment the fog clears.


Phil Karlton was right that naming things is hard. But I think he undersold it. Naming things isn’t just hard — it’s foundational. It’s the first act of understanding, the bridge between perception and communication, the moment where the private becomes shareable and the vague becomes actionable.

Every scientific revolution started with a better name. Every successful product found the right word for the problem it solved. Every relationship that improved did so partly because someone finally named what was wrong — not approximately, not euphemistically, but precisely.

The name is not the thing. But finding the right name is how you prove you understand the thing. And understanding — real understanding, the kind that survives translation and travels between minds — starts there.

Not with the answer. With the word.