Terminology isn't universal

Monday, November 25, 2024

A little while back, I wrote that we shouldn't say "auth" but should use other terms instead. I stand by my argument in general, but it also has another side to it: my suggested terminology makes sense in some domains, but not in all domains. And that's because terminology isn't—and can't be—universal.

After I wrote that blog post, I got an email from someone who had a really good point: the word "login" is often confused for "username"! My terminology suggestion doesn't work in all cases, so what's the right word to use instead? Unfortunately... there isn't one. There's no one pair of words that will work perfectly.

Terminology makes sense relative to the context it's in. If I say "node" to you, what does that mean?

My guess is you will think of either a node in a network/graph or a node as in a server. But you could also think of a lymph node or myriad other things!

The other term you could use in a graph context is "vertex". This is often clearer, but it runs into issues if you're talking about anything with geometry!

* * *

I ran into this headlong at my first job, working on a graph database. When talking about a graph in a distributed system, if you use the word "node" it is confusing: Do you mean a node of the graph or a node of the distributed system1? We ended up choosing "vertex" to mean the thing in a graph, and that worked—but would not work if we also wanted to represent geometry, like in, say, a graph visualization where you'd be drawing vertices of polygons.

A lot of this confusion, I think, comes from when different domains overlap or border each other. Words which make sense in one domain will leak into the other, but they'll end up being confusing or imprecise there.

* * *

So what do we do about it?

A lot of it is accepting that we will run into challenges here, and there's not always a perfect solution. If we run into imprecise or confusing language, that could mean that suboptimal word choices were made. But there might not be a better choice! Some confusion will always be possible, and we have to roll with that and be understanding about it.

We also have to remember that there still might be a better choice! Even if it's not perfect, we can go for better, and we can improve the status quo. We can choose words that are more clear in our domain, our context, and make things clearer there.

The other thing is we have to accept that terminology can't be universal. Just because terminology works in one domain doesn't mean it will apply to all domains. This is inherent to the whole issue, because if it were universal then there would be one single optimal choice. But there's not. And since it's not universal, we sort of have to expect that sometimes we'll run into terms that are imprecise or confusing, and that they're chosen to make sense there.


1

Ultimately some of the confusion in this case is because the two are related overlapping domains. Computer networks are represented as graphs, and we talk about them in those terms to some extent.


If this post was enjoyable or useful for you, please share it! If you have comments, questions, or feedback, you can email my personal email. To get new posts and support my work, subscribe to the newsletter. There is also an RSS feed.

Want to become a better programmer? Join the Recurse Center!
Want to hire great programmers? Hire via Recurse Center!