logoalt Hacker News

Programmers and software developers lost the plot on naming their tools

301 pointsby todsacerdotiyesterday at 6:06 PM394 commentsview on HN

Comments

denysvitalitoday at 7:29 AM

Is it just me or the website is completely unreadable? Black text on a dark-gray background

throwaway290today at 5:16 AM

> We’re using Viper for configuration management, which feeds into Cobra for the CLI, and then Melody handles our WebSocket connections, Casbin manages permissions, all through Asynq for our job queue

Would it be better if it was this:

> We’re using ConfigurationManager for configuration management, which feeds into CLI for the CLI, and then WebSocketHandler handles our WebSocket connections, PermissionManager manages permissions, all through JobQueue for our job queue

I think the author makes the opposite point of intended)

lowbloodsugaryesterday at 11:04 PM

I have developed a language for writing structured queries. Based on this article, I have decided to call it SQL.

Rumengoltoday at 9:21 AM

This just feels like an old man yelling at clouds, trying to convince himself that the grass in greener in the other field.

> No chemist wakes up and decides to call it “Steve” because Steve is a funny name and they think it’ll make their paper more approachable.

This happens every day. In every scientific field there is a technical name and then the name everyone remembers. Nobody will understand if I speak about ENSG00000164690, but if I say it's the Sonic HedgeHog gene then it starts to make sense, because funny names are memorable.

> awk (Aho, Weinberger, Kernighan; the creators’ initials)

I'd like to see anyone try to defend how using the creator's initials in a tool name describe its function. Unless you researched the tool's history, there is no way to know that.

Yet another "why the tools I use are the best and the tools you use suck", with a weird focus on naming instead of function.

nathiastoday at 7:48 AM

why is this stupid ai-generated text on hn?

queenkjuulyesterday at 9:31 PM

End of the day you know what it means or you don't. I agree it's helpful when a name is descriptive, but there's no helping the fact that you're going to have to learn the names of things that aren't obvious. Purely utilitarian names would constantly collide.

I also think they overestimate how distinct terminology is in other fields. Even their example of the I-beam is also known as an H beam or an RSJ depending on who you're talking to. I don't find it hard to imagine a mechanic referring to one of their specialty tools by the name of its manufacturer, either.

Regardless, the battle was lost before it started. There has never been good consistent descriptive naming as standard in computing; there was no plot to lose.

bilsbietoday at 12:19 AM

I hate when the steal sci fi concepts and I get falsely excited hearing about say Dyson sphere cold fusion drones.

NotGManyesterday at 6:57 PM

>> Early programming languages followed similar logic: FORTRAN (Formula Translation), COBOL (Common Business-Oriented Language), BASIC (Beginner’s All-purpose Symbolic Instruction Code), SQL (Structured Query Language), I believe Lisp stands for list processing. The pattern was clear: names conveyed purpose or origin.

"names conveyed purpose or origin.": no they don't. If I use the authors example of the two people talking: as if saying "BASIC" instead of "Cobra" explained the meaning anything better to a person who never used BASIC.

I've been programming for 15 years+ and never used basic due to my age and I never know, until today, that BASIC stands for "Beginner’s All-purpose Symbolic Instruction Code".

Why? Because I don't need to know and it doesn't make the usage of BASIC anything different.

jameshartyesterday at 6:53 PM

> naming things after random nouns, mythological creatures, or random favorite fictional characters is somehow acceptable professional practice. This would be career suicide in virtually any other technical field.

Really? Have you specced a microprocessor lately? Seen what pharmaceuticals are called? How polymer compound materials get named?

show 2 replies
alienbabyyesterday at 7:02 PM

I have agreed with this for at least a decade. Name your things in a way related to what they do.

What does chef do? Garden? Pig? Burp?

Nonsense.

pvtmertyesterday at 10:49 PM

I agree for internal names but disagree for public software/external names.

I disagree for public/open-source software, because: So many kinds of software actually have good names. Yes they use mythical names but with the similar function or relatedness.

Meanwhile, I agree for internal names, because: So many (legacy) code I worked with had terrible naming. This goes beyond only the names themselves but also their capitalization or consistency. I kid you not, in a $FAANG company I saw "SpidermanActivity" and "BatmanActivity" on a system that is used by Tier-1 services' on-calls.

> (Although this thing was not a Tier-1 service, it was not also completely Tier-2 either, as it was actively supporting operations of Tier-1 services, depending on the incident, a downtime could cause significant problems...)

Imagine you are trying to make sense of a large system, which has maybe tens of dependencies and as much of dependents, you are also trying to remember which API was Spiderman and how it related to the business at all...

More on the naming conventions, the horrible case of acronyms (which spans outside of software engineering) and PMs creating polls/surveys for "fun names for our new shiny thing that does X but we don't wanna call it that".

Going even lower-levels, engineers themselves are not careful. I had way too many CDK stacks named with not only varying dash vs underscore differences, but also with subtle "case-sensitivity" differences.

Each year, I am solving issues of Java devs' issues. Some of being "but it works on my machine" type of problems. And significant percentage of that is most developers use a Mac & macOS. Hence the filesystem is case-insensitive by default. But the deployment target & CI being a Linux, filesystem is case-sensitive. As you can see here, The camel-case combined with inattentiveness can simply cause many hours of waste.

> It's a plague.

Yes, there is an AI slop, but there is also human sloppiness too. I am quite happy with LLMs/GenAI that it is able to catch and capture these and less prone to make such sloppiness in the first place. (As it being a "predictive-text engine", next word suggestion is a clone of existing copy of historically occurring words)

At the same time, amount of "hallucinations" for various acronyms are staggering. Obviously I cannot expect otherwise. Even as a human, if I am missing the context, I would be either confused or plug-in something I already know...

renewiltordyesterday at 11:45 PM

There is a place I agree with this: human anatomy. I find eileiter/oviduct superior to Fallopian tube.

wackgettoday at 12:25 AM

Modern web developers: "Oh I just use Gulp, Jenkins, Babel, Yarn, Bower, Grunt, Slurp, Vite, and Rollup"

Me: slowly backs away in disgust

keyboredyesterday at 10:30 PM

> The cognitive tax

> Every obscure name is a transaction cost levied on every developer who encounters it.

It’s not a mental burden, it’s a cognitive tax. Moreover it’s a transaction cost? Levied on people? Which loads their RAM?

Where’s the simple everyday English?

show 1 reply
randomNumber7yesterday at 10:12 PM

C

C post increment

See sharp

ModernMechyesterday at 10:06 PM

I can't call my new formula translation language FORTRAN because it's been taken, as have many other names. So now to avoid collisions, it's named after my cat.

show 1 reply
GMoromisatoyesterday at 10:16 PM

Once again proving that there are two very hard problems in software engineering: Naming things, cache invalidation, and off-by-one errors.

bighead1yesterday at 7:16 PM

counterpoints:

pascal, eiffel, ada, C, APL, dylan

show 1 reply
colechristensenyesterday at 7:14 PM

>There’s an odd tendency in modern software development; we’ve collectively decided that naming things after random nouns, mythological creatures, or random favorite fictional characters is somehow acceptable professional practice. This would be career suicide in virtually any other technical field.

Odd? Modern? I started working professionally in 2005 and everything had silly names. The DNS server was named athena instead of c302r5s1 or whatever building/room/rack/position name. I once rebooted a server that had an uptime of 12 years, so it had been running since 1993... it indeed had a silly name. Everything had silly names, usually types of things had a theme.

>Same thing applies to other fields like chemical engineering, where people there maintain even stricter discipline. IUPAC nomenclature ensures that 2,2,4-trimethylpentane describes exactly one molecule. No chemist wakes up and decides to call it “Steve” because Steve is a funny name and they think it’ll make their paper more approachable.

How about piranha? aqua regia? Up/Down/Strange/Charm quarks? Gluons? Like a third of the elements named after people or places.

Curium, Einsteinium, Fermium, Mendelevium, Nobelium, Lawrencium, Rutherfordium, Seaborgium, Bohrium, Meitnerium, Roentgenium, Copernicium, Flerovium, Oganesson -- I guess none of these people were named Steve, but you get the point

These tendencies are OLD and EVERYWHERE. IUPAC names are just a convenient way to serialize data.

anthkyesterday at 7:01 PM

- VTL-O2

- Forth

- Grep

- CVS (I'm not an American but you can relate)

- Clang

Altough MS products can be as opaque if not more. And let's not talk about IBM...

formula1yesterday at 6:51 PM

One issue with package naming is competition. One of the great things about OSS or software in general is people can take inspiration from other projects that do the same thing. Personally I've ran into deciding which casting library to use

- runtypes - https://github.com/runtypes/runtypes

- zod - https://zod.dev/

- ajv - https://ajv.js.org/

AJV and runtypes use the naming convention that the article suggestions. It's named is derived from how it's used. Zod on the other hand seems to come from left field.

Personally, I built a simple caster called "ShallowCaster" before choosing to move to a library as things got move complex but I think a problem is that as competition increases the "generic" naming becomes more difficult to find.

I suppose an option is to include the author name for each package such as "json casting from google" or "@google/json-casting" this way all packages can use the descriptive naming while not conflicting

marifjerenyesterday at 6:36 PM

There is actually a good reason not mentioned, not to name tools by their purpose:

- the purpose will change

Your "silicon-valley-bank-integrator" tool will eventually need to be updated to do something else.

Or your "login-page-config-service" tool may eventually do more than just logins.

Using gibberish or mythological names gives a nice memorable name that doesn't lead (or mislead) you to believe it does a particular thing which may or may not be correct anymore.

show 3 replies
ameliusyesterday at 9:52 PM

One more reason why Windows is superior to OS X.

show 1 reply
dist-epochyesterday at 10:01 PM

Irrelevant. LLMs know all the names. In 1 year they will be doing all the SSHing and terminaling.

Quickly: name the AVX2 instructions that the compiler emits for math calculations

bitwizeyesterday at 11:13 PM

> Same thing applies to other fields like chemical engineering, where people there maintain even stricter discipline. IUPAC nomenclature ensures that 2,2,4-trimethylpentane describes exactly one molecule. No chemist wakes up and decides to call it “Steve” because Steve is a funny name and they think it’ll make their paper more approachable.

Ummmmm...

https://en.wikipedia.org/wiki/List_of_chemical_compounds_wit...

"You sure 'bout dat? You sure 'bout dat?"

My favorite: there's a protein called "sonic hedgehog" that's essential to animal embryonic development. (All of the "hedgehog" family proteins would cause fruit flies to take on a spiky appearance when mutated, hence the name.) When chemists synthesized a drug that suppresses SHH protein's action, they named it "robotnikinin".

show 2 replies
IshKebabyesterday at 10:02 PM

Preach! The worst excuse I hear is "but if we have a meaningless name it can't become inaccurate later when the project changes!".

Uhm yeah. That's like saying "if stab myself to death now I can't die of dementia in old age!"

Edit: look, it's here! https://news.ycombinator.com/item?id=46237390

groby_byesterday at 7:10 PM

Wait till you work in a corporate environment, where Project Fuzzy Mustard triggered a violation of the ElastoFish metric in the Yellow Hills subsystem, leading to a Code Mild Lavender with a side of Pink Sprinkles.

show 3 replies
ohboynotthisyesterday at 11:55 PM

[dead]

casey2yesterday at 10:16 PM

LMAO ok dude, don't like it? fork it and change the name. The author has a DEEP misunderstanding of the science of human language, not surprised he's a Chomskyite.

Rule of thumb, disregard every post that uses the phrase "context switching"