Naming Things
Alternative title: Rediscovering Connotation vs. Denotation from first principles.
This morning, I realized that ‘vector grade’ is a terrible name for the idea. It’s passable in an academic context, maybe, but regular people like my mom are never going to understand what that means.
This led me to reflect on one of the hardest problems in programming: naming things. In academia, when I name things, like vector grades, I try to communicate the intuition and implications behind the idea, not just its essence, in hopes of spurring more ideas and critical insights in myself and others.
In code, I try to communicate not only what something is, but its relationship to the rest of the system, and if possible, how and when it should be used—and not used!
When naming for people, I try to communicate something’s value.
Although I’m ever frustrated by how ambiguous and unhelpful that statement is, when I step back, it’s easy to see that it’s a pattern rather than an objective: names are trying to communicate value. And what’s valuable depends on how someone will use and interact with it.
Names don’t have to be precise, but it’s nice when they help me understand what something is and whether I should care about it. That, I guess, is the role of the name.
Now, I wonder—is that the role of people’s names too?