Archive for October 11th, 2007

Long ago, I lost any queasiness about the command line. I’m not one of those who think it’s the only way to interact with their computers, but it’s a rare day that I don’t use it three or four times on my GNU/Linux system. No big deal – it’s just the easiest way to do some administration tasks. Yet I’m very much aware that my nonchalance is a minority reaction. To average users, the suggestion that they use the command line – or the shell, or the terminal, or whatever else you want to call it — is only slightly less welcome than the suggestion that they go out and deliberately contract AIDS. It’s a reaction that seems compounded of equal parts fear of the unknown, poor previous experiences, a terror of the arcane, and a wish for instant gratification.

Those of us who regularly try two or three operating systems every month can easily forget how habit-bound most computer users are. The early days of the personal computers, when users were explorers of new territory, are long gone. Now, the permanent settlers have moved in. The average computer user is no longer interested in exploration, but in getting their daily tasks done with as little effort as possible. For many, changing word processors is a large step, let alone changing interfaces. And both Windows and OS X encourage this over-cautious clinging to the familiar by hiding the command line away and promoting the idea that everything you need to do you can do from the desktop. The truth, of course, is that you can almost always do less from a desktop application than its command line equivalent, but the average user has no experience that would help them understand that.

Moreover, those who have taken the step of entering cmd into the Run command on the Windows menu have not found the experience a pleasant one. DOS, which remains the command line that is most familiar to people, is an extremely poor example of its kind. Unlike BASH, the most common GNU/Linux command line, DOS has only a limited set of commands and options. It has no history that lasts between sessions. Even the act of navigating from one directory to the next is complicated by the fact that it views each partition and drive as a separate entity, rather than as part of a general structure. Add such shortcomings to the ugly, mostly unconfigurable window allotted to DOS in recent versions of windows, and it’s no wonder that DOS causes something close to post-traumatic stress syndrome in average users. And, not having seen a better command line interface, most people naturally assume that BASH or any other alternative is just as stressful.

Yet I sometimes wonder if the main reason for nervousness about the command line isn’t that it’s seen as the area of the expert. In recent years, many people’s experience of the command line is of a sysadmin coming to their workstation, opening a previously unsuspected window, and solving problems by typing something too fast for them to see from the corner into which they’ve edged. From these encounters, many people seem to have taken away the idea that the command line is powerful and efficient. That, to their minds, makes it dangerous – certainly far too dangerous for them to dare trying it (assuming they could find the icon for it by themselves).

And in a sense, of course, they’re right. In GNU/Linux, a command line remains the only interface that gives complete access to a system. Nor are the man or info pages much help; they are often cryptically concise, and some of the man pages must have come down to us almost unchanged from the 1960s.

The fact that they are also wrong is beside the point. Many users aren’t clear on the concept of root accounts, file permissions, or any of the other safeguards that help to minimize the trouble uninformed users can blunder into.

The trouble is, understanding these safeguards takes time, and investing time in learning is something that fits poorly with our demand for instant gratification. By contrast, using a mouse to select from menus and dialogs is something that people can pick up in a matter of minutes. Just as importantly, the eye-candy provided by desktops makes them look sophisticated and advanced. Surely these signs of modishness must be preferable to the starkness of the command line? From this attitude, insisting on the usefulness of the command line is an anachronism, like insisting on driving a Model T when you could have a Lexus.

The truth is, learning the command line is like learning to touch-type: in return for enduring the slowness and repetitiousness of learning, you gain expertise and efficiency. By contrast, using a graphical desktop is like two-fingered typing: you can learn it quickly, but you don’t progress very fast or far. To someone interested in results, the superiority of the command line seems obvious, but, when instant gratification and fashion is your priority, the desktop’s superiority seems equally obvious.

And guess which one our culture (to say nothing of proprietary software) teaches us to value? As a colleague used to say, people like to view computers as an appliance, not as something they have to sit down and learn about. And, what’s more the distinction only becomes apparent to most people after they start to know their way around the command line.

Whatever the reasons, fear and loathing of the command line is so strong that the claim that GNU/Linux still requires its frequent use is enough to convince many people to stick with their current operating system. The claim is no longer true, but you can’t expect people to understand that when the claim plays on so many of their basic fears about computing.


Read Full Post »