Suppose you heard the term “inaccessible island rail”. What do you think this term refers to? When I heard it, my mind conjured an image of a train line that connected really inaccessible islands.
And that sounds weird. Did someone undertake a project just to create such a rail line? It sounds incredibly costly. And it also sounds like it’d be something cool enough that I would’ve heard about it by now. Nevertheless, what else could this term refer to?
It turns out that a rail is a type of bird. Go figure. So it’s a type of bird that only lives in really remote islands. That makes much more sense than the train situation. Okay.
Except that that isn’t even specifically what this species of bird is. It is a species of rail that only lives on one island, literally named Inaccessible Island. It’s slightly southwest of Tristan da Cunha.
So actually, I slightly lied in the text in the first paragraph, by lowercasing “inaccessible” and “island”. But here’s the thing: you don’t hear capitalization in verbal speech. The uppercase letter hints would not be available to you if someone was orally communicating the term for this bird species to you (and even if you were reading this in text, maybe you would’ve thought the capitalization was probably for other emphasis than to hint that it referred to an island literally named that way). Also note that whereas realizing ‘rail’ probably did not refer to the context of trains could have happened via considering the context of the sentence in which it is used, context would very likely not have helped hint at the ‘Inaccessible Island’ issue.
I claim that ‘Inaccessible Island’ is a poor choice of name for this island. Names should be useful, distinguishing handles, and this name is not that. It was an attempt to reference the island’s inaccessibility, but it decided to do so via a term that would naturally be used anyway to describe islands, thus vastly increasing possibilities of confounding in all terms that refer to it. Calling the sort of bird a ‘rail’ is also unhelpful, but this part is not as problematic, for the reasons stated above.
This sort of naming failure in attempting to make a reference or hint at a metaphor is pervasive in computer science. When looking back at my learning process for many ideas in computer science, I find that this was a massive reason I often got stuck or was confused. People that name tools or ideas relating to computers often try to give them names that refer to parallel entities or processes outside the world of computers, and in doing so make usage of terms often extremely ambiguous.
This type of issue is extremely common in algorithm theory. Many terms of data structures and operations with them intend to refer to “real-life” counterparts but when used could easily be thought by a learner to refer to an action via the typical usage of the word and not a specific usage. It’s very easy to think terms like “list” and “shift” do not refer to rather highly-specified ideas, particularly when an instructor over the course of the same talk uses a term in both the strict definition in the algorithmic context and via the everyday usage, which is something actually incredibly difficult to avoid. You should actually try it: attempt to give an algorithms lecture without using words that have a specific definition in algorithms in a way that refers to their everyday definition. Here’s a big one: using ‘maximum’ and ‘maximal’ when they often refer to very specific and different ideas.
A particularly pathological aspect of this issue is that instructors easily do not realize this is a problem for people unfamiliar with terminology, having gotten used to the special contexts of the terms themselves. This issue gave me significant difficulties when I was learning algorithms, and I tried to make a significant effort to fight this issue when I taught algorithms in my recitations for algorithms classes later. Many TAs I taught with often complained about how many students couldn’t get really basic concepts. There are a lot of things I would’ve wanted to bring up for them to consider, but one really big one is that they realize this rather invisible problem. (In case you want to ask if I did bring these issues up: no, most groups of TAs I’ve been with were so sided with the narrative that students can’t even learn simple concepts that I did not actually feel comfortable taking a side for bringing up barriers to students’ learning.)
This is not just a significant problem in algorithms. Lots of nomenclature in systems and software tools are given mundane everyday names that often in usage are not clearly decipherable as referring to a specific tool or action. When naming entities in ways that refer to other ideas, it is important to ask whether it is clear enough, at least from context, that possibilities of confounding are outweighed by help in metaphoric description, for understanding. Because it really sucks to realize after churning out a lot of work, that that’s not what an Inaccessible Island rail is.