Linux and the Unix Philosophy

7.1 Allow the user to tailor the environment

Many years ago I wrote uwm, a "window manager" or user interface for the X Window System. It provided the user capabilities that many people take for granted in today's window systems: the ability to move windows, resize them, change their stacking order, and so on. Well accepted in the marketplace, it went on to become "the standard window manager for X Version 10." It holds a little-known, but nonetheless legitimate place as the conceptual ancestor of popular window managers used with the X Window System today. Today's window managers borrow heavily from the original customization ideas found in uwm and its offspring.

One factor contributing to uwm's success was an exclamation by Bob Scheifler during an early X Window System design meeting at MIT. Bob, a significant contributor to the overall design of X, was reviewing my thin specification for the "Unix Window Manager." Suddenly he blurted out, "Suppose I don't want the left mouse button to do that!" He went on to suggest that perhaps users might like to choose the function initiated by each mouse button.

Had I been a comic book character, you would have seen a light bulb suddenly appear over my head.

Uwm went on to break new ground in the area of "customizable" user interfaces. The X Window System made it possible for the user to choose a window manager. Uwm took customization a step further by permitting the user to choose the look, feel, and behavior of the window manager itself. Combinations of mouse movement, button clicks, colors, fonts, and even menu options could be decided by the user. So powerful was this notion that the developers of X Windows later designed a "resource manager" that provided user-level control of virtually every element of the display screen. This unprecedented amount of flexibility is still unmatched today, even by Microsoft's and Apple's desktop environments. Whereas those other systems give this flexibility to the developer, X Windows gives it to the user.

Earlier we said that the larger the investment a person has in something, the bigger the stake one has in its outcome. In observing how people used uwm, I found that if people are given the opportunity to tailor their environments, they will. Built-in flexibility invites the user to make an investment in learning how to get the most out of an application. As one becomes more comfortable with the environment one has tailored, the more resistant one becomes to using environments where such customization is difficult or impossible.

Much of the Linux environment today revolves around this axiom. People generally find it troublesome to use Linux at first because it is so flexible. The many choices overwhelm them. From the very start, Linux offers choices: multiple distributions, multiple window managers, multiple desktops, multiple file systems, and so on. You don't have to buy Linux from just one vendor. In fact, you don't even have to buy it at all. You can download it from one of the vendor sites for free.

Eventually, though, users find a way of using Linux that suits them. They choose a distribution and make an investment in learning how to take advantage of the many options. Once the investment reaches a certain level, it becomes very difficult to go back to other operating systems. They reach a point where their stake in Linux has grown so much that they would prefer to change what they don't like about it rather than leave it altogether.

Some people have criticized Linux, saying that it forces users to make a significant investment in learning its user interface before they can become productive with it. With Linux, they argue, it is too easy to shoot oneself in the foot. That may be true. But as Linux advocate Jon "maddog" Hall has asserted, it is better to let one shoot oneself in the foot than never to let one run at all.

Категории