Home Page Commentary Linux |
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!
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:
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:
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.
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.
We are beginning to see "typical user" applications come to Linux. Among these are:
In light of all this, I conclude that Linux is not yet ready for the general consumer market
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."
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.
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.
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>).
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.