"Suresh Govindachar" writes:
>Hello,
>
>I defined the concept of an Editable User Interface (EUI)
>on www.sonic.net/~suresh/eui and illustrated it with
I find the following paragraph a little bold in its claim:
The graphical user interface seeks to replace actions by widgets
(such as icons and items in menus) that can be pointed to and
clicked at. The specificity of the actions represented by the
ultimate widgets and the impossibility of dynamically combining the
ultimate widgets leads to the proliferation of widgets in any
moderately complex application's graphical interface (widgets can be
combined statically into a new widget, but one cannot form
mega-widgets as and when needed, dynamically, the way one forms
commands from keystrokes). The graphical interface is very good for
beginning users of applications who execute a few simple actions.
However, the atomicity of a widget's action (minute graphical action
unrelated to the application-related action of the ultimate widget)
and the static nature of the widgets necessitate several
point-and-clicks to achieve the ultimate goal; which binds the user
to the perceptual level.
Acme is an example of a GUI which allows the things you claim as an
"impossibility". You do exactly "form mega-widgets as and when needed,
dynamically, the way one forms commands from keystrokes".
There are only 3 "widgets" in Acme (that I can think of right now anyway):
* "layout boxes" which allows the manipulation of windows
* scrollbars which allow the scrolling of windows
* any piece of text which allows executing commands
Since you can manipulate text (it is a text editor after all) you
can "dynamically" manipulate that last widget to your hearts content.
Also Acme seems to fulfil your "Editable User Interface" concept. In
fact in a 1994 usenix paper [2] Pike describes it as a "User Interface
for Programmers", as opposed to a "text editor". It is by design not
just a text editor, but also a window system and shell. Being a plan9
program it communicates with other processes by being a file server,
but the unix clone (Wily) does so via unix domain sockets, the paper
describes what can be done via that interface.
Of course anything that uses vi must be good, so please don't take
this as criticism, just as pointers to a body of similar work.
[1] http://www.cs.bell-labs.com/magic/man2html/1/acme
[2] http://www.usenix.org/publications/library/proceedings/sf94/full_papers/pike.pdf
--
Sam Holden