Since every top-level comment thus far seems to disagree with the Hole Hawg comparison, I will provide an agreement.
My very first programming experience was the integrated shell of Python 2.6, maybe 2.7. I followed wikis and tutorials in order to print various fun little things. Everything past that was further layers of abstraction, buttons, magic, and GUIs.
I was whisked away into the faintly surreal and inexplicable tornado of Android Studio and XCode until my first year of college, at which point a college professor, during the third lecture of class, was asked, "how many students fail out during this course?"
The professor paused for a moment, and said, "I'm not sure -- let me count the number of failing grades from last semester's final," at which point he piped his grade book into a terminal, straight into a series of bash commands that gave him the precise number of final exams that had scored below a 55.
Thinking back, it's not the fact that he could do that -- I sort of knew that was possible, even with a fairly basic understanding of computers. It was the ease, the fluency with which he did it.
Right then, I understood that programming was the closest I was ever going to get to my childhood understanding of alchemy/magic/psionic powers. And maybe even a little bit further than that.
That is what Unix will always mean to me. A genuine, actual, factual spellbook, inexplicably and suddenly laid at my feet.
The closest I’ve seen that resembles the command piping power is a master at spreadsheets making them sing. The ability to convert the questions into something the computer can understand and answer is powerful.
Composable, repeatable, piped commands are a huge boon to me.
It really does feel like a spellbook sometimes, or a huge Lego model where brick A can fit onto plate B in a dozen different ways to create anything from a dinosaur to a SHIELD Helicarrier :)
I sat next to a guy quite awhile back, in a qa role. Cygwin was part of the environment. I "grew up" on Unix, so I'd show him stuff.
As an excellent qa person, he would write everything down, and do that thing, that way, in that situation. Repeatability.
I gradually convinced him, no, it's a composable language. Look, you can put this thing that you know together with this other thing that you know, and get these new and useful results.
Except there's nothing about that command line that wouldn't work in Windows CMD/PowerShell, Google Fuchsia, or any other OS that has piping, as long as the binaries are there.
This is the most irritating thing about Stephenson's little tract and the "UNIX is the best" mindset that its fans have: the things the he praises is just the user environment, a surface level feature which can be significantly replicated on any modern OS. Now, don't get me wrong; the UNIX user environment deserves its praise but it says nothing about the merits of UNIX/Linux itself at an architectural level. Most people can't even describe the differences between Linux, Windows, OS X, Fuchsia, Haiku, Midori etc. in an architectural sense.
> Most people can't even describe the differences between Linux, Windows, OS X
That's because Unix won. When he wrote this article Linux was just moving out of the hobbyist realm, we were on OS 9 (or 8?), and Windows was busy "finding itself". The landscape was different.
I sincerely hope you're aware that none of those options existed 22 yeara ago when this particular essay was written.
Microsoft were trying to sell Windows NT to chip designers on the premise that they didn't need to use scripts.
MacOS at the time didn't even have a commandline or interactive text-driven shell.
MVS TSO/ISFP had JCL, but the principle mechanism for interprocess communication was DASD and structured datafiles, not piplines. (VM/CMS more closely approached the Unix model, but was far less widely used.) VMS had COMfiles and DCL, but lacked the full nuance of Unix scripts.
And none of those systems were available on commodity x86 hardware. Linux (and numerous proprietary Unix clones) could run on 386s, and in some cases 286 systems. Need a system at low cost and with sufficient flexibility that the disadvantages of low-power were largely obviated? Unix had you covered.
MacOS and Andriod adopted Unix or Linux because the were clearly superior options. Fuschia ... I think ... is following similar lines (I've not followed it closely). Microsoft introduced Powershell after it became clear that no, GUI toolbuilding simply lacks the flexibility of the commandline. (And they still came up with something incompatible. So WSL got bolted on as part of the stock build.)
I would have sincerely thought it was obvious I was referring to the reposting of "In the Beginning was the Command Line" long, long after its original publication, including this most recent one.
> "MacOS and Andriod adopted Unix or Linux because the were clearly superior options"
If by "superior" you mean "free as in beer", yes, they were the superior option.
I agree with this. I don't use Linux because of its architecture, but because it provides me the environment I appreciate, on the platforms I want to use, under the terms I can accept. The BSDs are close to the mark, and I would consider them for specific tasks. Linux is just where development is faster.
There's definitely beauty in Lisp, for sure. I wish I could spend more time with it instead of Terraform and JavaScript, but at least I get to tweak my Emacs configs with it now and then :)
It never felt like Lego to me. It feels like cheap knockoff Lego. Pieces all sort of fit together. Until they don't. And then the whole thing starts falling apart.
Like, just look at something like the -print0 option to find.
I'm always up for some command line sharing and golfing! I love the ways different approaches can enlighten me to amazing new ways of messing around with text. (and I say "messing around" but I mean it in the most serious way, I adore how much someone can change a stream of text with the command line and a few pipes!)
My very first programming experience was the integrated shell of Python 2.6, maybe 2.7. I followed wikis and tutorials in order to print various fun little things. Everything past that was further layers of abstraction, buttons, magic, and GUIs.
I was whisked away into the faintly surreal and inexplicable tornado of Android Studio and XCode until my first year of college, at which point a college professor, during the third lecture of class, was asked, "how many students fail out during this course?"
The professor paused for a moment, and said, "I'm not sure -- let me count the number of failing grades from last semester's final," at which point he piped his grade book into a terminal, straight into a series of bash commands that gave him the precise number of final exams that had scored below a 55.
Thinking back, it's not the fact that he could do that -- I sort of knew that was possible, even with a fairly basic understanding of computers. It was the ease, the fluency with which he did it.
Right then, I understood that programming was the closest I was ever going to get to my childhood understanding of alchemy/magic/psionic powers. And maybe even a little bit further than that.
That is what Unix will always mean to me. A genuine, actual, factual spellbook, inexplicably and suddenly laid at my feet.