Live data from Hacker News

Software component names should be whimsical and cryptic

medium.com

331–339 of 339 posts

Re: Software component names should be whimsical and cryptic

#331
post #17

Earlier quoted context omitted.

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

What is descriptive about "RHEL" or "AWS"?

AWS was useful until it became to mean "about 9000 totally unrelated products, each of them having its own name, sometimes very non-descriptive". But at least you know it's a service from Amazon, sometimes you don't even get that from the name.

Re: Software component names should be whimsical and cryptic

#332

Earlier quoted context omitted.

This is a great diagnosis. I hate to assume things, but sometimes I almost get the impression that some software developers are pulling an "I am very smart" move by making things more cryptic than they need to be.

The ones who do that I've found to be less experienced. Once they've had to deal with their own bullshit, they tend to grow out of it. Even you don't know what that code you wrote a year ago is doing.

Yeah, the first couple of "I wish I could go back in time to my past self and punch that smug asshole right in the mouth for being too smart for my own good" moments cure that out of you, usually.

Re: Software component names should be whimsical and cryptic

#333

Think of the new people you hire! It is difficult enough being onboarded to a new company without having to learn two dozen names for random services and libraries. I feel sorry for each batch of Interns that start at companies that do this. Not only were the Interns learning how to build software but they also had to learn random names that they would not be able to use in their next placement. What is easier to und…

Except as the article says, names tend to stick, scopes don't. This PaymentService grew into fraud detection. So the new hire will be even more confused. Asking "What does Picard do?" is natural, where a new hire might have trouble asking "What does the PaymentService do?"

I don't think somebody would be more confused to learn that payment service also deals with fraud (which is something a lot of people are aware of - every payment service on the face of the planet has now warnings about fraud) than having to deal with "Picard is not connecting to Bilbo because Legolas is refusing to pass KrumpleSnitch to Kthulhu". In fact, I'm not sure it's humanly possible to be more confused than dealing with something like that.

And if you having a payment system that starts doing something payments systems traditionally don't do - like, I dunno, predict weather? - then you have a design problem and should refactor your system so your payment system doesn't do that anymore.

Re: Software component names should be whimsical and cryptic

#334

There is a real world example of a complex, critical, domain that has followed this approach religiously for years: prescription drugs. Every prescription drug is given an essentially nonsense non-proprietary (generic) name, with only broad categories identified by a stem (drugs ending in "mab," e.g., are monoclonal antibodies, those ending in "vir," are anti-virals). Names that are suggestive of medical target or us…

> well, let's just say, you're far more likely to tell someone you're on Lipitor (a brand name, for marketing) than "atorvastatin".

The part missing here is that there's a doctor in the middle that knows about the "atorvastatin" part, and that's usually who prescribes you the Lipitor.

Another part is that the name should be a) unique, so you could make it a trademark, b) distinct, so the patient won't tell their other doctor they take a wrong drug (less important now with electronic databases but still important) and c) shouldn't mean anything to the patient, because they aren't the one deciding whether to take it or not - but they will be the ones taking it.

That's usually not the case with software packages. Of course, sometimes it is the case that the manager decides to buy software because it sounds good without technically understanding what it actually does - but it's not a common case, especially for more technologically complex software. So the naming considerations here are very different.

Re: Software component names should be whimsical and cryptic

#335
post #89

Perhaps just give descriptive names and then change it when the scope changes?? "Problem" solved! Afraid of losing stars/dlds on the repo/etc? Make it clear in the Readme where the new project is. Have warnings et al for NPM projects. Ask npm/GitHub to allow name changes with redirects. This proposed "solution" is just bad for many reasons: You need to delve into the Readme to find out what it does. Imagine you're se…

Renaming is work that doesn't improve the functionality.

Only is you see "functionality" as "code being run in production". A lot of things then don't improve "functionality" - design documents, comments, use cases, tests, documentation, tutorials, etc. Proper software project still does all of it.

Re: Software component names should be whimsical and cryptic

#336

Earlier quoted context omitted.

> Whimsical project names fall within a well-understood and used convention. Boy, I wish! I 100% second TFA when I tell you: There are a lot of really really boring people out there that just don't get it. They think "Product Data Exporter" is the perfect project name.

I remember how confused I was when I found out a program exists called "FileMaker". Curious how that name was chosen.

Your comment really gave me pause. I've used FileMaker for many years but never gave the name that much thought.

I can't say how the name was chosen. But, I believe I understand the justification for it. It is pretty straightforward once the metaphor is clear. The files it is making are the type of files that go into filing cabinets, not the files on a computer. Early versions of the software had a logo/picture of a building that was a giant filing cabinet and the app logo has usually been a filing folder.

The name makes sense in that isn't about making files on a computer but to help small business convert physical files found in filing cabinets into digital ones in wysiwyg database.

I remember finding "Photoshop" nonsensical at first because I associated a shop with a place to go buy things and it only made sense once I made the association that cars and such are taken to the shop for repairs.

Re: Software component names should be whimsical and cryptic

#337
post #324

Earlier quoted context omitted.

I'm talking about the kind of pushback that happens when we get something seriously wrong and a significant subset of the community gets riled up about it. In the links you've listed, the one example that comes close to that is the pushback against how I moderated the QE thread. In that case I realized I'd made a mistake, and made a bunch of changes. Backing down, acknowledging the mistake, and changing direction is…

What annoys me is your continued refusal to acknowledge the unfair lack of recourse available for someone who disagrees with a decision you’ve made, and your flippant attitude around making those decisions when it comes to people you don’t seem to respect. You’re hiding your behavior behind the mob mentality that punishes dissent, claiming that a shallow dismissal response is valid because the HN mob has attacked wit…

The very fact that a forum moderator is celebrated like a hero (who never says out loud that there is actually a team in existence), and a guy who called Microsoft dead as a genius next only to gos should tell you all you want to know about the average level of discourse here and quite frankly going against the flow is something I'll have to fault you with at this point since this place is pretty much conformation central.

Re: Software component names should be whimsical and cryptic

#338
post #334

There is a real world example of a complex, critical, domain that has followed this approach religiously for years: prescription drugs. Every prescription drug is given an essentially nonsense non-proprietary (generic) name, with only broad categories identified by a stem (drugs ending in "mab," e.g., are monoclonal antibodies, those ending in "vir," are anti-virals). Names that are suggestive of medical target or us…

> well, let's just say, you're far more likely to tell someone you're on Lipitor (a brand name, for marketing) than "atorvastatin". The part missing here is that there's a doctor in the middle that knows about the "atorvastatin" part, and that's usually who prescribes you the Lipitor. Another part is that the name should be a) unique, so you could make it a trademark, b) distinct, so the patient won't tell their othe…

> Another part is that the name should be a) unique, so you could make it a trademark, b) distinct, so the patient won't tell their other doctor they take a wrong drug (less important now with electronic databases but still important) and c) shouldn't mean anything to the patient, because they aren't the one deciding whether to take it or not - but they will be the ones taking it

a) The official (that is, generic) drug name is guaranteed to be unique, but they cannot be trademarked. That's one part of why drugs are typically marketed under names other than the official name ("Lipitor" is a market name, "atorvastatin" is the actual drug name).

b) Most patients don't know the names of the drugs they are taking, and what they do know are as often as not, not the official name, but a marketing name. Ask any doctor why they ask patients to bring their prescriptions with them to office visits (hint: because in m any cases, it's the only way to get an accurate picture of what a patient is actually taking.)

c) I don't follow this at all. It's a bad think that I know that the three drugs I take are a diuretic, a beta blocker, and an angiotensin receptor blocker?

I think it's interesting to compare drug naming with other medical interventions. We don't call a Laparoscopic Cholecystectomy a "gandalf" or "vartafoprodson." We use medically meaningful names. Why is "losartan" better than "angiotension receptor blocker 95-1" (first ARB approved in 1995)?

Re: Software component names should be whimsical and cryptic

#339
post #334

Earlier quoted context omitted.

> well, let's just say, you're far more likely to tell someone you're on Lipitor (a brand name, for marketing) than "atorvastatin". The part missing here is that there's a doctor in the middle that knows about the "atorvastatin" part, and that's usually who prescribes you the Lipitor. Another part is that the name should be a) unique, so you could make it a trademark, b) distinct, so the patient won't tell their othe…

> Another part is that the name should be a) unique, so you could make it a trademark, b) distinct, so the patient won't tell their other doctor they take a wrong drug (less important now with electronic databases but still important) and c) shouldn't mean anything to the patient, because they aren't the one deciding whether to take it or not - but they will be the ones taking it a) The official (that is, generic) dr…

I am being regularly asked by my healthcare provider which drugs I take, on each visit's checkin. They'd be happy to have the Rx, but in many cases the patient doesn't even have one - it's buried somewhere "in the system", and if you change providers, you don't get anything from the old one - hopefully the new one knows how to talk to the old one to get the info. So there's nothing to "bring" to the office.

> It's a bad think that I know that the three drugs I take are a diuretic, a beta blocker, and an angiotensin receptor blocker?

No, it's not a bad thing that you know that, it's just about 99.999% of people have no idea what a "beta blocker" is. So for them that information is completely useless, moreover, if they plan to act on it, it may be dangerous, because they may confuse "beta blocker" with some other "blocker" and make some important decision based on that, without understanding the real consequences. If you are knowledgeable enough to know what "beta blocker" is and how it works - sure, it's useful for you, but vast majority of people don't know that and never will.

Post reply on HN