here's a case for enigmatic naming schemes (cat, nc, grep, etc)
say we went back in time and did the "right" thing by choosing concatenate as the name for cat instead of cat, and perhaps also creating another binary called display which just calls cat with a single argument
this seems great, right? cat is weird and enigmatic (what does an animal have to do with files?) but concatenate and display are descriptive and approachable
but then eighty years pass and the bitmap is invented. and my dad logs onto my computer and wants to create a beautiful collage. so he types concatenate pic1.bmp pic2.bmp | display, expecting to get a visual display of the two pictures somehow placed next to each other
and what does he get??? a whole bunch of gibberish! what the heck
names like concatenate and display make the claim that the utility being named is the utility for all kinds of concatenation and displaying; they adopt the entire notion of "concatenation" and "display" as their identity! but cat does not know (or care) what an image is, and certainly does not know what concatenation of images would look like, and hence naming it generally as concatenate would be inappropriate
sidenote: sometimes it actually is appropriate to give highly generic names: xdg-open includes the extremely general word open in it, but this is correct, because the goal of xdg-open actually is to open "all kinds of things".
by giving tools enigmatic names like cat you allow the tool to be its own thing and carve out its own identity, since it doesn't quite start with one pinned down.
(((( bytestream-concatenate might be a good name tho. lol )))))
