The widely accepted majority opinion about operating systems is that for some unspeakable reason Windows is the pinnacle and a shining beacon of usability. Every single time someone brings up making Linux available for the masses (for example when discussing the Wallmart Linux laptops, or Dell’s Ubuntu line) some munchkin .NET developer and self proclaimed usability expert invariable pops up and starts counting the ways in which the discussed OS is different than windows. Not that I have anything against, .NET developers themselves – most are good people but you can hardly expect people who are professionally tied to windows platform to have an objective and well researched position on Linux. And trust me, it’s always some .NET developer, or someone who works exclusively on Windows and has only a second hand Linux experience. By second hand I of course mean that he reads Linux related threads on Digg and Slashdot but never actually used it himself.
Most of the time this attack is not done on objective analysis, usability experiments or statistical data but on “gut hunches” people have about what is accessible to the general public. And the bad part is that most of us share these hunches, and will at least in part agree with them. One such point that is usually touted around is that GUI is better than CLI. I can throw that one in the open, and most people will nod in agreement and say “yeah, for a novice user a GUI is way better”. How do you know though?
I guess part of the problem is our origins. A lot of Linux people my age and younger came from certain background – they are ex-Windows users who learned to do their first steps on the Microsoft platform. Perhaps they vaguely remember DOS, but most of their formative years they were kicking it MSWIN style. A lot of them probably remember feeling uneasy about CLI when they first started experimenting with Linux.
I can’t say this is my experience. The very first computer I used was a Commodore 64. The first computer I owned was Amiga 600 which had a full blown GUI OS, but also a functional shell that I used to hack various scripts and display ASCII art on bootup. The first “Computer Class” I took at school was done exclusively MS-DOS based. We didn’t even have Windows installed on these systems – and hell, no one was using it anyway. We considered Norton Commander to be a luxury. And you know what? We were getting along just fine. No one really complained it was to hard, or unreasonable – this is what we had to work with at the time, and we were fine with it.
I never feared getting my hands dirty writing scripts or dropping down to DOS when I got my first Windows machine. But even I for a while got trapped in that “GUI is Easier for Normal People” mentality. I forgot where I came from, and followed the wisdom widely accepted by the masses. Then few years ago I read a wonderful, heart warming story written by a guy who taught an introductory Unix/Linux class to adult learners.
I wish I could link to it but I don’t have it anymore. At the time I might have bookmarked it, but that was 2 computers and several catastrophic hard drive failures ago. I have been searching for it ever since, but it vanished somewhere in the depths of iterwebs. Thanks to the magic and infinite wisdom of the internet, I have recovered the link! Thanks for finding it Newt!
I think the author made a really, really interesting point that at the time shook me out of the “Newbs must have GUI” trans. Many of his students admitted that they never really used a computer on their own. Others have been trying to “learn computers” many times and they always failed. This class was different than what they tried before – instead of working with the latest Windows platform, he taught them the very basics of command line unix using simple tools like bash, pico and pine.
And the astonishing part was that it worked. Few weeks into the course these people who had no technology background, and were throughly confused by Windows were already proficient bash users. Many were researching new commands by using appropos and reading man pages, and exchanged simple .bashrc tricks. Some of them actually remarked that this is the first computer class that actually made sense to them, and that the command line was much easier to understand than the multiple windows, panels and tabs of a GUI. It was like “talking to the computer” they said – you issue a command, and then it either does something or responds that it did not understood.
The common wisdom that CLI is hard and GUI is easy is obviously a fallacy, or at best a half truth. If you can’t use a computer at all, then a single task oriented, modal, command-response model of a CLI interface might actually be more intuitive to you than the multi-tasking, multi-window confusing interface. Let’s face it – staring at a dialog with 6 tabs, each of which has 2 or 3 buttons that open another dialog with 5-6 tabs can be intimidating for a novice user. This is one of the areas where GUI designers really can’t beat the plain old well documented configuration text file. They either emulate it by creating a web page like config screen where each option is accompanied by a paragraph of text, or do some bizarre, counter intuitive nested abomination with no explanations like the one I mentioned above.
I read that story, and it struck me – all these pretentious, self proclaimed usability experts don’t know shit. If you sit down a former Windows user at a Linux machine, then naturally they will be confused. But if you decide to one day teach your grandmother about computers do you really think it will matter to her what OS she will be using? I can guarantee you that she will be equally confused by both. There is no OS out on the market that requires zero training or getting used to. Unless we develop a full fledged, voice activated AI that will converse with the user (like computers usually do in Scifi movies) there will always be a steep learning curve, and many idiosyncrasies to be dealt with.
Is it really that much easier to edit Windows registry than to edit textual config files? I bet your grandma will do neither. Is it really that much easier installing software on windows than it is on Linux? I mean, hell – if you are using Ubuntu you pretty much have a one-click install mechanic. Choose software from the synaptic list, click install and you are done. But guess what – your grandma probably won’t be installing software anyway.
The OS that is user friendly and intuitive is the one you have learned to use proficiently. If you have learned to use Windows first, then you compare everything to windows. Whenever things are done differently you usually decide it’s hard, or counter intuitive. But really it is not. We are all conditioned by our previous experiences, but someone with no prior bias may experience things very differently.
So next time someone starts yelling that Linux is not ready for the desktop, just consider whether or not his arguments are objective, or is he simply following of these gut feelings we all tend to have about usability without actually testing it in practice.
[tags]linux, linux ready for the desktop, gui design, cli, command line[/tags]