Home Page -> Commentary -> Linux

Is Linux Ready for the General Consumer Market?

J. David Eisenberg

I have decided to get on the Linux operating system bandwagon, and have bought a copy of Red Hat Linux and installed it on one of my computers. (See comments about the installation process). I have used UNIX systems in the past, and have been programming for quite a few years, but have used Linux for only a week, so please bear this in mind as you read this article. This is written for a general audience, so some of the basic technical terms are linked in italics to a mini-glossary. Your comments will be greatly appreciated!

What Linux Does Well

Linux is a descendant of the UNIX operating system. Linux has many powerful features to recommend it. It is a multiuser, multitasking system which runs on many different types of computer hardware. Linux allows people to share files across a network. Its networking and multitasking capabilities make it an ideal system for supporting a web server or file server. It is reliable and efficient; from a purely technical standpoint, there is little doubt that Linux is far superior to other less stable, higher-priced systems.
Linux excels at managing system resources and providing an environment for effective sharing and dissemination of files. Linux has many tools which are designed to enhance the productivity of computer programmers and system administrators.
This is the reason that Linux has gotten so much good press lately as an excellent choice of operating system for Internet service providers. In fact, in that area, Linux is gaining market share.

Despite its popularity in the server world, Linux is not popular in the general desktop computer user's world. In my opinion, the reason is simple: Linux users are not typical computer users. The typical user sees the computer as a means to an end. The computer is a tool to help him in his business or private life (hobbies, games, etc.)

The typical Linux user, on the other hand, sees the computer as an end in itself. While she also uses it as a tool to help her in her business, her business is to set up a network or server, write programs, or learn more about programming and operating systems.

In their X Window System User's Guide, Valerie Quercia and Tim O'Reilly said that font choice "...is designed for maximum flexibility rather than for simplicity or ease of use." In fact, this is generally true; the key difference between Linux users and normal people (in the statistical sense, not in terms of mental health) is this:

Linux users want power and flexilibity in their programs. To achieve this, they are willing to sacrifice simplicity, ease of use, and a gentle learning curve.

It is this chasm between the Linux user and the normal person that is reflected in these three areas:

User Interface

By and large, programmers think nothing of memorizing a set of cryptic commands and options, forming their own conceptual model of how the system works as they manipulate it through the shell. For many of the operations that programmers and administrators do, a command line interface can actually be easier than a graphic interface.

For most tasks, however, a graphical user interface (GUI) is easier for non-programmers who are using the computer as a tool to accomplish a task. Most distributions of Linux come with a GUI -- the X Windows System. called X for short, which was developed at MIT starting in 1984. Among the goals of the X system are that it be:

This flexiblity allows you to install a window manager, which controls the look and feel of windows on your display. You may see some examples of window managers here. The last of the examples has definite user interface consequences.

In addition to being able to customize the look of the screen as a whole, you may also customize scrollbars, buttons, menus, and dialog boxes (also called widgets). The net result of this flexibility is that you have a wide variety of widgets in use in different applications. This leads to the sort of situation that Bruce Tognazzini describes in Tog on Interface:

"The day the Amiga computer was introduced, it sported (at least) four different cursors, each with its own set of rules, depending upon which application was running at the time. This led to a madcap adventure to identify what would happen when various keys were pressed."
Take a few moments to look at some of these dueling widgets. To the Linux user who has built a mental model of how the system works, these are not inconsistencies; rather they are variations on a theme, bespeaking flexibility and openness. To the typical user, they are seen as inconsistent, and create a feeling of confusion and frustration.

Documentation

The great divide between the Linux user and the typical user is also evident in documentation. For the Linux user, extensive documentation exists in the form of man and info pages. (See a sample.) Although this documentation is what every Linux user has grown to know and love, the typical user will find it stark and somewhat forbidding.

I had never used the X Windows system when I first installed Linux, and I was at a loss to figure out how to do certain basic window operations. Almost every Linux book that I found at the Computer Literacy bookstore told me what X Windows is, how to install it, and where its files are located in the directory hierarchy. One of the few books that told me with any degree of detail how to manipulate windows was A Practical Guide to Linux, by Mark G. Sobell. This book is excellent for new Linux users in the sense that I have used here; it concentrates on using the shells, text editors, and system administration tools.

Applications

Most of the applications that come with Linux are tools written by programmers for programmers (network configuration tools, compilers, etc.) Publishing tools such as groff and TeX exist, but neither is a WYSIWYG word processor that the typical user expects.

We are beginning to see "typical user" applications come to Linux. Among these are:

Graphics
The GNU Image Manipulation Program (the GIMP) is a graphics program that gives you capabilities similar to (if not surpassing) those found in Adobe PhotoshopTM. I used it to grab and modify the screen shots for this article.
Office Suites
The two that I know of are from Applixware and Star Division. I have not been able to install the Applix demo that came on the Linux CD set, and I have not used Star Division, but I have heard good things about both. Corel WordPerfect is also available; I installed the demo version, and it looks good.
Databases
Other than the databases that are built into the office suites, Linux also supports high-powered database systems such as Sybase and Oracle.
In light of all this, I conclude that Linux is not yet ready for the general consumer market

Where Do We Go From Here?

Note: this section is purely subjective and very much a matter of opinion. Your mileage may vary.

Making Linux bigger in the consumer market requires a basic shift in focus from the "programmer-type" user to the typical user. Although some additional software will be necessary to make this shift, that's not where the problem lies. It requires a basic change in the way this new kind of customer perceives the system, which I will called "consumer Linux."

Installation
Red Hat and other Linux distributors have taken the first big step by making a base set of Linux packages easy to install. Consumer Linux needs to have a similar step-by-step installation process with support for effective plug and play. The installation package has to come with the standard set of word processing/spreadsheet/database applications, as well as a game or two. The ultimate in packaging would, of course, be to convince a manufacturer to ship a consumer PC with Linux already and applications already installed.
User Interface
The applications that the consumer sees when she starts her system must use the same interface. All the menus, buttons, scrollbars, etc. must look the same from one application to another and function identically. I can't imagine a manufacturer being willing to ship a pre-installed Linux if this doesn't happen. This means that whoever puts together Consumer Linux will have to make a unilateral decision: "We will use the <fill-in-the-blank> window manager and the <fill-in-the-blank> widget set in all the applications that we ship." My strong recommendation is that it not use a window manager that visually resembles one used by some other operating system. Nothing is worse for beginners than a system that works almost like the one they're used to.

Consumer Linux must hide the shell. The Linux purists will simply have to resist the temptation to strangle John Q. Public as he patiently changes twenty .txt files to .html one  -  at  -  a  -  time in his graphic file manager. And before you send me hate mail, I'm saying hide the shell, not eliminate it. All the power of Linux and the shell will still be in the system when the user is ready for it.

Documentation and the Learning Curve
The documentation that goes with Consumer Linux has to be oriented towards setting up the system, learning the windowing system, and learning the pre-packaged applications.

The documentation does not ignore the shell or other powerful features of Linux that aren't visible on the surface of Consumer Linux. Instead, it presents them as tempting goodies that, for a small investment in learning something new, will make you far more productive.

Programmers and Designers
The programmer who writes and designs a printer driver or network traffic analyzer is not necessarily the best person to write a consumer-level application. Consumer Linux will need the involvement of people who are experienced in human interface design and the writing of consumer-level applications.

Consumer Linux still needs system-level programmers for a multitude of tasks; it's just that their work now lives behind the scenes rather than being the system's reason for existence. Consider a program that lets people download digital photos from a flash memory card reader, then permits them to label and categorize them for fast access. The consumer-level programmer designs the menus and buttons and features; the system-level programmer writes the card reader driver and a fast database access algorithm. System-level programmers will also play a vital role in solving the problem of interoperability (see below).

Are there people who can design and implement at both the system and consumer level? Yes, but I would guess they are few and far between. Can system and consumer-level programmers work together? Yes, if sufficient ego control is exerted (usually by an outside force <grin>).

Interoperability
The fact that Linux works on existing hardware is a plus. We need not convince people who already own computers to buy something new in order to run Linux; in fact, their system performance may actually improve. However, the people who already own a computer need absolute assurance that they can still access all the data files they've generated over the past two years. They, as well as new buyers need to know that the files they create can be used by people who are still using that "other system" at work.

This is, by the way, not just a matter of FUD (Fear, Uncertainty, and Doubt) used by some companies as a marketing ploy. It's a very real issue, and it needs to be addressed.

Some Final Notes

Some of you may be saying, "It's easy for you to say all of this -- what are you going to do about it?" I believe the place I could best contribute to Consumer Linux would be in the area of documentation and web-based tutorials. If someone's already working in that area, let me know so that I can assist rather than reinventing the wheel.
To answer the question that nobody asked: Yes, I did use Linux exclusively to prepare this commentary. My text editor of choice was gvim, and I used the GIMP for the graphics.
Please send me your comments; I'd like to know your reactions and get as much feedback as possible.