In CS 1 and CS 2 I had an instructor who bashed names whenever he got the chance. “‘Constant’ is a stupid name in my very strong opinion,” he would say, referring to some new technology our textbook was introducing. “A much better name would be ‘Nonchanging.’”1
He was an opinionated individual, which is more common than you would think in computer science.
If you invent a technology, you often get to choose its name. The rest of us can complain about its name as long as we want, but that’s never going to change the name. So while complaining doesn’t help, I do find it constructive to think about previous examples so that we can get better at naming new things in the future.
A good name in computer science has three characteristics.
- No longer than necessary
- Not so generalized as to be easily forgettable
- Has direct relevance to the concept at hand
Nearly all names in computer science match the first two criteria. It’s the third one where some fall short.
The common mistake is to grab a name that everyone has familiarity with, and impose its brand equity on your technology regardless of that entity’s actual correlation to your technology.
Let’s look at some programming language names that don’t cut it:
- Python — a python is a snake. Why is a language named after a snake? This has no relevance.
- Ruby — that's a precious stone. Same problem. (Note that Rails, Ruby's popular framework, is adequately named, because it makes you faster.)
- Pearl — same problem.
Next, let’s look at the good examples:
- PHP — recursive acronym that stands for PHP Hypertext Preprocessor. Since PHP generates HTML, this is a perfect name.
- Objective-C — this language was an object oriented knockoff of the C language. It's objective. Perfect.
- Assembly — when a high level language is compiled into object code, it's being assembled. Who can argue against Assembly?
One big elephant in the room, of course, is Apple. With its product Macintosh, it has stolen real life ideas and imposed them on something that has nothing to do with apples. And yet I love Apple and would hate for them to change their name. Is this inconsistent? First, let’s observe the following:
- Its namers were pressed to come up with a name under short notice. They were open to other ideas if a better one came to them.
- Steve Jobs loved apples, particularly the McIntosh.2
- They recognized the value of being alphabetically first in directories
Ultimately, it comes down to personal taste. I will always hate these names:
- Round Robin
- Big Endian and Little Endian
And I will always love these names:
- Singleton Pattern
- Next Step
Once a technology has existed long enough to have a history, our reaction to its name has less to do with our approving the name, and more to do with our opinion of the technology.