HACKER Q&A
📣 arduinomancer

What are some examples of poor naming in computer science/programming?


They say naming things is one of the hard problems of computer science.

What are some examples of things that are poorly named?

And what would you rename them to?


  👤 linguae Accepted Answer ✓
It took me a while to understand the X Window System’s definitions of client and server. An X client refers to an application that uses the X11 protocol, such as Firefox or GIMP. An X server implements the X protocol and connects to a display.

On many computers, both the client and the server run on the same machine. However, if I’m launching an instance of Firefox that is running on a remote machine, then the X client is running remotely while it is using my local X server. Some people get confused, however, since usually we think of servers as remote machines.

I have no issue with the terminology, but different naming could ease confusion.


👤 jonjacky
I recall being annoyed when Microsoft named its products with completely generic words like ... Word. Or Windows.

I was incredulous: Can they really seize a common word for their own use and trademark it? I thought there would be an uproar and some official trademarks office would disallow it, but no. They got away with it and now everyone has forgotten how grabby and monopolistic it seemed.

Also, I roll ny eyes at self-congratulatory names like Perfect Writer and Sublime Text. Isn't it for us to say if we think it's perfect or sublime?


👤 open-source-ux
So much in software is badly named.

Some labels or terms will never change regardless of whether they are well-named or not e.g. 'Pull Request' (see the links below discussing this).

Naming examples:

- Product or service names that convey little or nothing about their purpose e.g. AWS (Amazon Web Services)

- Well-understood dictionary words turned into fuzzy and imprecise computer science terms because no-one could think of anything better. Examples: 'composition' (as in 'composition over inheritance'). Or 'concern' (as in 'separation of concerns').

- Feature names, command-line names, API names - too many examples to list. But an interesting related article: Comparing confusing terms in GitHub, Bitbucket, and GitLab (2017) https://about.gitlab.com/blog/2017/09/11/comparing-confusing...

- The GitLab link above was discussed on Hacker News. It includes an interesting first comment on the term 'Pull Request': https://news.ycombinator.com/item?id=11095652

- On a more sinister note: choosing words designed to obfuscate their purpose and to sound benign e.g. telemetry, analytics, web beacons. No company or developer would use the more honest label 'user tracking' would they?

Finally, although every profession has a professional vocabulary, why does it feel that Computer Science is particularly amenable to the ugliest possible professional vocabulary? e.g. idempotence (not impotent!)


👤 xupybd
Intel's i series processors.

An i3 from 10 years ago is not the same as an i3 today. Trying to figure out what your buying is not fun.


👤 arh68
They're not necessarily confusing, but "constant variable", "local import", "randomized sorts" probably all sound weird to outsiders. Also, I wonder where "linting" came from (de-linting?). Some terms are just so popular that the names will always be a blur without context (index, object, array, function)–you can always "rename" them but it wouldn't help.

👤 ksaj
A lot of words we use for "the web" create mixed metaphors. Do spiders "surf" their webs? Does anything put a "post on the web"? How about "scraping the web" or "dark web"? We tack on so many different metaphors that we have completely forgotten the original "web" metaphor.

Another related one is World Wide Web. So many sites still have www in front of their URL's, yet only allow connections from specific geographic areas. Not world wide after all.


👤 alpaca128
FIFO/LIFO etc.

I have the impression it's just me, but I never remember which of those means what. Does "first out" mean the first/top-most element in the queue or the first one that was pushed in? No idea, I just can't help it but my brain refuses to memorise this detail and I have to look it up each time.

A variation like "top in, bottom out" would be much clearer imho because it doesn't have this ambiguity.


👤 arduinomancer
Personally I'd have to go with dynamic programming.

I feel like it is the most generic name ever and tells you nothing about the concept.

Not sure what a better name would be though.

Runner up: condition variable


👤 edoceo
Hahaha, Wang Computer.

Laughed the first time I heard it, still laughing today (+25 years later)

And now, global internet, like every risks being a dirty word in some other language.

Edit: also Google Go language. And it stomped on that one person's Go named language. F in the chat for them.

Found the link - issue#9

https://github.com/golang/go/issues/9


👤 AlDante2
Long Short-term Memory.

I still don't know what the authors were thinking of. (To be fair, they weren't native English speakers).

Maybe recurrent gradient flow network or recurrent propagating state network would have been better names.


👤 cpach
“Slice” in Go feels confusing to me. There ought to be a better name for that. Not sure exactly what would be better though.

👤 PaulHoule
C should be named C-thulu.