Live data from Hacker News

Software component names should be whimsical and cryptic

medium.com

11–20 of 339 posts

Re: Software component names should be whimsical and cryptic

#11

Aesthetically, at this point descriptive names almost look unprofessional, or at least quickly made. If you call your thing "ui-state-syncer" I'm going to suspect it's not really a big budget mainstream thing. If it's called Vue, I'm going to think it's big enough that someone thought it was worth it to spend an hour thinking of names. It was intended to get big. This isn't some minimal internal thing for one specifi…

Seems that names for projects follow the same rule as troll names in the japanese light novel Overlord.

Short names, like "Gru" were reserved for the most powerful trolls because there were only so many combinations of three letters. Long names on the other hand were a sign of weakness and cowardice - bringing ridicule to those who introduced themselves like that.

Re: Software component names should be whimsical and cryptic

#13
post #7

If you went down the hell hole of microservices please do give descriptive names to services.

I think the point still somewhat stands.

Imagine a “UserProfile” service. It’s accessed from everywhere to show the handle name, address, icon etc. of your user.

Your application grows and your users want way more customization, now they get personas and avatars and can show different profile to different people. Those are full of breaking changes that you want to isolate from the legacy “UserProfile”, how do you name your new service ?

Re: Software component names should be whimsical and cryptic

#14
post #5

My favourite example of how this can go sideways is BlueJeans - video conferencing software. There's probably some cultural context I'm missing here, but I asked around in the office and got a different answer each time as to why it would be named like that. That was 9 years ago and I still don't know BTW.

I'd say it gets the worst of both worlds, or maybe even worst of three worlds. It is long, it is cryptic, and it actually leads you down the false path of trying to guess why jeans and why they're blue.

I mean if you go with cryptic then at least call it something short and obviously cryptic. "Chrome" good, "VersatileGopher" bad.

PS Yes I know that Chrome actually has an explanation, but it does not sound like it means something that you could guess if you thought hard enough. I'm also not criticizing Ubuntu release names because the context is obviously different.

Re: Software component names should be whimsical and cryptic

#15
post #7

If you went down the hell hole of microservices please do give descriptive names to services.

I think the point still somewhat stands. Imagine a “UserProfile” service. It’s accessed from everywhere to show the handle name, address, icon etc. of your user. Your application grows and your users want way more customization, now they get personas and avatars and can show different profile to different people. Those are full of breaking changes that you want to isolate from the legacy “UserProfile”, how do you nam…

UserProfile2

Re: Software component names should be whimsical and cryptic

#16
This reminds me of a "problem" we had in a code base that we maintained. It was a test framework written (and I use the term loosely) in perl. Someone wrote a throwaway script which later grew like a mould into a "tool" that was used by a large business group. None of the maintainers (including myself) knew perl properly. Of the 8k odd lines, 5k was a single function descriptively called `run`.

All the variables were global since there were not functions to pass things into and we had a problem similar to what the OP posted about using variable names that someone else might be using somewhere else. One thing we needed was `machine_type`. There were some references to `MachineType` and `machine_type` and `machineType` so, a colleague decided to use the name `MaChInEtYpE` to make it unique. For all I know there are still people who trip over themselves on the keyboard typing this while maintaining it.

Re: Software component names should be whimsical and cryptic

#17

Aesthetically, at this point descriptive names almost look unprofessional, or at least quickly made. If you call your thing "ui-state-syncer" I'm going to suspect it's not really a big budget mainstream thing. If it's called Vue, I'm going to think it's big enough that someone thought it was worth it to spend an hour thinking of names. It was intended to get big. This isn't some minimal internal thing for one specifi…

As a counter example, there are plenty of successful projects/brands with highly descriptive names: TypeScript, RHEL, GitHub, AWS, GraphQL, HAproxy, Sendmail, QuickBooks, …

Re: Software component names should be whimsical and cryptic

#18
post #7

If you went down the hell hole of microservices please do give descriptive names to services.

I think the point still somewhat stands. Imagine a “UserProfile” service. It’s accessed from everywhere to show the handle name, address, icon etc. of your user. Your application grows and your users want way more customization, now they get personas and avatars and can show different profile to different people. Those are full of breaking changes that you want to isolate from the legacy “UserProfile”, how do you nam…

> Those are full of breaking changes that you want to isolate from the legacy “UserProfile”, how do you name your new service ?

Sound like it's better to make a new service. Isn't that the point of Single Responsibility concept?

Re: Software component names should be whimsical and cryptic

#19
I hereby dub this "The Protectiva Paradigm" - an injunction to name things whimsically, not descriptively because a) its fun and b) the function of the thing changes so "give yourself wiggle room".

The name itself comes from Dune, where the Bene Gesseret Missionaria Protectiva is itself whimsical (on some level) and cryptic. https://dune.fandom.com/wiki/Missionaria_Protectiva

Re: Software component names should be whimsical and cryptic

#20
post #15

Earlier quoted context omitted.

I think the point still somewhat stands. Imagine a “UserProfile” service. It’s accessed from everywhere to show the handle name, address, icon etc. of your user. Your application grows and your users want way more customization, now they get personas and avatars and can show different profile to different people. Those are full of breaking changes that you want to isolate from the legacy “UserProfile”, how do you nam…

UserProfile2

NewUserProfile, obviously :-)
Post reply on HN