Programmers and Software Developers Lost the Plot on Naming Their Tools
Key topics
The naming of software tools has taken a humorous turn, with programmers and developers often unwittingly creating awkward or risqué names that spark amusing misinterpretations. Commenters share hilarious anecdotes of explaining "wiki" to a boss, abbreviating "analytic combinatorics" to "anal comb," and encountering libraries like "Testacular" and "Upskirt." The thread erupts into a series of chuckles as people recall their own cringe-worthy moments, from requesting LaTeX installations to abbreviating "syntactic analyser" to "analsyn." Amidst the laughter, some commenters nod in agreement that certain names, like "voluptuous," can be distracting or concerning.
Snapshot generated from the HN discussion
Discussion Activity
Very active discussionFirst comment
17m
Peak period
89
0-3h
Avg / period
14.5
Based on 160 loaded comments
Key moments
- 01Story posted
Dec 11, 2025 at 1:06 PM EST
25 days ago
Step 01 - 02First comment
Dec 11, 2025 at 1:23 PM EST
17m after posting
Step 02 - 03Peak activity
89 comments in 0-3h
Hottest window of the conversation
Step 03 - 04Latest activity
Dec 13, 2025 at 3:52 AM EST
23 days ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
- 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.
Idk, renaming things that shipped is a PITA.
Say you wanted to rename `fish` to `a-decent-shell`. - Packages in all distros would need to be renamed. - Configuration for all systems using/having fish would need to change. - Scripts would need to change, from the shebang to the contents if necessary. - Users would need to understand that they now need to search documentation using the new name. - Documentation would need to be migrated to new domains, sed-replaced, and reviewed.
All this migration would require some synchronized, multi-step process across multiple distros and deployments.
I'd rather have a name that works as an Id.
You just made my argument. Renaming is hard precisely because you shipped with the wrong name. That's why you should get it right from the start.
Every cost you listed [distro packages, configs, scripts, docs, domain] exists whether you rename to something descriptive OR another random word. The migration pain is identical. "Fish" → "decent-shell" costs the same as "fish" → "zephyr." My argument was that this renaming won't be necessary if you started by picking up the proper name at the first place, and it's very unlikely to have the need to rename it. We shouldn't be optimizing to avoid renaming. That's trading a rare maintenance event for permanent cognitive overhead.
No, it's just because the goddamn string Id appears in way too many places and you can't sed-replace the entire world at once. It doesn't matter if the string was cute, fancy, or you found it to be a good name.
> you should get it right from the start.
This is also optimizing for not renaming, just in a different way; also, you just said renaming was cheap, so which is it?
Project names should be unique enough to allow them becoming their Id, - It allows to find the project. - It allows the project to change, extend it's scope or narrow it.
Having an Id is really important, making that Id related to the project's original intention is nice (as long as it doesn't change enough that it becomes misleading).
Indeed. This helps me know that I'm using a database more modern than Ingres. I chose not to use Oracle or SQL Server because they might have predated Ingres.
Just one question: what's Ingres, and why do I care about it? Of course, I don't, which makes Postgres no more useful of a name than "fluffnuts" or "hooxup". That said, over time, I've come to like the name Postgres.
https://en.wikipedia.org/wiki/PostgreSQL
My point is that almost everyone refers to it as Postgres, because they do not actually value the descriptive nature of "PostgreSQL".
Also because the original name was, just, "Postgres". Stylized as POSTGRES.
PostgreSQL is an awful neologism (OK it's been around for a while now), and I honestly thought that they had decided to switch back to the original, and obviously superior, name. I recall it being under discussion several years back, and I am surprised it did not happen.
(At least that's how I remember it as I was "why name a language like that when you know it won't be searchable")
Namespacing, sure. But is "We use gh:someguy/openai/llm-streaming-client to talk to the backend" (x50 similarly cumbersome names in any architecture discussion) really better than "We use Pegasus as our LLM streaming client"?
"Which one?! There are seven popular projects with this exact name on GitHub that have >100K stars; which particular one do you use?"
This is one of those classic examples where things you've already learned are "obvious and intuitive" and new things are "opaque and indistinct".
We can go back and forth with specific examples all day: cat, ls, grep, etc are all famously inscrutable, power shell tried to name everything with a self-documenting name and the results are impossible to memorize. "llm-stream" tells me absolutely nothing without context and if it had context, pegasus would be equally understandable.
How did they pass by "IngresSequel"?
> Even when engineers get creative, there’s logic: a butterfly valve actually looks like butterfly wings. You can tell how the name relates to what it actually defines, and how it can be memorable.
Editor MACros still has a logic. It isn't just random.
Picking a specific butterfly valve randomly from an internet search, I find one called the FNW FNWHPA1LSTG24.
Product types and categories get generic names, specific products often get weird names. It's true in just about every field.
Emacs can also be taken to be a category of editors. There are multiple emacs-derived editors.
Combine things? Nope. Its purpose is to separate things...
Its not just the software industry.
It's not actually badly named.
That's why I chose that specific example! What fun would there be in you not having to think about it?
There are some exceptions, but the agriculture industry has actually gotten pretty good at this. S7 600: 7 series, class 6. For tractors, the John Deere 8R 230 indicates large frame row-crop with a 230 HP engine.
Software doesn't generally encode product attributes into the name the way 230 means 230 horsepower and such, but that's because software doesn't really have things like that to put in the name in the first place. Most software doesn't have specific variants like that, and software that does is almost always differentiated on feature set rather than numbers.
It's not a perfect system. Before the S6xx was the 96xx/97xx/98xx series, so while you can find a version number in there, it is not always sequential. Although that's nothing new. Windows 3 turned 95. iOS 17 turned 26. You get the picture.
"Combine harvester" showed up in some places later where there was a need to address the confusion "combine" presented (what do you mean it separates things?), but "combine" remained what everyone actually called it in practice. Harvesters are for forage.
"Combine harvester" came later, presumably because "combine" was confusing. Although I've never heard anyone call it "combine harvester". Harvesters are for forage.
https://google.com/search?q=Eight+Megabytes++And+Constantly+...
Hmm, this looks like a nonsense word, but sometimes words look like nonsense when you write them backwards, maybe it's a scame?
Really? Have you specced a microprocessor lately? Seen what pharmaceuticals are called? How polymer compound materials get named?
In Pharmaceuticals, Doctors prescribe "sildenafil," not "Viagra." The generic name describes chemical structure. Brand names are marketing for consumers, not professional nomenclature.
Mythology in chemistry/astronomy has centuries of legacy and connects to human cultural history. Calling an element "Titanium" after Titans carries weight. Calling a SQL replicator "Marmot" connects to... what, exactly? A weekend at the zoo?
Depends on the location, I guess. I've had doctors prescribe trade names, which I don't understand if there are alternatives with the same dosage, route of administration and similar inactive ingredients. Not even talking about the "do not substitute" prescriptions which are also based on dubious information most of the time.
As for "sildenafil" - I don't think generic names are usually meaningful. Usually the suffix relates to the category of the drug, but the first letters seem as random as the letters in trade names. I could imagine a world where the generic name is viagrafil and the trade name is Silden.
This is like having the first tool of a particular type come along and call itself ‘Mosaic’ and then someone makes another tool of the same kind and calls it ‘Mozilla’.
Medical and chemical terminology is built on the history of latinate terms and compounds whose simples follow the same pattern. Latinate terms, I might add, which reference mythical, fantastical, or unusual things. Consider the planet Mercury, for example. The only difference? The centuries of time it took for scientific evolution to turn these unique names into a taxonomical language with its own logic.
There is no such taxonomy for computer science. But in the course of the evolution of such a taxonomy, it will be built out of the mess of names like the ones we like to use for our programs and tools like Rust, Ocaml (notice combination of interesting and technical), git, npm, bun, ada, scipy, etc etc.
We have an internal name and our product name. Internal names start as something that describes the project/repo/tool. Then within 18 months the name no longer makes sense so we rename it to some random name - state names, lake names, presidents, mountains, etc. It's just a placeholder.
The public facing product name is a compromise of marketing, trademark, and what gets approved by the CEO. Even the company name might change in startup world. No joke: the startup next door had to change their name because it was too masculine, and they realized more than half their projected market was women.
Well so in the beginning we only supported email notifications which is why it's called EmailServ but over time it grew into a robust and pretty general queueing service so now it handles all our background task processing and sending emails is actually handled by EmailWorker.
It is an unavoidable reality that knowing something's name gives you very, very little information about what that something is. That's what sentences are for.
- 'Microservices' sketch by Krazam
https://www.youtube.com/watch?v=y8OnoxKotPQ
Amiga famously had a custom ASIC called "Fat Gary" https://en.wikipedia.org/wiki/Amiga_custom_chips
I really could go on about this. Names are only useful for distinct identification. They need to be distinct within their domain. Otherwise they're just an index into a list.
Boaty McBoatface? officials overrode the vote to name it after David Attenborough. The actual research submarine got the joke name. Again, this proves my point.
Fat Gary was an internal chip designation that never needed to be public-facing. Perfectly fine.
"Names are only for distinct identification" if efficiency was not at a question. Why use worse identifiers when better ones cost the same?
What is it with a number of blogs recently that have turned off normal right-click behavior, and probably related, the scroll behavior is awful.
This is one, and as soon as I scroll on my work high powered Macbook and it's not smooth, I'm out.
It’s interesting to me that the author doesn’t view themselves as a consumer in this relationship, that they think are immune to marketing, and that what they are advocating for isn’t just another marketing tactic.
My experience with areas that use functional names to describe things is that you end up in a sea of acronyms (the functional-based names are a mouthful!) and you end in an arguably worse situation (did you say ABDC or ADBC, those are two completely different things).
Without some central control of names though, even "cute" ones tend to converge on the same handful eventually: Phoenix (and other classical allusions Plato's Cave, etc.), Keymaster/MCP (and other 80s childrens' movie references), Simpsons characters, Star {Trek,Wars} references. These are all attractors for the kind of people that tend to be in IT/SWE even if the actual namespace is much larger.
One area of the sciences does partly use names like this, and that is biology. Biologists do sometimes name a species after a famous person, as in the louse Strigiphilus garylarsoni:
https://en.wikipedia.org/wiki/Strigiphilus_garylarsoni
[1]: https://github.com/andrewrk/poop
pascal, eiffel, ada, C, APL, dylan
> InfoWorld: As I understand it, JavaScript started out as Mocha, then became LiveScript and then became JavaScript when Netscape and Sun got together. But it actually has nothing to do with Java or not much to do with it, correct?
> Eich: That’s right. It was all within six months from May till December (1995) that it was Mocha and then LiveScript. And then in early December, Netscape and Sun did a license agreement and it became JavaScript. And the idea was to make it a complementary scripting language to go with Java, with the compiled language.
but then:
> Our field deserves better than a zoo of random nouns masquerading as professional nomenclature
Okay? So is this professional nomenclature or the work of community builders?
I think: everyone should code, it should not be an elitist profession, we don't need to all accommodate busy professionals, i'm fine with corporate users having to say my stupid package name at work.
> Your fun has externalities. Every person who encounters your “fun” name pays a small tax. Across the industry, these taxes compound into significant waste
Someone please get this guy a bong rip.
This article would certainly disagree with you:
https://en.wikipedia.org/wiki/List_of_U.S._Department_of_Def...
> the Golden Gate Bridge tells you it spans the Golden Gate strait.
Is that even a meaningful distinction? Does anyone think, "Gee, I'd really like to cross the Golden Gate strait?" or do they think "I want to get to Napa?".
> The Hoover Dam is a dam, named after the president who commissioned it, not “Project Thunderfall” or “AquaHold.”
It was actually called the "Boulder Canyon Project" while being built, referred to as "Hoover Dam" even though finished during the Roosevelt administration, officially called "Boulder Dam", and only later officially renamed to "Hoover Dam".
The fact that Herbert Hoover initiated the project tells you nothing meaningful about it. Would "Reitzlib" be a better name than "Requests"?
> If you wrote 100 CLIs, you will never counter with a cobra.
But out in the real world, you could encounter a Shelby Cobra sports car, Bell AH-1 Cobra chopper, USS Cobra (SP-626) patrol boat, Colt Cobra handgun, etc.
> 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.
When you open your medicine cabinet, do you look for a jar labeled "acetylsalicylic acid", "2-propylvaleric acid", or "N-acetyl-para-aminophenol"? Probably not.
It's a bad sign when all of the examples in an article don't even agree with the author's point.
We can argue about namespace pollution and overly long names, but I think there's a point there. When I look at other profession's jargon, I never have the impression they are catching Pokemon like programmers do.
Names are just names. It’s nice if they are kind of unique and have no collisions.
But I agree that it's unclear what a good naming culture would look like for programmers.
[1] https://en.wikipedia.org/wiki/Astronomical_naming_convention...
You're misremembering. It's the "Windsor V8." Or more specifically the "4.8L Windsor Ford V8."
The Ford 351 is a bit special because there were two different engines made by Ford in the same time period with the same displacement, so they tacked on the city they were manufactured in (Windsor or Cleveland).
Which is really funny considering he talks about emacs.
Nothing stops the author from using "Libsodium crypto lib" and "Zephyr RTOS".
The author is just wrong. Chemistry is fairly jam-packed with various cutesy names either to amuse the authors or because they’re attempting to make an algorithm memorable to the field.
Off the top of my head: - SHAKE and RATTLE: Bond constraint algorithms. - CHARMm: An MD package but you’d never guess it from the name - Amber: Another MD package that you’d never guess from the name. - So so many acronyms from NMR: COSY, TOCSY, NOESY
The list goes on and on and permeates most of the subfields in one form or another.
If you want really cutesy names, though, look in molecular biology.
Lawrencium has entered the chat.
Chicago even had the world's first nuclear reactor, but no luck.
[1] https://en.wikipedia.org/wiki/Hedgehog_signaling_pathway
and at least that exposition makes more sense then the "fountain of youth brain juice" in the sequel, when the humans can literally reincarnate themselves without having to cross interstellar space to do it.
It's funny, because I'm one to use movie references in casual conversation like it's nothing, yet my use was definitely not in this case
I think you mean Unununium.
Einstein doesn't tell me anything, unlike Müller (miller) and Schmied (Schmiede = Forge)
Also SHAKE and RATTLE describe the motion-simulation in the algorithm.
Acronyms are abbreviations for meaningful names.
Most of my examples are from computational chemistry, which is software, but (historically) written by chemists.
As one of those chemists (at least before my current work), I feel somewhat qualified to comment on my field and whether it always names things seriously or not.
But if you look around, fun terms are everywhere in chemistry or chemistry-adjacent fields. For example, PALM and STORM (from fluorescence microscopy) were almost certainly chosen because they were easy to remember.
> Also SHAKE and RATTLE describe the motion-simulation in the algorithm.
Not really. SHAKE and RATTLE are bond constraint algorithms to avoid simulating the fast degrees of freedom, typically in solvent.
In molecular dynamics, your time step is effectively set by the fastest degree of freedom (there’s a relationship with the Nyquist theorem here), so it pays to freeze out the vibrations of the O-H bonds in water when you’re simulating a larger system. SHAKE and RATTLE effectively freeze the bond and angle distances near equilibrium while allowing some relaxation.
The rest of the degrees of freedom are typically integrated with a larger time step using a method appropriate for the simulation ensemble (eg: one of the Verlet integrators, a Langevin integrator, etc).
> Acronyms are abbreviations for meaningful names.
Acronyms like XPS, EPR, NMR, etc are like that: dry, short, and meaningful.
But there are a lot that were chosen because they were entertaining to the authors or because they are easy to remember. Even in a technical field, marketing matters.
Or words are found to match a snappy name, such as crispr
> When Mojica and Jansen struck up a correspondence, they began tossing around catchy names for the patterns, and on Nov. 21, 2001, they settled on CRISPR—an acronym for Clustered Regularly Interspaced Short Palindromic Repeats.
https://nautil.us/the-unbearable-weirdness-of-crispr-236685/
My own field Materials Engineering has:
"Hardness", "Toughness", Resilience", etc. which all describe different properties.
"Ferromagnetic" or "Ferrimagnetic best believe those are different.
By far the worst aspect of the nerd ecosystem is the odd belief that pops up every so often that names should matter. In every ecosystem, there is usually some odd idea that it is only in their world that people abuse this.
Just skim through that list of things that are unexpectedly named after people. Sure, you can get upset about Shell's sort not having any relation to shells. Or Bloom's filter not having a phase where the data "blooms" into use. But you would have the same issue with French drains. Or how gaslighting has nothing to do with lighting things on fire using gas and the affect that will have.
Honestly, I think this would be a fun list to just keep going. Akin to the old Chuck Norris joke generators.
- 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...
I'm charmed by the lack of truth in this beautiful sentence. Top of mind for me, at least.
The adjustable wrench is named straightforwardly, but most English speakers know it as the monkey wrench. In some European languages its name translates to "French wrench" or "the French" (as in: French person), in others it's "English wrench" even though those two were originally just variants of the adjustable wrench.
Point is, all those goofy names are brands that may or may not stick around for longer and the terms for what they actually do are more descriptive.
My favourite example: BlueJeans. A videoconferencing platform. Why is it named like that? We might never know, but most likely partly to stand out, but there's a clear distinction between the brand name and the more descriptive terms used to tell what it does.
The examples given for real world things The Golden Gate Bridge and The Hoover Dam, are instances of things. Things that the class of which they belong is old enough that Dam and Bridge are not new words.
If you are making new things you need a new name. Software is inherently new because computers have been in wide use for only a few decades. Instances of software rarely even get names, just numbers, with project names or nicknames attached. I'd be willing to bet both The Golden Gate Bridge and the Hoover dam had project names or nicknames.
What does chef do? Garden? Pig? Burp?
Nonsense.
> Name your library after what it does. Use compound terms. Embrace verbosity if necessary. http-request-validator is infinitely superior to “zephyr” when someone is scanning dependencies at 2 AM debugging a production incident.
- 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
>Reserve the creative names for end-user products where branding matters. For infrastructure, tools, and libraries, choose clarity. Every time.
Ah yes the software I am giving away for free must go easy on the minds of the poor VCs and business drones who are extracting value from it.
My subjective view is that names should be exotic, flamboyant, unique and generally wild when it comes to tools. sticking your company's name as a prefix into everything (or the flagship product's) is confusing and only hurts you.
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.
"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.
I'm not sure how the author came to this conclusion.
At any rate, programmers aren't any worse about this than mathematicians. Just replace [fictional name] with some foreign word or philosophical term that's justified with the most insane mental gymnastics you've ever heard of. Given some historical native speaker of Latin, do you think they're going to know what a matrix is for? No, because the word means "uterus". There is no connection to "tabular shorthand of linear transformations."
I think it's clear the author is writing this to vent frustration, but I think they've misidentified the actual problem:
> http-request-validator is infinitely superior to “zephyr” when someone is scanning dependencies at 2 AM debugging a production incident.
I read this and my jaw hits the floor at the idea there are people out there debugging codebases without even knowing all of the dependencies. That's absolutely insane and horrifying, overshadowing pretty much the entire blog post Does anyone else live like this? How do you tolerate these conditions? Why would you tolerate these conditions?
Krazam has excellently parodied this unserious naming indulgence of programmers[1]. "See, Bingo knows everyone's name-O. So we get the user ID from there." Racoon, Wingman, EKS (Entropy Chaos Service), RGS, Barbie Doll, Ringo-2.
1. https://youtu.be/y8OnoxKotPQ?si=QkI-TPStI9I4RtAB&t=33
359 more comments available on Hacker News