Tuesday, May 29, 2007
A frightening minor epiphany on computer user interfaces
But most systems these days are not designed with linguistic operation in mind. If you have to manipulate the same stuff in the same order every day, you'd welcome being able to reduce that to a single line command (or even batch script) You'd take the effort to learn.
The Return Of The Command Line
I had a minor epiphany when I read that, one that put (shudder) control panels into a new light. I'm still pondering the implications of said minor epiphany, but to quickly get it out: the GUI (and (shudder) control panels by extension) were created to give the end user a consistent, simple and largely non-abstract metaphore for using the computer, but more importantly, one that promotes a shared environment between users (I'm flying blind here, trying to get this out, and “shared environment” isn't quite the right word, but it's close enough for now). By that, I mean that Alice can sit down at Bob's computer and still manage to interact with it without problem.
One could argue that a command line is just as “sharable” an experience as a GUI, but in my experience, it isn't.
Back in FAU, I knew a guy that littered his Unix account (a command-line account, by the way) with scores of shell scripts (“batch scripts”) to do all sorts of things. And these weren't large shell scripts either—they were all one or two line scripts that did stuff like, oh, list the contents of the temporary directory, or search through all files for a particular term and have the output paged. But it wasn't like I couldn't use his environment (say, he asked me for some help) as I could just bypass his score of “commands” for the more tranditional ones one finds under Unix, but our common language wasn't there. He'd type in one of his “commands” and I would have no idea what exactly it did. I would type out a rather long command line, piping the data between Unix commands, and he would look at me like I was crazy for doing all that typing.
It's hard to say it was a culture clash, since we were both “using” Unix, but it was certainly a style clash.
And this “cultural” or “style” difference bit me again years
later when Smirk was hired to run a small ISP, and I tagged along as “Unix Sysadmin.” The previous
sysadmin wrote extensive scripts to manage the systems in question, and left
precious little documentation. These scripts often massaged critical
configuration files, and the actual “master” copy was stored somewhere else
on the system (most of the time, in the old sysadmin's home directory). Often
times I would fix something only to have it break when one of his scripts ran
(through cron
, or by one of the remaining tech support
crew).
In other words, while I developed one way of “talking Unix,” the guy in college developed another way of “talking Unix” and the previous admin of the ISP developed yet a third way of “talking Unix.” And none of us got along (so to speak). This “cultural divide” wasn't on the order of, say, the Queen's English vs. American English, but more like the divide between American English and Bavarian German—the roots are the same, but you'd hardly know it—dialect continuum in the extreme.
GUIs, on the other hand, restrict the language available to the user, thus enforcing an interactive conformity—much like L'Académie française does for the French langauge (or rather, tries to do). It's not so much about enhancing productivity as it is usability in general (or communication, take your pick).
This minor epiphany is actually frightening to me, because looking over my history here, I've decried the language drift and incomprehensibility occuring between hard core Unix users, as well as decried (over and over again, ad nauseam) control panels for restricting how I can interact (and fix usually) the computer.
And like I said, I'm still pondering this.