In Defense of Obscure Names

In defense of obscure names

Naming things is hard

As the joke goes

There are only two hard things in Computer Science: cache invalidation and naming things. – Phil Karlton

and while this is funny (perhaps only to those in Computer Science) underlying the quote is a real issue, naming things is really hard.

The challenge is not just in giving something an appropriate name for right now, but in trying to predict how it may evolve and be used in the future.

Maybe you start with a database of bicycles, but as powered bicycles are introduced you start adding those but from there it’s a slippery slope to electric motorcycles and then gas powered motorcycles. Pretty soon your database of bicycles includes all motorcycles and perhaps those three wheeled things I’ve seen driving on the freeway. Unless you had amazing forethought and were able to predict exactly how the industry was going to evolve, chances are whichever name you select is going to be incorrect at some point in the future.

Renaming isn’t always easy

So, if the scope does evolve and the original name is no longer correct we should just rename it, right? Sometimes this is the answer. Tools for software development have come a long way and doing a code refactoring isn’t nearly as hard as it once was. So if we have a variable name, function name, or even a class/object name that is no longer accurate we usually have the ability to safely rename it across all dependencies to a new and more appropriate name.

But the coding level is often where this capability ends. The industry has not yet developed the capability to reliability refactor service names across a distributed environment and trying to do it manually is time consuming and often fraught with errors that can negatively impact uptime.

In defense of the obscure

So if changing the name of something is difficult and if naming things correctly now is hard, (and predicting how they may evolve is nearly impossible,) then maybe the best thing we can do is to purposely give them an obscure name.

When I was in college we were able to select our own email address. Like most people I knew, I opted for the straightforward and used my last name for my email address: gerth@lclark.edu. However, one of my classmates opted for something entirely different, she selected the email address of squidlips@lclark.edu. At first I thought she was just trying to rebel, but her reasoning was actually pretty interesting. Her name was something rather common, (think Jane Doe) and her argument was that while doe@lclark.edu runs the risk of being mistaken for someone else, squidlips@lclark.edu is almost guaranteed not to.

This proved to be more than just an academic observation for as it happened, I was not the only Gerth at Lewis & Clark College. There was one other one, my father, a tenured professor, and I would occasionally receive email intended for him. People had seen gerth@lclark.edu and had incorrectly assumed I was my father, and were sending me information clearly not intended for the students. (Nothing salacious I’m sad to say).

In this case the name (my email address) was even 100% correct and it was still getting used incorrectly. And while while no one may have guessed who Squid Lips was, she never got any email not intended for her.

Obscure is better than wrong

We make snap decisions all the time and if I was looking to get a list of motorcycles and came across a service named bicycles I would immediately cross it off my list. But, if instead the service was named x34a5a or even horsetail I would at least have to consider it. I may first go looking for something more specific, but at least I wouldn’t cross it off my list.

(I also prefer the name horsetail over an obscure id designation as it’s much easier to remember horsetail and distinguish it from pigfoot than trying to remember a20b23 and distinguish it from c23s40.)

So if a thing is going to exist for a while, is likely to evolve in scope, and changing it’s name is non trivial, then giving it an obscure name may actually be better and ultimately easier than trying to come up with the perfect name. So in some cases, naming things may not be all that hard after all.

Joshua Gerth
Joshua Gerth
Engineering Manager
Distributed Systems Engineer
Systems Architect

My research interests include big data, language parsing and ray tracing.