Confession Time

This quote sums up how I see GUIs once I began interacting with computers through the command line.

“… I was committed to the idea that what we were doing with computers was making languages that were better than natural languages for procedural thought. The idea was to do for whole ranges of human thinking what mathematics has been doing for thousands of years in the quantitative arrangement of knowledge, and to help people think in more precise and clear ways. What I saw in the Xerox PARC technology was the caveman interface, you point and you grunt. A massive winding down, regressing away from language, in order to address the technological nervousness of the user. Users wanted to be infantilized, to return to a pre-linguistic condition in the using of computers, and the Xerox PARC technology’s primary advantage was that it allowed users to address computers in a pre-linguistic way. This was to my mind a terribly socially retrograde thing to do, and I have not changed my mind about that. I lost that war in the early 1980s…” - Eben Moglen

After the first forays into programming I’ve become envious of those who got to use computers before the total dominance of the graphical user interface i.e. before the early to mid-80s. They have an advantage. Without a shiny, sugar-coated GUI, they got to build a more straightforward relationship with the machines of the time. Their portal into the computer’s environment was not a bit-mapped icon of abstracted meaning, but language entered via the command line.

The tried-and-true analogy is that these early computer users are like drivers who had no choice but a manual transmission when learning to drive. Even if they prefer an automatic transmission over a manual, learning to drive a manual transmission gives the driver a more detailed or at least a less mysterious idea of what is going on in between themselves and the guts of their car.

Learning to drive a car with a manual transmission is objectively more complicated than learning to drive with the aid of an automatic, but that steeper learning curve is beneficial, and I think preferable in the long run. The same goes for learning to operate a computer without the aid of a GUI.

When I began my journey to learn computer programming that steep learning curve looked like a sheer wall. I found this new zoo of terminology baffling. There is the command line, the console, the terminal, the shell. Worse yet, some of these constructs don’t even exist in their authentic forms (whatever those used to be). Instead, they are emulated inside another piece of software. Right after getting used to seeing the word terminal in articles and tutorials, I walked right into another layer of this obfuscation the first time I read an article instructing me to open my terminal emulator.

I don’t think early adopters worried much about whether they were using a terminal or terminal emulator, they didn’t stop and toss their keyboards when their system spit an error back at them, and they may even feel familiarity instead of anxiety when peering out from the shiny GUI windows in their modern OSs at dirty, stacks of green monospace text. This may be unearned nostalgia for an era that barely overlapped my existence, but ultimately I know I missed out on something special.