| |
Unix Programming - Problems in the Design of Unix - Unix Support for GUIs Is Weak
Unix Support for GUIs Is Weak
The Unix experience proves that using a handful of metaphors as
the basis for a framework is a powerful strategy (recall the
discussion of frameworks and shared context in Chapter13). The visual metaphor at the heart of
modern GUIs (files represented by icons, and opened by clicking which
invokes some designated handler program, typically able to create and
edit these files) has proven both successful and long-lived, exerting
a strong hold on users and interface designers ever since Xerox
PARC pioneered it
in the 1970s.
Despite considerable recent effort, in 2003 Unix still
supports this metaphor only poorly and grudgingly — there are
lots of layers, few conventions, and only weak construction utilities.
A typical reaction from a Unix old hand is to suspect that this
reflects deeper problems with the GUI metaphor itself.
|
I think part of the problem is that we still don't have the
metaphor right. For example, on the Mac I drag a file to the
trashcan to delete it, but when I drag it to a disc it gets copied,
and can't drag it to a printer icon to print it because that's done
through the menus. I could go on and on. It's like files were in
OS/360, before Unix came along with its simple (but not too simple),
file idea.
|
|
| --
Steve Johnson
|
|
We quoted Brian Kernighan and Mike Lesk to similar effect in
Chapter11. But the inquiry can't stop with
indicting the GUI, because with all its flaws there is tremendous
demand for GUIs from end users. Supposing we could get the metaphor
right at the level of the design of user interactions, would Unix be
capable of supporting it gracefully?
The answer is: probably not. We touched on this problem in
considering whether the bag-of-bytes model is adequate.
Macintosh-style file attributes may help provide the mechanism for
richer support of GUIs, but it seems very unlikely that they are the
whole answer. Unix's object model doesn't include the right
fundamental constructs. We need to think through what a really strong
framework for GUIs would be like — and, just as importantly,
how it can be integrated with the existing frameworks of Unix. This
is a hard problem, demanding fundamental insights that have yet to
emerge from the noise and confusion of ordinary software engineering
or academic research.
[an error occurred while processing this directive]
|
|