Live data from Hacker News

Programmers and software developers lost the plot on naming their tools

lr0.org

521–530 of 563 posts

Re: Programmers and software developers lost the plot on naming their tools

#521
post #11

If the community followed the author's guidance, we would have names like "Generic LLM wrapper 690" ("GLW690" if following the early programming language conventions.) or "Github clone with a different ideology 11"

Not at all. You don't name by category, you can name by function or approach. PostgreSQL isn't "Generic SQL Database 47" it's the successor to Ingres (Post-Ingres-SQL). If your "LLM wrapper" does nothing distinctive worth naming, maybe don't publish it. But if it specifically handles streaming, call it something like "llm-stream-client." If it focuses on prompt templating, "prompt-template-engine." The name encodes t…

> PostgreSQL isn't "Generic SQL Database 47" it's the successor to Ingres (Post-Ingres-SQL)

How did they pass by "IngresSequel"?

Re: Programmers and software developers lost the plot on naming their tools

#522

One more reason why Windows is superior to OS X.

What are some examples of names that Windows does better than macOS and vice versa? I've always though iOS naming was pretty logical - Calculator, Notes, Messages, Mail, Health, Clock, Calendar, Photos, Contacts, Maps, Settings. They're all named as if they're the reference implementation and everything else is 3rd party. Under Windows we have Notepad, Paint, Terminal / Command Prompt. Word and Excel are likely house…

Windows is pretty bad, but I have to give the dark pattern award to macOS for being overbloated with services. Especially if you're an average Joe; wouldn't you assume that AppleTV plays your video files, and Apple Music focuses on playing your MP3s? How are you supposed to know that Quicktime is the less intrusive option? It's hidden in a glut of inscrutable, outdated apps like Automator, 3D Chess and the graphing calculator everyone opens by accident. At least Windows knows to hide the cruft apps from the Start menu.

It's gotten to the point with macOS that I don't think my parents could use it. They use Windows just fine without knowing the difference between Terminal and Command Prompt, but macOS would be a mnemonic shoggoth too far.

Re: Programmers and software developers lost the plot on naming their tools

#523
"“We’re using confman for configuration management, which feeds into climan for the CLI, and then wsconn handles our WebSocket connections, permgr manages permissions, all through jqueue for our job queue”"

This is better? Is this Highlander, there can only be one of each thing? What about variations of those tools... cman2? confman? cfigmgr? Naming projects, and hence tools, is often just as much about namespacing as meaning. There _will_ be more than one of most non-trivial tools/projects, and not every configuration manager can be called "confman" (if that's even really a "good" name").

And part of it _is_ connecting utility to an "appelation": calling "your MIT-licensed file parser with 45 GitHub stars" just "parser" practically gaurantees you'll never get that 50th star, because there are already a bunch of "parser" projects and there is no reason for someone to ever find yours.

"Each one demands tribute: a few seconds of mental processing to decode the semantic cipher. Those seconds accumulate into minutes and effort, then career-spanning mountains of wasted cognitive effort."

No they don't, because you're _not_ doing that processing every time. Just like "grep" makes perfect sense _now_ because you've used it forever, once you're working on a project then something like "cobra" immediately maps to "the cli library". It might take a secon the first couple times, but humans are good at this internalizing kind of abstraction, and programmers are damn amazing at it.

The unix tools example is really terrible. "I used grep to examine the confs in etc and then cat to combine them before processing with sed and awk and tarballed the output to be curl'ed to the webdav server." Those are only intuitive because you know them already. "sed" for "stream editor"? Come on, it's not called that because it's a good name. Why not strmed, or even streameditor?. Simple, actually intuitive. It's because 'sed' was the bare minimum to be a short as possible while being unique and just memorable enough. Awk is an even better counter-example to the article's claim: it's just names, makes no sense! Has literally _nothing_ to do with what it does.

"the Golden Gate Bridge tells you it spans the Golden Gate strait."

Umm, no it doesn't tell you that. Does the Brooklyn Bridge span the Brooklyn strait? George Washinton Bridge? Bridges are not exclusively named by that which they span, and software is not exclusively named after exactly what it does.

Re: Programmers and software developers lost the plot on naming their tools

#524

> grep (global regular expression print), awk (Aho, Weinberger, Kernighan; the creators’ initials), sed (stream editor), cat (concatenate), diff (difference). Even when abbreviated, these names were either functional descriptions or systematic derivations. If you asked someone unfamiliar with unix tools what they thought each of these commands did, diff is the only one which they would have even the slightest chance…

i think you are misunderstanding the point. with awk, sed, grep they actually hold relevance to the tools whereas a file browser named "zephrus" holds no connection to the actual file browser.

Re: Programmers and software developers lost the plot on naming their tools

#525
post #198
post #187

GNU's version of Yacc is called Bison. Pine Is Not Elm (even though that was never an official acronym). UNIX was UNICS which was a pun on MULTICS. I couldn't for the life of me tell you what dd stands for. nano is a copy of pico which was the "PIne COmposer". Postfix is a completely opaque portmanteau of post (as in mail) and "bug fix". C++ is "C incremented", and C is the successor of B, which is the successor of B…

> I couldn't for the life of me tell you what dd stands for. Data(set) Definition. But that name does not make any sense whatsoever by itself in this context, neither for the tool (it hardly "defines" anything), nor for UNIX in general (there are no "datasets" in UNIX). Instead, it's specifically a reference to the DD statement in the JCL, the job control language, of many of IBM's mainframe operating systems of yore…

I thought it was dirty deeds.

Re: Programmers and software developers lost the plot on naming their tools

#526
post #21

> 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?

The "Raptor Lake" codename in microprocessors is internal, the product ships with systematic designation. Engineers spec chips by model numbers that encode generation, tier, and performance class. 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 c…

Generic drug names don’t describe chemical structure, they allude to purpose but that’s all. ‘-afil’ is used to apply to a particular class of drugs, although when it was discovered, ‘sildenafil’ was the only example of that class, so it didn’t mean anything already.

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’.

Re: Programmers and software developers lost the plot on naming their tools

#527

Earlier quoted context omitted.

I’ve been told multiple times in multiple jobs that I’m good at naming things, and I love whimsical names. A couple rules I’ve internalized are: - if it’s hard to name, that’s a good sign that you haven’t clearly delineated use case or set of responsibilities for the thing - best case for a name is that it’s weird and whimsical on first encounter. Then when somebody tells you the meaning/backstory for the name it rev…

> I’ve been told multiple times in multiple jobs that I’m good at naming things, and I love whimsical names. As long as you're naming products and features, rather than variables.

oh yeah, definitely. for variables its best to exclusively use obscure unicode.

Re: Programmers and software developers lost the plot on naming their tools

#528

Earlier quoted context omitted.

$ tar --help tar: unknown option -- - usage: tar {crtux}[014578beFfHhjLmNOoPpqsvwXZz] [blocking-factor | format | archive | replstr] [-C directory] [-I file] [file ...] tar {-crtux} [-014578eHhjLmNOoPpqvwXZz] [-b blocking-factor] [-C directory] [-F format] [-f archive] [-I file] [-s replstr] [file ...] $ echo $? 1

That is not GNU tar's output. You might wanna make sure your installation is ok. edit: maybe i missed the joke?

Some drunks in a gnu-shaped echo chamber concluded that the world is gnu-shaped. That's not much a joke, if there is one here. Such presently popular axioms as "unix means linux" or "the userland must be gnu" or "bash is installed" can be shown as poor foundations to reason from by using a unix system that violates all those assumptions. That the XCDD comic did not define what a unix system is is another concern; there are various definitions, some of which would exclude both linux and OpenBSD.

Re: Programmers and software developers lost the plot on naming their tools

#529

Earlier quoted context omitted.

z requires it's compressed with gzip and is likely a GNU extension too (it was j for bzip2 iirc). It's also important to keep f the last because it is parametrized and a filename should follow. So I'd always go with c (create) instead of x (extract), as the latter assumes an existing tar file (zx or xz even a gzipped tar file too; not sure if it's smart enough to autodetect compress-ed .Z files vs .gz either): with c…

tar xvzf file.name is always a valid command, whether file.name exists or not. When the file doesn't exist, tar will exit with status '2', apparently, but that has no bearing on the validity of the command. Compare these two logs: $ tar xvzf read.me tar (child): read.me: Cannot open: No such file or directory tar (child): Error is not recoverable: exiting now tar: Child returned status 2 tar: Error is not recoverable…

The GGP set the benchmark at "returns exit code 0" (for "--help"), and even with XKCD, the term in use is "valid command" which can be interpreted either way.

The rest of your slight is unneccessary, but that's your choice to be nasty.

Re: Programmers and software developers lost the plot on naming their tools

#530
post #254
post #248

Earlier quoted context omitted.

In the same vein, my recollection is reading that the X windowing system is called X because it's the letter after "W", which was the original choice (because it's what the word "window" starts with), but it was already taken, so they went with X.

It looks like X was deliberately chosen to denote succession of W, not clashing with it: "The name X derives from the lineage of the system. At Stanford University, Paul Asente and Brian Reid had begun work on the W window system [3] as an alternative to VGTS [13, 221 for the V system [5]. [...] We acquired a UNIX-based version of W for the VSlOO (with synchronous communication over TCP[24] produced by Asente and Chr…

I think I sort of meant the same thing, but my wording might have been unclear. Essentially, there already was a W, and they were making something new, so they picked X.
Post reply on HN