Half-baked UI goals/proposal

Chris Harris chharris@u.washington.edu
Wed, 28 Dec 1994 16:37:58 -0800 (PST)


On Wed, 28 Dec 1994, Mike Prince wrote:

> On Tue, 27 Dec 1994, Chris Harris wrote:
> 
> > Goals/Proposal
> > ==============
> [snip]
> 
> I fully agree with modularity and expandability.
> 
> I like your analogy to a funnel.  Raul (I think) and I discussed several 
> months ago a data encapsulation scheme.  I was imagining a UI whereas all 
> requests would go into your UI funnel in the form of encapsulated data.  
> Your UI (actually a mini-interpreter) would decompose this "message", 
> executing what it could, and passing off sub-components to other modules.

check.

> If our OS has the capability to send messages to cells just by name then 
> to increase the capability of you UI, you'd create a cell with the 
> requisite functionality, and include a reference to it in your message to 
> the UI (the encapsulated data).  Forth like example;
> 
> HelloWorld:	// cell name
> 	"Hello World!" PrintString return
> 
> Main:		// another cell name
> 	[ "Explicit print" PrintString "HelloWorld" CALL ] UI
> 	end
> 
> This is actually pretty close to the way I envision the LLL looking.  The
> first HelloWorld creates a cell by the name "HelloWorld" which is put
> into the domain directory.  The cell pushes the string "HelloWorld!" onto 
> the stack and calls the cell PrintString.  An underlying detail is that
> each agent holds a variable naming it's output device, so PrintString
> knows where to print (which window for example).

Afraid I disagree with you here.  First, I don't think people want to 
interact with cells.  I see higher-level objects etc. as a better base 
for UI.  There has to be something at the low level, though, so this 
might be it.  (I'm working on some HLL thoughts, so I'll pass those on 
perhaps tonight.)

Most of my UI thoughts have been on a fairly conventional 2d surface, so 
let me talk about it in that light.  I think if the user wanted to print 
HelloWorld, they would create a new text field or reference one that 
already exists, and then send it a print message containing 
"HelloWorld".  (Actually, I'd probably send the text a message to print 
itself on the text field, but that's a minor point.)  This same agent 
could also reference any text field (within reason), and would not be 
limited to only one.

[snip]

> I'm fine with your goals.  I'll try to get you some documentation for 
> what I'm working on so we stay in sync as much as possible.  I'm 
> appreciative for you taking this idea and running with it.  Hopefully 
> we'll have some code running together soon!
> 
> Mike

Well, at least we can agree there.  I'm afraid this is turning into 
another high-level vs. low-level war, which is not good, to say the 
least.  I think the user interface, though, ultimately needs to be a 
higher-level concept, as the users ultimately won't care about the LLL 
and its details.

I got a book on PC graphics programming the other day, and it looks 
pretty good.  I'd like to start experimenting a bit with some stuff here, 
but I don't know how to get Linux to allow me to access the hardware 
directly, and I don't have a DOS compiler.  My hunch is that info is 
stashed on this neat CD-ROM I have, but I can't find a cable that'll go 
from my super-new SCSI port to a plain 50-pin.  =)  If anyone has any 
hints on this, please let me know.  If I'm going to be playing a lot with 
graphics, I'd like to know something about it.  =)

-Chris