Half-baked UI goals/proposal

Chris Harris chharris@u.washington.edu
Tue, 27 Dec 1994 23:14:44 -0800 (PST)


Here's some half-baked thoughts on the UI stuff.  If anyone wants to rip 
it to shreads, feel free.  As for me, I think its time for bed.  =)

-Chris

UI Project
==========
Coordinator: Chris Harris
Members: 

Purpose: To create a (set of) user interface(s) for the TUNES project.  Note
         that UI includes every aspect of user interaction, and not just
         some pretty little pictures.

Goals/Proposal
==============

    We don't know where UI technology will be going in the next few years, so
its best to keep an open mind/API where the interface is concerned.  Therefore,
I propose a modular UI system.  When a user logs in, he(r) is presented with
a primary UI of their choice.  Their interaction is then funneled through
this UI from the programs they wish to run to the native hardware
    Eventually, though, its likely that the user will run into a program
which does not support his/her primary UI.  If this is the case, a secondary
UI will be loaded, and allocated display space within the primary UI.  Totally
incompatible programs cannot be run, and will result in an error.
    Such a system could certainly be expandable enough to enclose any sort of
UI we might need, and with enough standards, there might not be too much
incompatibility.  If things are thought-through enough, it might be possible
to have the same APIs for a 2D or 3D program, and let the user switch
between the two at runtime.


    With that said, there are some goals that each UI module should try to
accomplish:

1. Easy to use - Attractive-looking systems are great, but if there isn't a
     productive way to get something done, people won't like it.  Each
     availible UI should have some sort of purpose and/or specialty.

2. Attractive/Fun to use - A UI should obviously have some human appeal to it,
     weather its because its powerful, elegant, or whatever.

3. Minimal abstraction - The OS will be designed well enough (Right guys?) that
     that the higher-level internals of the system will be logical enough for
     the user to understand.  Why now present it to him/her like it is, then?
     (Note: this is a general rule; certain UIs may better accomplish a certain
     problem via abstraction.)

4. Easy to learn - This one's a big tricky, since it can violate goal #1 in
     some cases.  If we don't go out of our way to make it difficult, we'll
     probably be fine.  =)



"If patterns of 1s and 0s were 'like' patterns of human lives and death,
if everything about an individual could be represented in a computer by a
long string of 1s and 0s, then what kind of creature would be represented
by a long string of lives and deaths?"  --Thomas Pynchon