Is the GNU/Linux desktop headed in the right direction? Recently, I have started to wonder.
Despite the emphasis that major distributions place upon usability, nobody seems to ask the question about what definition of usability is being assumed, or what kind of users that definition produces. Or, whether those users will be capable of reaching the free software goal of being able to control their own computing.
The conventional wisdom is that free software began by mostly ignoring usability issues. It was software designed by geeks and for geeks, and functionality was more important than ease of use.
Then, gradually, influenced by documents such as the GNOME Human Interface Guidelines and the freedesktop.org standards, the community became aware of the need to consider usability, and came to rival the standards of proprietary software.
Now, with KDE and GNOME taking the desktop in new directions, Ubuntu overhauling usability, and OpenOffice.org revamping its look and feel via Project Renaissance, free software is in the middle of yet another great leap forward in usability.
In this story, the conventional wisdom has a lot of truth. Most of what passed for graphical interfaces a decade ago is hopelessly cluttered and directionless by modern standards. Nor can anyone deny that usability in free software still needs improvement. However, what the story leaves out is that the definition of usability that everyone takes for granted threatens to leave the traditions of free software behind -- and, in doing so, to rob free software of its main strengths.
You rarely find the assumptions behind modern usability discussed except in passing. However, the most basic principle is that a graphical interface should provide the functionality that most users need most often. In other words, a graphical interface is usually assumed to leave out functionality, and to be designed primarily for beginners.
The trouble with this assumption -- like many others -- is that it easily becomes a self-fulfilling prophecy. All interface designers that I met have told me that it is impossible to design a desktop application that includes all possible functionality or meets the need of every possible user. Besides, they add, if you tried, users would suffer the anxiety of having too many choices. And so you get file managers, for instance, that have less than a third of the functionality of basic commands like cp or mv.
But is this limitation inevitable? Granted, the assumption can create highly efficient (if limited) interfaces like the OS X desktop. Admittedly, too, I have seen botched efforts to make fully functional desktop apps, such as one I saw some years ago whose designers imagined that dropping all the options on to tabs was all that was needed to provide a front end for Apache.
Yet some efforts to provide full functionality do exist. For example, I have seen a number of applications such as Firefox that tidy up functionality that is of interest only to advanced users into a separate window or tab. So clearly, adding at least some additional complexity is some times possible. Nor is complexity stinted in such areas as customization, where free software users insist upon every possible option.
However, exactly how much complexity is possible in an interface or how often it can be added remains largely unknown, because those who design interfaces rarely experiment to find out. Because of their basic assumption, they already expect such efforts to fail, so they never attempt them.
In much the same way, I find myself wondering whether new users should be the target for interfaces. In 2009, I suspect, the new user is as mythical as a unicorn. Is there anyone left in industrial countries who has a use for a computer who doesn't already have one? Does anyone approach a new application without some familiarity with the conventions of layout? While the effort to simplify as much as possible shouldn't be abandoned, I do wonder if usability assumptions are now consistently under-estimating the adaptability of their audience.
Besides, even if intermediate and advanced users are not a majority, they are part of the audience as well, so at least some interface design should have them in mind. Too often, though, usability seems to ignore them entirely.
One reason why the basic design assumptions go largely unquestioned is probably the fact that usability is still a relatively new concern in free software. However, an even greater reason may be that operating systems like GNU/Linux already have a full-function interface designed for experts. It's called the command line.