Is computing like literacy? Oh yes


Continuing the discussion from CODE keyboard:

Highly edited version of original post by Medievalist

This is ripe for follow up so here goes:

I am going to reply to your post and your quoted essay by saying that I could easily construct an argument supporting GUIs that is as strong as that argument against them. I furthermore take a leap in a meta direction and suggest that the mouse is an ADDITIONAL interface to the command line and a text-based approach.

I frequently make the joke to writers that, in terms of, "In the beginning was the word . . ." What else would a writer think? (They NEVER get it)

How can I explain that to a visual person there is no better entry into the world of computing than what you call grunting. The choice of language to degrade visual thinking is just another (very annoying) layer on this very complex issue. But if you let go of that insult there is nothing left of your argument. I should be ashamed that I don't have a facile memory and a quick grasp of language and leave the real thinking to people who do have those saintly qualities. Not so saintly, really, but very monk-like or priestly.

And that is the true failure of your argument. It comes from a fear of losing what you perceive to be an employment edge. Argument from self-interest falls flat in a community of trained thinkers.

I won't leave it on that note, though. The individuals who brought us the mouse and its attendant windows and insertion-point were deep thinkers, too. They sought to make computing easy to engage for the average user. They were designers, though, more than engineers. Consequently they looked to the user rather than the technology for leads on what a universal tool should be like.

The environment known as the xerox/parc approach is in no way a series of cul-de-sacs. Menus reveal every choice available. Unless they are done poorly. For a visual thinker this is critical. The creative work goes on in your head anyway.

We can compare results if you want. I like showing off.

I do code, now, but it was after years of pushing pixels around manually and I just needed to learn how to automate to move faster through the work. I would not have gotten that far without the entry point of the mouse and etceteras.


Well, for what it's worth, the command line is a horrible interface.

I do respect the simplicity and plain-textiness of UNIX, but every time I go back in, the command line makes me hate myself again. No sane person could argue that the command line is an interface paradigm worth propagating into the future, except as a necessary escape hatch for sysadmins.

This is why OS X did so well: UNIX with a decent GUI, at last.


Although I only interact with PCs through a GUI, at least since faffing about with autoexec.bat and config.sys became a thing of the past, I can see @Medievalist's point.

A CLI forces you to have a very hands-on, nuts-and-bolts understanding of what's going on under the hood at some level, and the perspective that goes along with that could almost be seen as making the difference between creating and consuming, from some angles.


I program, but if I need to deal with the terminal I ask my girlfriend for help. Yeah, I am that kind of guy. I re-fill her wiper fluid, she remembers unix commands.


I do not know how to speak Russian. I do not believe this makes Russian an inferior mode of communication. I do not believe that people who speak Russian are insulting me by doing so. I do not believe a person expressing herself in Russian is necessarily a degenerate reactionary who needs correcting. I do not believe that we must stop the scourge of Russian speaking. But when I try to communicate with a person who only speaks Russian, both of us are going to be pointing and grunting. I have no illusions about this.

When a person does not understand a language, but needs to communicate, one gestures and makes noises that (to the recipient) are unintelligible. This is the pre-linguistic phase, if you will, the most primitive mode of making another mind grasp what your mind wishes to convey to it. We all start that way in every language, including our milk tongue.

Some GUI people have an absurd inferiority complex that makes them verbally lash out at CLIs. They need to get over themselves. The CLI is a deeper, richer mode for computer interaction - that most people simply don't need - which is why after decades of attempting to get rid of CLIs, Apple and Microsoft have finally realized that having both in the same machine isn't a bug, it's a feature that gives optimal useability.

If you don't want to do your own engine work, that's fine! But don't tell me that a torque wrench is an inferior tool that must be eradicated, or that your engine choices are more informed than mine. And don't try to maneuver me into saying that GUIs are "evil" - that's not my point (although it might have been Moglen's). GUIs are not a replacement for CLIs and to truly master computer science you'll need to understand both quite deeply.


No sane person could argue otherwise. Your last eight words acknowledge this.


Not an essay, but I take your point.

I see no disagreement in what you are saying and what I am saying, although perhaps you said it better.

Use whatever you prefer.




Well, sure, but I meant as a primary interface that you advocate for as an ideal pattern for everyday computer users.

"Except as an escape hatch" is fine -- you always need Fire Exits in the hotel, don't you? But nobody confuses those for the front door, do they?


I'm a fireman (rhetorically, not literally - I'm extending your metaphor) so I don't see fire doors as an accessory to hide.

But you know, I'm not sure you should ever "advocate an ideal pattern for everyday computer users", since such a beast does not exist.

Graphic artists should have a mouse.
Most others could use a rat (foot mouse).
Programmers need keyboards.
Systems programmers need serious CLIs.
New users need choices presented to them.
Mid-level users need a way to use a multitasking OS.
Experts can't fit all their choices on screen, or even in a tree of any useable depth.
This list could go on forever....


Most people aren't firemen.

But more seriously on the "computing is literacy" topic:


OK, I spent 40 years figuring out what I wanted to do before starting to learn to program. I got that part right. I haven't written a ton of code, but the little I have written is doing the job I set out to do. (right now in fact, my other processor is calculating away on a Sketch-up object while I surf on this one. Hooray.


And with no IDE to watch over my shoulder I leave parens un-closed some times.


Followed your link to this:

Please don't advocate learning to code just for the sake of learning
how to code. Or worse, because of the fat paychecks. Instead, I humbly
suggest that we spend our time learning how to …

Research voraciously, and understand how the things around us work at a basic level.
Communicate effectively with other human beings.

These are skills that extend far beyond mere coding and will help you
in every aspect of your life

And I think I agree... but admittedly I started teaching my children to code when they were born (by singing them the alphabet song - it's the first step). So maybe I'm contradicting myself?

Anyway, I just did this a few minutes ago, while I was simultaneously reading BB... er, wait I sec while I anonymize it... here:

ldapsearch -x -LLL -H "ldaps:// ldaps://" -b "ou=Interactive Users,ou=Users,dc=example,dc=org" -s "sub" -D "" -W '(&(objectclass=user)(homeDrive=H))' homeDrive cn|gawk -F": " '(NF==0){printf "dn: CN=%s,OU=Interactive Users,OU=Users,DC=example,DC=org\nchangetype: modify\nreplace: homeDrive\nhomeDrive: H:\n\n", Cn};/^cn: /{Cn=$2}'|ldapmodify -x -H "ldaps:// ldaps://" -D "" -W

Any carriage returns are spurious, introduced by the wwweb. It's all one line & I'll explain it (or translate it into powershell) if anyone cares.

That command pipeline uses a CLI to perform operations (in less than a minute) that would take hundreds of hours with a GUI. Note also that it's leveraging SSL, transparent directory failover and multi-mastering to perform tasks securely across a network - and across two different operating systems from an unprivileged account. I do this kind of stuff every day although I do not have pecs or soot on me like your pictured firemen (I do have some respectable triceps, though:)).

Does this mean a CLI is better than a GUI? No, definitely not! There don't need to be billions of people who can use the more powerful, expressive interface that CLIs provide; some people need to spend their time learning geology instead (I personally am titanically ignorant on the subject of geology). GUIs not only have a better learning curve than CLIs, they generally fulfill all the needs of people who are pimarily using the computer as a presentation layer for complex content.

There is no one best interface. You shouldn't use a torque wrench when you can use a crow's foot; it's wasteful.

We got here because someone complained about keyboards having keys they don't use. I said because I use a deeper, richer paradigm to interact with the computer I need those keys, and quoted Eben Moglen's famous characterization of the GUI. This was taken as an insult, because while you can say you're a mechanic and need more complex, powerful tools and nobody cares, if you say you are a computer scientist and a GUI is too simplistic for you, you'll get flamed. stuck_out_tongue

PS: at risk of starting another misunderstanding, I almost never use IDEs to write code. They slow me down.


I wasn't insulted. No not at all. I thought it was a subject worth talking about.


I just google them.


Oh, I meant MarjaE in the previous thread. But I'm glad you weren't insulted (I only want people to be insulted when I'm trying to insult them wink) and I agree that interfaces are very much worth discussing.

I actually have a collection of photocopies of keyboards, no lie. I have at least a dozen - DECs from the VT52 to the 400 series REGIS jobs, a couple DGs, the Esprit 105, an Apollo, IBM 3270s and their ilk, Macs and the Apple II, etc... one day I want to make a laptop like Bunny Huang's, only with a huge keyboard able to physically map every computer KB ever built. Long and narrow like a musical keyboard, with a super-wide screen and stereo speakers set far apart, but lightweight and robust. Sadly I haven't the money to hire someone else to build it (yet) and haven't the time to build it myself (yet). I even have a name for it already!


[quote=“Medievalist, post:10, topic:8633”]
Most others could use a rat (foot mouse).
[/quote]What? in the flaming fuck?

/googles “usb rat”
/googles “usb rat” -saitek -keylogger -aliexpress

Help me out here.

The spirit of Antinous lives.


First hit for “foot mouse”, perhaps you were overthinking this?



But I want @Medievalist to do my googling!

Hey, you know, that’s like, the only one on the market, and it’s $140 when it’s discounted?

…Maybe not something for ‘most’, I’m thinking : p