> 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)
I have developed a language for writing structured queries. Based on this article, I have decided to call it SQL.
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.
why is this stupid ai-generated text on hn?
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.
I hate when the steal sci fi concepts and I get falsely excited hearing about say Dyson sphere cold fusion drones.
>> 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.
> 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?
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.
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...
There is a place I agree with this: human anatomy. I find eileiter/oviduct superior to Fallopian tube.
Modern web developers: "Oh I just use Gulp, Jenkins, Babel, Yarn, Bower, Grunt, Slurp, Vite, and Rollup"
Me: slowly backs away in disgust
> 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?
C
C post increment
See sharp
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.
Once again proving that there are two very hard problems in software engineering: Naming things, cache invalidation, and off-by-one errors.
>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.
- 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...
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
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.
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
> 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".
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
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.
[dead]
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"
Is it just me or the website is completely unreadable? Black text on a dark-gray background