ANNOUNCE - graphics package
Mon Jan 19 18:05:15 CET 2004
While citations are flying around, does anyone have good references
about very-high-level user interface toolkits?
I have no crisp definition of this. I mean toolkits that have simple
and general programming and user interfaces. Emacs is an excellent
example, despite its obvious graphical limitations, because of these
Small number of objects to deal with:
Buffer (displays text)
Window (displays a buffer)
Frame (what appears on the screen. displays a window, or can be
split between several).
Extend by writing a "command". This is a named function that can
be called to manipulate the current buffers/windows/frames in some
arbitrary way. Examples: make the current window display the
buffer for a particular file; make all windows in the current
frame equally sized; check the spelling of the word at the cursor;
send the contents of the current buffer as an email.
Commands are invoked by name or assigned keys and menus. Modes are
collections of key assignments for related commands that can be
assigned to buffers.
Commands are universal:
Every user interface is composed to buffers, so any command that
works on buffers works on any interface. Search, copy,
pipe-contents-to-shell-command, etc work on absolutely anything,
whether the buffer contains a text-file, unix shell, erlang
This is a great interface. It lets you do things your own way and it
pays back the effort you put into customising it many times over.
Using programs like Mozilla I am *constantly* bumping against little
niggles that I would immediately hack in any high-level interface. But
with "modern" GUIs I have to go into hackstincts-suppression-mode and
just take what I'm given. *Harrumph!* Is there some law of the
universe that I shouldn't be able to select an item from a list by
typing a unique substring of it, rather than pulling scrollbars around
while trying to mentally perform alphabetical-sort ? *Harrumph* I say!
So what better systems are out there? Links, citations, stories?
Anybody actually using one?
It seems the Oberon system has basically the same UI as Emacs.
Presentation-based  interfaces like CLIM  look really groovy.
I've played around a little with McCLIM  and I'm hoping that one
day I can jump ship onto it from Emacs. (Meanwhile I need to learn not
to wretch at the sight of CLOS code.)
There's also Squeak , which seems to be about the fanciest UI
currently available. I don't have a feel for how "high level" it is in
the sense sketched above though. The risk with OO seems to be having a
huge number of datatypes and a small number of ways to manipulate
them. The ultimate test of programmability might be to see if one can
hack it into working solely via the keyboard, killing two birds with
one stone :-)
Luke (looking for an Emacs replacement year after year after year..)
1: Presentation Based User Interfaces
2: User Interface Management Systems: The CLIM Perspective
3: McCLIM: A Free Implementation of CLIM
4: Squeak Smalltalk
More information about the erlang-questions