The SelfLanguage UserInterface
See terse overview in section 4 of the short paper http://www.merlintec.com/lsi/jpaper8.html
There's also a 20-minute Self video that you can download from http://www.smalltalk.org.br/movies/
, which might help you get a little bit of the flavour of the Self UI.
"Our goal is to make the user interface invisible, and thus make Self objects and the Self world real."
Can somebody please explain what in the heck this is supposed to mean?!?
What you see on the screen is exactly what is in the system, one to one. Manipulate the object on the screen and the object in the system changes, and vice versa. The "See" notes below explain part of it.
- Well, not quite. While it's true that what's on screen is exactly what's in the system, it is NOT true that what's in the system is exactly what's on the screen. See below.
- The important thing about making the interface invisible is that Self's morphic is not at all like Squeak's morphic.
Richard, have you played with Self's Morphic at all? I'd be very interested to hear your criticisms of it. -- AdamSpitz
Haven't had the opportunity. Only read the docs and seen the movie. My general impression of Self's UI is that it's the best thing out there. However, it's far, far from perfect. In fact, it's far from perfect even when measured against its own design goals. It fails on directness.
One of the things I noticed in the video is that there's a lot of poping up and dismissing of objects. These are purely interface controls with no meaning to the structure of the system. The only way to eliminate these interface controls is to show the user everything in the system all at once
but to leave most of the system far away in the distance where it's not visible until the user navigates to it. The key here is that you have to eliminate popups by making them automatic, and absolutely eliminate any movement of objects across the screen at the user's command.
Mostly I don't blame Self's UI for these imperfections because the only way to resolve them is to go 3D. That's the only means possible to have enough space to show everything in the system, yet allow the user the freedom to focus on what they want. -- rk
I agree that it's annoying, but I'm not sure that going 3D would solve the problem. If the objects don't move, how do you figure out where to put each of them? I want to focus on different groups of objects at different times, but the groups can't really be statically determined - sometimes I want A, B, and C to be close to each other, and sometimes I want A, M, and Q to be close to each other, and... it just seems like you'd end up wanting everything to be close to everything else. -- AdamSpitz
potentially addresses that kind of issue. -- dm
In Windows, you can have icons automatically arrange themselves or you can have them free floating. I'm merely arguing that the latter is an interface design smell which should never be allowed to exist. If you want to rearrange the topology of the objects, then you do it by rearranging the underlying structure, or creating a parallel structure with the new topology in it. As long as you're not limited to hierarchies, this should always work. -- rk