The Principles of Naming (in a Technical Context)

2026-04-30

OK, so, I'm not making progress on sneezing this out as a completed magnum opus, so I might as well share some notes here.

What I really want is to gather all this up and publish it in a classic, like Clean Code. "Wait, what?" you might reasonably say to that, since Clean Code is almost universally reviled for it's dodgy principles and atrocious examples. The thing is though, that before it, there was not a lot on the topic, and viewed as an example of Cunningham's law in book form, it has be acknowledged as very successful, whatever you think the book itself. As my intent is to pull the same trick, I've tried to come up with a name that is as ludicrously pompous as possible.

Purpose, (or, Why Even?)

Why name things?

We name things to distinguish them from one another.

In this respect, an important property of names is what it excludes.

The Precision and Recall from data retrieval are useful here: Given a name, is it enough to find the object? If we search using the name, is it sufficient to limit results to the object we intended?

If you call the name of a cat, it usually won't even bother to open its eyes. It doesn't care what you call it. By contrast, if you call the name of a dog in a busy park, you could actually get more than one. (Dogs that each heard their name, but are rather confused to meet you.)

The cat name has poor recall, and the dog name has poor precision.

We name things to communicate some properties of the object.

Many English surnames are simply professions, e.g. Smith, Taylor, Wright, Miller, Cook, Carpenter, Fisher, Walker, Cooper, Shepherd. Other common surnames are traits, such as hair or skin colour, Brown, White, Black, Short, Little, Swift, Armstrong.

In the large systems back-end world where I've spent most of my career to date, it's common to name some bounded domains things like "test", "staging" and "prod", (short for production) but these names tend to become problematic as we'll get into shortly.

We try to influence by naming

'To name a thing is to create it' is one of the most direct applications of this idea, that by naming something, so as to create a boundary that includes and excludes, one creates a concept, where none existed before. That is in one way, merely making an observation, an interpretation, of what is plain to see, but in another way, to create the class.

In a more concrete example, creating a forum called 'cooking' has to be an example of this, if the forum is created empty and conjured into existance, rather than labelled after the fact.

That last example reminds me of another dimension, namely endonyms and exonyms. Endonyms are 'inside names', that is, what people call themselves and their places, and exonyms are 'outside names' that other people use. (Some country name examples: Deutschland / Germany, Suomi / Finland, Nippon / Japan) Nicknames for the supporter groups of sports teams is another rich source of examples.

RSS
https://blog.eurenius.eu/posts/feed.xml