←back to thread

311 points todsacerdoti | 1 comments | | HN request time: 0s | source
Show context
pdpi ◴[] No.46239164[source]
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 BCPL.

Developers haven't "lost the plot", we never had it in the first place.

Inversely, Clang, LLDB, jq, fzf, loc are modern projects perfectly in line with the author's notion of a good name. "mise-en-place" is the perfect metaphor for what mise does.

replies(16): >>46239266 #>>46239267 #>>46239293 #>>46239675 #>>46239818 #>>46239903 #>>46240006 #>>46240043 #>>46240475 #>>46240516 #>>46240745 #>>46240858 #>>46240981 #>>46240986 #>>46242271 #>>46242669 #
anyfoo ◴[] No.46239266[source]
> 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 (let's not get into the specifics of which ones, because that's a whole other can of complexity).

And even then the relation between the DD statement and the dd command in UNIX is rather tenuous. To simplify a lot, DD in JCL does something akin to "opening a file", or rather "describing to the system a file that will later be opened". The UNIX tool dd, on the other hand, was designed to be useful for exchanging files/datasets with mainframes. Of course, that's not at all what it is used for today, and possibly that was true even back then.

This also explains dd's weird syntax, which consists of specifying "key=value" or "key=flag1,flag2,..." parameters. That is entirely alien to UNIX, but is how the DD and other JCL (again, of the right kind) statements work.

replies(5): >>46240018 #>>46240367 #>>46240644 #>>46241335 #>>46241977 #
necovek ◴[] No.46240018[source]
Having come from the DOS world (or it could have been Norton utilities), I always thought it was more like DiskDupe (duplicate disks).

Funny how we never confirm our hypothesis that "checks out".

replies(1): >>46240083 #
anyfoo ◴[] No.46240083[source]
"disk dump" is another common (but wrong) guess.
replies(2): >>46240156 #>>46240841 #
softskunk ◴[] No.46240156[source]
I always read it as “[disk|data] destroyer”, because that’s what it’ll do if you’re not careful.
replies(1): >>46240974 #
jaredhallen ◴[] No.46240974{3}[source]
You know, this is true. And I've read any number of "you should never use dd, use this instead" articles over the years. But man, do I love me some dd.
replies(1): >>46242087 #
1. georgefrowny ◴[] No.46242087{4}[source]
dd is the software equivalent of removing the riving knife from a table saw.

Then again, I get very paranoid when I write software that has to delete arbitrary files recursively. One bad string gets in there and it's a very bad day.