Until recently, I thought it was uderstandable that people are afraid of CLI, and that GUI apps were easier for most average computer users. But now I've learned a few things about some (minority of) computer users that made me change my mind.
In my household there are three machines. One is running Windows XP, and two are running Arch Linux. Before I settled for Arch Linux (and even after that), I've used a few of the other distros, like openSUSE, Ubuntu, Mandriva Linux, Slackware, and so on and so for. Probably about dozen different ones, including LiveCDs. My wife would always make use of the desktop PC that was running whatever Linux and whatever bunch of GTK or QT software I had installed there. So, you could say she was distrohopping along. Meanwhile, her laptop was always Windows XP with some software a buddy of hers installed there.
Now, the time has come to finally install Linux on her PC. As a typical geek, I thought she'd just love to have Mandriva, Ubuntu or gOS. She mostly uses her Firefox web browser, listens to music, and watches DVDs. So I thought one of those distros was perfect for her. But I couldn't have been more wrong. She refused them flat out, and asked specifically for Arch Linux.
Okay. "Since I was going to install it", I thought, "it was a reasonable choice". She may have thought, if it works on my hubby's PC, it'll work well on my laptop. You must admit that's not such an unreasonable claim. But then another surprise. She wants awesome window manager, too?! Now I was really really surprised. I thought awesome was the geek thing, not something an "average desktop users" that my wife is would want.
I asked her if she was serious about it, and she said "Well, I'll learn it anyway, and I don't want people to know their way around my laptop. It's fun." Uh oh.... right. I showed her my firefox fitted with Vimperator add-on and said: "Do you want this, too? Here, you open a new tab by typing colon tabnew then your link. Isn't it cool?" She replied with "Sure". Now I was as confused as an extraterrestrial that just landed on Earth. What is this thing?! How is this possible? What about all the myths about user-friendliness and newbies wanting to GUI, GUI, GUI?!
This is the second time I totally misjudged the legendary average user, that mystical beast that developers look down upon and pretend they know everything about. Most developers would simply say "Yeah, just give them GUI, and some eye candy, and they'll be alright." or "This is a power user tool. It's CLI only." If someone uses an app launcher like Kickoff, and more specifically it's search function, you'd call that person more advanced than the average Joe that simply loves to click the shit out of the menu. Well, turns out things are not that simple, and not that black and white.
WTF
Now this is not scientific or anything like that. It's just a few thought for you to consider and think about. Mainly because it's based on just two cases that I know of. Okay, so here goes this essay.
I've tried really hard to explain this phenomena to myself. It's certainly quite opposite to what developers and user experience gurus would lead one to believe. Indeed, it's the very opposite.
Case 0 : my brother
My brother explicitly demanded Arch Linux (the other choice was Ubuntu) not because of observed performance advantage (he never cared to consider, let alone use Linux before), but the particular explanation I gave as to differences in package manager. Note that I'm talking about "explanation", not "demonstration". So, we're dealing with the mental picture he formed in his mind, not the actual process of installing packages one or the other way.
The way I explained was
In Arch Linux, you have pacman. It's a command line tool. You know, the black screen with just white text. Well, you type "pacman -S" then your package, then pacman will install your package. To remove it, you type "pacman -R" then the package name. And so on. There are a few more options. Oh yeah, to search for packages, you type "pacman -Ss" and the keyword. Now, Ubuntu has Synaptic that's really easy to use. You just have a list of packages, then you right-click the package, click on "install" and, then click "Apply" or something to install the selected package.
Now he thinks for a while and asks how he'd install multiple packages with pacman, and I explain that he can do that by simply typing the names one after the other. Then he decides he doesn't want Ubuntu because its way of installing packages seems like he has to grok a new interface. Odd... Then I explain that there's apt-get which works exactly like pacman, but he'd already made his mind. Now that I think of it, he did use Synaptic once before when he wanted to install something on my box while I was not around, and I think I made that fact know to him while I was explaining the Synaptic to him.
Case 1: my wife
My wife is an even more bizzare case, as you've noticed. I don't really need to go into more detail than I did in the intro above.
CLI = chat?
Now, I thought about it for a while and came to a conclusion that both of them like to chat and surf the Internet a lot. I mean, my brother is a chat junky, and he can type up whole books into his GTalk window during the evening. My wife is not far behind either.
Important thing to note is that when you chat, the interface is static (you don't even care about it), and all you concentrate on is the text you type, and the response that gets displayed on the screen. If you think about this carefully, CLI is mostly like that. You type something in, and you get a response. So I guess that to them the CLI looks somewhat like chatting with the PC. I don't know if that's necessarily the idea they have in their minds, but they are definitely familiar with the mechanics of the CLI.
Still, why?
But really. Why did they want CLI? Don't they know CLI is scarry?
We know now that it could be reasonable to say that they have possessed the skills necessary to comprehend the CLI even before they were introduced to it. But still there are many people who chat, and still refuse to even think about opening the console.
How come these two were so interested in it? Well, the only explanation I can think of right now is that they know I use it, and they can count on me to give them advice if they get stuck.
CLI and phone support
One advantage of CLI (and this is not strictly on topic here) is that it's easier to explain over the phone. How many times have you had to ask the person on the other side to read the names of the tabs or describe icons before you could help them click on the right spot? With CLI this task is much easier because CLI is like chat, and you can certainly read the chat screen out loud to someone over the phone.
It can go something like this (this is what I actually told my wife):
A: Honey, I how do I install Kaffeine, you forgot to install it
B: Sure. Type in sudo space pacman space dash upper case S kaffeine space codecs and press Enter then type in the password
A: Ok. It says resolving yada yada, then it asks me if I want to proceed with installation. I say yes, right?
B: Right.
A: Okay, thanks. It's installed.
Now, back to the topic. This type of linear communication with the computer is probably more in line with online chat, that is a linear communication between two persons.
But linearity doesn't seem to be the main point here. I think it's still the familiarity with techniques involved. For example, my brother was perfectly happy editing configuration files. I forgot to enable HAL for him, so he couldn't automount the USB stick. This is how we did it over the phone:
A: Hey, how do I open the USB stick?
B: Well you just plug it in.
A: Yeah, I did.
B: It doesn't open a window asking you what you want with it?
A: No.
B: Can you click the System icon on your desktop?
A: Yes, and it's not there. It has to be there, right?
B: Yeah. Hm. Oh, maybe I forgot to put HAL into daemons list.
A: Okay, now you're sounding scarry.
B: Nah, just open up the console and edit rc conf.
A: How do I edit?
B: You can use nano for that.
A: What do I type?
B: Type in sudo space nano space slash etc slash rc dot conf.
A: Okay, where do I put HAL?
B: Scroll down to the line that says DAEMONS, then equal, then there should be a list of items.
A: I see it.
B: type in hal between network and the next item.
A: Okay.
B: Press control plus x and save the file with yes.
A: Done, thanks.
B: Now reboot, and you should be fine.
...
A: Hey, it works!
Now I imagine it would have been even easier to explain with vim as the editor because it uses commands, but I guess I don't have to go that far. :D The important point is that my brother is very familiar with editing text in Word, and the mechanics of editing are exactly the same when it comes to editing configuration files. Instead of being scared of the editing process itself, he can safely ignore the process and concentrate on what he is editing. And since, again, words are just words, you can spell out anything he needs to edit, and since we are all quite used to words, we can remember them easily. Next time I need to explain how to start a daemon, I'd simply tell him to "add the xxxx daemon to the DAEMONS line in rc.conf", and he'd know what to do.
Conclusion
As you can see, although developers would argue that people don't like CLI because they are not used to it, I'd argue that there could be other issues. Most people who use online chat and Internet are used to typing stuff, and CLI is just typing. Commands are just words, and the syntax is easy to learn, as you can see from the two cases I discussed above.
I think it is perfectly sensible to say that people can use CLI and probably would if they were not intimidated by it. And forget that argument about the mental load CLI can exert on an individual. GUI is equally confusing if you try to explain it. The reason most people think GUI is easier is because they are using it themselves. They clikety-click on the interface like it was walk in the park, but if you think about it, there must have been at least one person that said "Can you please click slower, I didn't catch what you did" while they were at it. (I know because I get that from mom.)
On the other hand, CLI is mostly like written language so people are familiar with it. They don't have to learn new concepts like clicking, or identify sometimes unusual-looking icons.
Post new comment