CLIM - cool UI reading material

Brian T Rice water at tunes.org
Sun Aug 10 19:05:51 UTC 2003


I should comment on this, since this has been a major influence on my UI
system design work for the last half a year.

CLIM is a very big system to grasp and to implement, so learning it should
not be taken lightly. It's also the case that a lot of the core concepts
tie together, so it can often be hard to implement one feature without 3
more.

I'm writing a paper as I go about the design choices and issues for
Slate's UI, and periodically updating the version here:
http://slate.tunes.org/ui/

Anyway, here are some additional comments:

On Sun, 10 Aug 2003, Daniel Vainsencher wrote:

> Hi guys. I've been thinking about making Squeaks UI more easily
> extensible these days. Brian T. Rice clued me unto CLIM, a smart UI
> infrastructure for Common Lisp. Like everything about CL, I find it a
> little alien but in a "deep thoughts" kind of way.
>
> In their textual UI, for example, output is not printed, it is
> presented, so that the presentation is aware of its underlying meaning.

This is not just true of the textual UI, but also true for graphics that
represent something. In fact, the textual and graphical programmers'
interfaces are as similar as possible and can be embedded within each
other. It's also the case that the GUI actions and text-shell (listener)
commands are based on the exact same object system, and can be used with
each other.

> As a nice start we could do in this direction, think about having a
> print it variant that attaches a Text attribute to each string that
> holds the identity of the object printed, and for example, lets you in
> the menu create a variable for it or open an explorer on it.

That would be a start, yes. I'm not sure how far it will get you, though.

> Input is also smart - they have type-aware autocompletion, so it knows
> what type the arguments should be, and highlights literals on the screen
> which are approriate, so that if you click them, they become input.

Those types being "ui types", a group of classes specifically for
displaying and interacting with objects on-screen, and nearly
transparently (ie you don't have to resort to using an explorer or "naked
object"). It's basically what Morphic Wrappers is aiming at without
knowing it.

-- 
Brian T. Rice
LOGOS Research and Development
http://tunes.org/~water/



More information about the Squeak-dev mailing list