Maui utility (was: MVC vs. Morphic)

Brian T. Rice water at tunes.org
Sat Sep 4 17:47:13 UTC 2004


Hi Chris,

I think what you're doing is interesting. You should check out CLIM's 
idea of a "presentation" which is an direct manipulation information 
object (think of it as an "interface noun"). Basically they annotate the 
part of the scene on the screen that represents something with the 
underlying object and a wrapper type to handle UI style behavior / verbs 
(menu options and actions).

The general experience of CLIM is that you just grab something and 
"present" it with some options, and it will automatically become this 
self-contained thing on the screen that remembers what object it stands 
for, and can change representation and still remember the object 
trivially. Also this works when you type words in or code, the pieces of 
code that mean something are turned by an interface-aware parser into 
code presentations, VERY MUCH like tiles, only dynamically / 
incrementally. Waving your mouse over things makes presentations 
self-highlight according to the context. Basically if you have a verb 
waiting for an object, the type requested will filter out non-applicable 
or non-translatable objects and only highlight what you care about.

It's really really powerful, but I'll leave the rest of the explanation 
to others... Here are some links:

http://cliki.net/CLIM
http://cliki.tunes.org/CLIM (some explanations I wrote, some demo videos 
at the bottom)
http://www.sts.tu-harburg.de/~r.f.moeller/uims-clim/clim-intro.html is 
generally a good explanation of the concepts.
http://clim.mikemac.com/images/index.html These are McCLIM screenshots. 
McCLIM is a free CLIM that you can run on linux or OS X right now. The 
Listener application has some very interesting applications of 
presentations.

There's a PhD thesis linked from 1984 or so which explains the concept 
but it's not really too much more helpful than the introduction above. 
Basically everyone roughly approximates this concept but the Real Thing 
has to be generic and late-bound and properly supported by a decent 
amount of implementation / style / i/o portability, so all of them miss 
consistency and re-use by 2^N factors of difference.

Disclaimer: this /is/ what I'm merging with Morphic in Slate.

Chris Muller wrote:

>>This sounds really interesting.  What is your primary goal in creating  
>>Maui?
> 
> 
> The primary goal is to minimize the effort required to have an interface to a
> model of domain instances.  Also, I want user-interface development to be as
> "lazy" (i.e., late) and incremental as possible, rather than having to spend
> chunks of time developing the UI up front (as well as with each change).  So,
> as a domain evolves, I don't close existing UI's on the screen that are
> currently representing "live" domain instances.  Instead, I just reconfigure
> any particular domain instance the way I want, then right-click and save that
> configuration, and all objects using that named configuration automatically
> change, in-place, to match the new shape of the particular one I changed.
> 
>>How do you envision using it?
> 
> I am discovering that building usable UI's where you only can have one object
> per "screen" is proving to be a challenge.. or, at least, requiring different
> thinking than windowy interfaces I'm used to using.  Sometimes I find myself
> tweaking my domain to be more suitable for the UI; something that consternates
> me, at least in principle.
> 
> I'm actually still not sure I'm not gonna run into some sort of major usability
> barrier at some point, I'm still exploring.
> 
> The good part is, UI's built in it can "integrate" with each other as their
> underlying domains allow, without having to write a line of UI code.  For
> example, it would be extremely easy to associate a heterogeneous bunch of
> objects related to a topic; anEmailThread, aWebPageLink; aPdfArticle, and a
> Smalltalk Class into a single OrderedCollection via drag-and-drop.

>  - Chris

-------------- next part --------------
A non-text attachment was scrubbed...
Name: water.vcf
Type: text/x-vcard
Size: 208 bytes
Desc: not available
Url : http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20040904/9f139312/water.vcf


More information about the Squeak-dev mailing list