Many "gurus" teaching new users about Linux make it look harder than it needs to be, and apparently fail to explain that yes, you can make PowerPoint-style presentations in Linux, you can view Web Pages that use Flash animation and other "glitz" features, and that you can manage all your files though simple "point, click, drag and drop" visual interfaces. Could the biggest problem with Linux usability be that most of the people teaching newbies to use Linux are too smart and know too much?
I've been ruminating over this idea for many months now, starting with an experience I had at a Linux Users Group meeting last summer. A person I know, who has been using Linux since before Kernel 1.0, was trying to show someone who had just installed Linux on his laptop how to configure a modem. The teacher was using traditional Linux command line tools, and the process was slow and required a command line text editor, in this case vi, and the new user was totally befuddled by all the commands involved.
The funny thing was that the Linux distribution they had just installed was Mandrake 8.0, which has dirt-simple visual tools for modem detection and setup and includes, by default, the KPPP dialer, which only takes a few mouseclicks, plus typing in your ISP's local phone number and your username/password, to get working. I butted in just before the new guy was totally lost, and showed him how to set up his modem connection the easy, point and click way -- in about 30 seconds.
My friend, the guru, was almost as astounded as the new guy at how easy it was to do a modem setup using GUI tools. But the guru had never done it that way. "I prefer the flexibility and power of the command line," he said.
Flexibility and power are very nice, but we weren't trying to be flexible or powerful that evening. We wanted to get a computer set up to access the Internet through a modem with a minimum amount of fuss, then show the computer's owner how to change settings easily when he got home, where he didn't have a command line expert around to lead him by the hand.
Many years ago I needed an operation. The surgeon told me I could either go to Johns Hopkins Hospital in Baltimore or to the nearby community hospital, and that he recommended the little, local hospital. "This is a routine operation," he said. "If you have an exotic disease no one else can cure, then all those Hopkins specialists are great, but for something simple, we don't need all that expertise, so we might as well use the little place close to home where the nurses will know you by name instead of as a six-digit patient number."
I'm here, so I obviously survived the operation. And I'm typing this on a laptop running Linux that I set up with GUI "point and click" administrative tools, so obviously the "keep it simple and close to home" approach works as well with Linux as with surgery.
The power of 'point and click' Linux
I have heard plenty of old-line Linux users talk about how there is no way to make PowerPoint presentations in Linux. This is not true. There are several Linux programs that will do it, including MagicPoint, the first one I learned about. But then I tried StarOffice Impress in the then-new StarOffice 5.2, and I was ... impressed. Suddenly I could create sophisticated slide show presentations either for local display or for distribution via the Web. I could even import and edit PowerPoint presentation or save my StarOffice-generated presentations in PowerPoint format so they could play on Windows users' computers. And yet, I know many experienced Linux users, including professional sysadmins, who are not aware of the power and flexibility of StarOffice, and how quickly a "point and click" user can learn to use it to perform most of the tasks Windows users perform in Microsoft Office. Even fewer Linux experts seem to know about StarOffice Draw, the easy-to-use StarOffice graphics utility that is not as powerful as the GIMP, but is more than adequate for most office-level graphics editing.
StarOffice 5.2 is bloated, takes too long to load, and takes over your desktop. These factors make it unlovable, especially for people who have the old Unix mindset that prefers simple little standalone programs that each do one thing well. I'll admit that I share this mindset to a large degree, but I have been forced to break it in order to do "non-geek" office work effectively in Linux. I let StarOffice load (actually, I have it going almost all the time my computer is turned on) while I get a cup of coffee, and once it has started up it's fairly quick for most of what I do with it -- which is darn near everything a Windows user can do with Microsoft Office, along with some neat things MS Office can't do that I won't talk about here so that you can have the fun of discovering them for yourself.
I cannot count the times I have heard Linux users complain about Web pages that use Flash animation. I have trouble understanding this. There is a perfectly good Flash 5 plugin that is included in most user-oriented commercial Linux distributions, and can be downloaded and installed in Debian or any of the "geekier" distributions without any great hassle. No, it's not Open Source (StarOffice 5.2 isn't either), but for the vast majority of Linux users, who want to their computers to work decently and are not using them to make political statements about software licensing, this doesn't matter.
Netscape 6.2, and the most recent Mozilla, Galeon, and Opera are all very nice browsers for Linux, and Konqueror keeps improving. Linux email clients are out there for almost every taste these days, including a few that are supposed to be able to work with the Microsoft Exchange server, which is certainly a boon for Linux users who work in companies that still (shudder) use Microsoft products in their server rooms.
None of these advances in Linux usability have much to with "classic" command line Linux, but so it goes. The ever-improving GUI (Graphical User Interface) is the future of desktop computing, no matter what operating system is running behind the user's monitor.
Kernel recompiles? Say what?
I recompiled a kernel once just to say I'd done it. But there is no reason for most Linux users to ever recompile a kernel. More and more, people get Linux from a commercial distribution packager, install it (often with help from members of a local Linux Users Group), and don't tamper with the kernel or other "underlying" system processes at all. Find a distribution you like, update it regularly either on your own or with one of the increasingly popular subscription-based "automatic" update services for Linux, and there is little reason to go beyond the Graphical User Interface more than a few times a year -- and when you do, if you are a true "user" instead of a professional sysadmin or hard-core computer hobbyist, you are probably best off strictly following cookbook-style instructions given to you by someone more knowledgeable than yourself.
How much knowledge is too much?
Imagine a world-class long distance runner teaching an infant to run. It's not going to work. Most babies learn to crawl, then how to pull themselves upright by holding onto something like a chair or table leg, then they take a few steps and fall over, try again and make it a little farther, and repeat this process until they can make it across the room on their hind legs without holding on to anything. At this point, they are ready to start running, but it's still going to be a while -- perhaps years -- until they are ready to benefit from the knowledge a competitive long distance runner uses to maximize her performance.
Most new Linux users aren't interested in maximizing performance. They want to get Linux installed, get sound working, set their video up so it looks decent, get connected to a LAN, cable modem, DSL or dialup line, and start doing things in Linux, and I mean things like checking out Web sites, sending and reading email, writing and printing out letters, doing their bookkeeping, and other stuff like that, because this is what 99% of the computer-using human population does with their computers 99% of the time.
People using their computers don't need to know much beyond "Push button A and action B results." They don't need to get confused with a lot of complex commands while they're just starting to figure out the way to do things in Linux that they already knew how to do in Windows. That basic level of knowledge is enough for a start -- and for a good while afterwards.
Sub-geeks to the rescue!
Let's assume you have managed to install Linux and get it going to the point where you use it competently for basic office work and Internet stuff. You are no guru. You are slow and halting at the command line, envious of the crew whose fingers fly over the keys, entering 10 lines of code in just a few seonds to read an email -- while you, poor thing, are forced to just click on an icon (1/10 of a second) to do it. You feel ignorant compared to the superusers around you, and rightly so.
But did you ever think that someone like you, who knows how to use Linux as a user operating system might be a more helpful teacher to a brand-new user than some of those gurus? That even though you, the ordinary user, feels humbled by the professional-level Linux people in the LUG, you have something to offer in the way of tech support?
Perhaps we should call it "non-tech support," because what so many new Linux users need, and do not seem to be getting, is simple instructions on how to do simple things the easiest possible way.
So, Linux user of modest skills, do not leave all new user training to the hard-cores. You can probably do a better job of teaching new users than some of the hoariest, "been using Unix for 30 years, Linux for 10," greybeards.
One of the great Linux "features" has always been its flexibility. It's time to start applying this same flexibility to Linux learning; to accommodate not only the computer science crowd, but also the "Joe and Jane Sixpack" people who are willing to try Linux for the first time but aren't ready to bog themselves down in five layers of learning just to look at a Web site.
This is the next generation of Linux advocacy and teaching, the one that is, finally, going to start making Linux a practical dekstop operating system.