With the possible exception of my own posts, I think the discussion
about interfaces on this list has been very civil and constructive,
which is great. I've noticed that user interface discussions
elsewhere get acrimonious pretty fast, which is a shame.
At least with code, if we've agreed on the behavior we want, there's a
consensus that "correct", "understandable", and "fast enough" are the
values. We don't care so much how we get there, which gives us a lot
of freedom in working together. But there really isn't any consensus
on what makes a good user interface. One man's meat is apparently
another man's poison.
But I don't think that's really true. I think we grant too much
authority to personal taste, because we're in a primitive phase of
understanding user interfaces:
- We're each reasoning from our own experiences, so when clashes
arise, we have no customary practice for resolving them. Your
experiences are simply different from mine, full stop.
- We're unable to distinguish the effects of our own habituation from
the independent qualities of the interface.
Emacs: "I don't mind remembering that M-~ clears the buffer-modified flag."
vi: "Sure, ~ just operates on one character, instead of being
followed by a motion command, like everything else. It's okay."
make: "Sure, the build process hides your warnings amongst thirty
pages of `all is well'. But it's okay, I've got an Emacs mode to go
find them for me. Sure, if a file gets only warnings, it doesn't
need recompilation, so you'll never see the warning again. Just do
`make clean' every once in a while to stir them up again."
And these limitations make it hard for groups to make choices. The
available methods of persuasion are weak, so you're effectively
beholden to the intuition of the folks making the decisions. And
since that intuition isn't shaped by any coherent theory, it's certain
to be wrong, often.
I recently read Jef Raskin's book, _The Humane Interface_, and I
really enjoyed it. Rather than recommending specific implementation
techniques, it provides principles and metrics for assessing
interfaces. So it's not biased towards GUI's --- it's completely
clear how command-line, non-mousey interfaces can be vastly superior
to GUI's. (Finally, a UI person who doesn't tell us we're stupid!)
You can read it and say, "Wow, *that's* what I like about Emacs." You
can understand why the Bryce raytracer was able to completely ditch
the Macintosh look-and-feel and get a vastly superior interface. You
can understand why even using Motif well doesn't guarantee a decent
result.
Received on Sat Oct 21 14:36:13 2006