The underlying problem is that you now run into so many named things (utilities, libraries, programs, etc.) in a day and they all have to differentiate themselves somehow. You can't name every crypto library `libcrypto` for obvious reasons.
Libraries and programs also have a habit of gradually changing what exactly they're about and used for. Changing their name at that point doesn't usually make sense, so you'll still end up with long names that don't actually match exactly what it does. Imagine if we were typing out `tape-archive` to make tarballs, it's a historically accurate name but gives you no hint about how people actually use it today. The name remains only because `tar` is pretty generic and there's too much inertia to change it. Honestly I'd say `cat` is the same, It's pretty rare that I see someone actually use it to concatenate multiple files rather than dump a single file to stdout.
The author is missing the fact that stuff like `libsodium` is no differently named from all the other stuff he mentioned. If he used libsodium often then he may just as well have mentioned it as well-named due to it's relation to salt and would instead be complaining about some other library name that he doesn't know much about or doesn't use often. I _understand_ why he's annoyed, but my point is that it's simply nothing new and he's just noticing it now.
If you are repeatedly typing library names, something is wrong with your workflow.
Niklaus Wirth showed us a way out of the teletype world with the Oberon text/command interface, later aped clumsily by Plan 9, but we seem to be stuck firmly in the teletype world, mainly because of Un*x.
Ironically, much like sodium itself, a substance of which the author seemingly possesses too much of.
The stdlib still contains `un.rb` though: https://github.com/ruby/ruby/blob/d428d086c23219090d68eb2d02...
Also, why is it that people are gregarious when they congregate, and not congregarious? Or why didn't they just gregate? There was such a Latin cognate verb without the con attached.
Because that's not how the prepositions worked in Latin. E.g. "Marcus ex casa exit" ("Marcus went out of the house") requires both the "ex" preposition and the "ex-" prefix in the verb. Heck, even today similar things can happen in English: "they gathered together", that sentence has two instances of "gather" in it.
"Google" is from "Googol", the latter being 10^100. Apparently, "Google" the corporate name is an accidental misspelling of the number.
The number (googol) has no mathematical special properties and the name was invented by a 9-year old in the 1920s.
Googolplex is 10 to the googolth power, so 10^(10^100).
And Googleplex is the MV campus of Google.
grep almost has an onomatopoeic nature to it… like, it sounds like you are grabbing or ripping the patterns out of the file, right?
sed is not "stream editor" as it says above, it's "stream ed", where ed was another prexisting program which was essential and everybody knew it. its name was from "editor" shortened.
the sed commands are the ed commands. so, it's almost not possible to say "i don't like the name", it rests on a rich tradition, it's the stream version of ed. (ed commands are very similar to vi commands at heart.) it's sad the unix crowd never grokked teco because teco was already a programmable stream editor from a tradition that was not particulary streamy. it predated ed by a decade and would have fit the unix world perfectly. maybe it was already too big? I'm sure they would have known about it. Emacs does come from the teco tradition.
grep got its name from what the "grep" command would look like typed within the ed editor.
awk should not be thought of as a tool, it's a programming language, and has every right to the name as ada or pascal or haskell does.
back in those days, filenames had to be short, long names were not allowed, no space, and also, people liked typing short commands. concatenate shortened is... well, cat is as good a name as any. back then the word console was popular for the name of the terminal connected directly to the computer (frequently already logged in), perhaps con was already in use then, it definitely had a meaning already on DEC operating system machines as inherited on Microsoft machines, CON: is still console, and Bell Labs was using DEC machines.
btw at some sites there is a "dog" command. it's like the "cat" command, but it starts at the end of the file and then shows any additions. so, if you want to see if anything is being added to a logfile, you can "dog" the file (which is completely broken when VMS Windows dorks show up and decide to make everything binary) now the verb "to dog" in English means "to follow closely", so it's a cute wordplay on cat and means what it does, similar to "less is more". in less, you can accomplish something like "dog" (dog with more context) with the "F" command. these individual pieces of wordplay don't form a coherent network in the end, but as new things are invented over time they are fun and help you remember new commands till you get used to them.
vi was build on top of ed.
Ed was the Unix line editor, which is why all the commands after a colon have the form of "start,endcommand", eg "1,$p" would list all the lines of a file on your tty/decwriter.
1,$s/findexp/replace/g would s ubstitute all examples ("g") of findexp on the lines 1 through EOF
Funny that they are still some of the most efficient and powerful interfaces.
I started out at school in 1977 on a PDP-11 with 16K of RAM, 3 ASR-33s connected by 20ma current loop. We also had a VT-52. All running at 110baud. No valves, all transistors and ICs. That system was already outdated.
Punched/mark sense cards were still around.
Two years later we had a PET, Apple-II, and a TRS-80.
Teletypes have been around since the 1940s.
Cut the false history crap when it's easily found online and elsewhere.
Well, according to the man page, it is indeed "stream editor":
https://man.cat-v.org/unix_8th/1/sed
I was already aware of its relation to 'ed' (having had to actually use 'ed' in ancient times). However that doesn't change the fact that it does stand for "stream editor".
After reading your post, I thought "That doesn't seem right, I remember it specifically being referred to as 'stream editor'", so I went looking.
I feel like this is approximately the third time I'm learning this.
sed is just an example, of course, the author's point doesn't hold much weight for many (most?) users globally.
C programmers are great. I love C. I wish everything had a beautiful pure C API. But C programmers are strictly banned from naming things. Their naming privileges have been revoked, permanently.
Https://xkcd.com/1168/
tar xzf file.tgz
where xzf stands for "extrakt ze feil"But GNU tar was never the issue. It's almost completely straight forward, the only problem it has is people confusing the tar file with the target directory. If you use some UNIX tar, you will understand why everybody hates it.
$ 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"tar cf /tmp/a.tar $HOME" would, I guess, work on all POSIX systems.
How often do you forget what Firefox or Gnome are?
It's claimed grep is "well named" because even though it's not obvious when you first read it, that it being a contraction for "global reg ex print" and hence memorable. I'm not sure the same argument can't be made for libsodium which assuming the reader is familiar with NaCl (the same as the assumption that the previous reader is familiar with regex) then it's an equally memorable name for your crypto library.
There's always a consideration about the context the name is intended and likely to be used in. The article mentions engineering naming and "ibeam", but engineering has it's own technical names an jargon as well. Most people wont know what "4130 tube" means, but people who build bicycle frames or roll cages will - and they're likely to use the less specific term "chromoly" if the don't need to distinguish between 4130 and 4145.
In my head "libsodium" is similar - if you don't know what it (and NaCl) mean, you 100% should keep out of that part of the codebase.
The argument goes stronger with projects where the creator seemed to just roll the dice with the name.
Not entirely unserious: "awk" is a good name because it is three characters to type "rg" is better than "grep" because it is two fewer characters type
They're easy to type on a TTY.
grep is from the ed command "g/re/p" which is g (all lines, short for "1,$") /re/ regular expression to search for, "p" to print the lines.
It still works in vi.
Awk is short, easy to pronounce, and difficult to confuse with anything else. It's nearly as perfect as a name can be.
> 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 of guessing.
You seem to have confused the concept of a "name" with that of a "description". The whole point of names is that they aren't descriptive.
I actually agree with this, but that's exactly the opposite of what TFA is arguing.
I never really understood what was "wrong" with the NaCl library that it needed another version that does not have the string "nacl" somewhere in the name
I also remember Google named some heavily promoted non-cryptography project "NaCl" subsequent to the NaCl library's release making any searches for "NaCl" biased toward Google's software
I still use original NaCl, e.g., for CurveDNS, tinysshd, dq and dqcache, not libsodium
http://www.catb.org/jargon/html/E/EMACS.html (which also pretty much has your definition, though it calls it "Editing MACroS".)
At least these kinds of acronyms had utility once upon a time, when typing real estate was valuable and you input commands by hand for hours a day. Typing cat vs concat is hours of productivity save.
IMHO, the best names are the ones that are easiest to type. I have read several accounts of authors choosing names for this reason
I sometimes rename other peoples' executables (cf. libraries), not the ones in the traditional UNIX userland, but the ones with goofy names.^1 I will rename them to something I find easier to type and less annoying. I create symbolic links with the original names if I think they will be required^2
With own software, I give every program a number, the source file is named according to the number and the executable name is a short prefix followed by the number. All names are the same length. I have a text file that lists what each program does if I forget
I put a description in a comment at the top of each source file as a sort of header. Then I can do something like
head src/???.l
for a list of descriptions1. Needless to say, Arthur Whitney's software does not get renamed. No need, he gets it
2. I will also rewrite the argument parsing and "usage:" output if it annoys me
The best way to determine what a program does is to read the source. This is one reason I prefer to compile programs from source instead of using "binary packages"
I also think the names that are chosen for so-called "tech" companies are routinely quite silly, but that's another discussion
https://bitsavers.org/magazines/Computers_And_Automation/Com...
As a complete outsider it always seemed like the plot had never yet been found to begin with . . .
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 of guessing. It's ridiculous to complain about "libsodium" and then hold up "awk" as a good name.