A colleague reminded me of this corny computer science joke a couple months back:
There are 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors.
Though there are some who dispute the difficulty of naming things, most would agree that at the very least, the act of naming things itself is a pretty important part of computer science and software development in general. Embedded within a name/label is what a thing has been, what it potentially can be, and often draws from the well of established nomenclature in other areas of life1.
It’s a pretty fascinating to look at how naming is applied naturally within the context of normal software development, as so much of coding is about creating abstractions and then putting distinct labels around them—lest names collide in expansive namespaces. And while small annoyances in the vein of Java’s class naming conventions are easy to make fun of, there have also been a number of packages and libraries and even open source apps where an offensive name was chosen—presumably as a part of some inside joke, but just got progressively less funny over time.
While it’s been quite a long time since I’ve had to conjure up a name in code—on account of not coding for said duration—I have always found it a useful exercise to work through how names come to be, and how different metaphoric labels can change its framing. To take a common example, the world of business is rife with terminology that draws inspiration from all corners of modern corporatism, and is known for carrying this symbol overused capitalistic soullessness as baggage2.
Within the realm of management, the terminology that managers use are naturally amplified by virtue of the implied authority of the role. At times, I’ve tracked how much someone’s preferred terms and analogies are repeated through others; that echo speaks some level of adoption, which itself was an indicator of the level of influence they had around their peers and the organization at large. Liberally applying the boss’s favorite talking points is expected; latching on to a colleague’s catchphrases says something about how they impose their frame of mind across the team.
Of course, words have always mattered in the political realm, whereby they get turned into slogans and chants. Witness the way that legislative bills are reverse-acronymed into catchphrases for television soundbites, and election campaigns are focus-tested to produce that rallying cry, to be repeated ad nauseam across ads and merchandise and social media. In this case, a rose by any other name would be less politically expedient.
To circle back to coding and how names matter, it’s ironic how they don’t matter to the computer itself, where its compiler and interpreter eventually reduce it to bits and bytes that run irrespective of any labels. Code, after all, is written for other humans, and it turns out that trying to describe the present while predicting the future is fraught with inaccuracies.
Which itself can be subject to the vicissitudes of language, e.g., master/slave terminology.↩
I’ve often found the objections to mostly be just snark; business-speak is really just a well-understood set of terms that lets disparate people understand one another relatively quickly.↩