The Weekly Juan #4: "Smalltalk,
Direct Manipulation and End User Programming"
Jecel Assumpcao Jr
jecel at merlintec.com
Wed Nov 8 20:44:44 UTC 2006
Juan Vuletich wrote on Mon, 06 Nov 2006 21:02:14 -0300
> The Weekly Juan #4 is out at www.jvuletich.org . Today I talk about
> various Smalltalk user interfaces and how Morphic 3.0 relates with them.
> Hope you like it. Any comment is welcome.
The only thing I would add about MVC is that it makes good use of the
fact that humans have a single locus of attention (chapter 2 of Jef
Raskin's "The Humane Interface" goes into detail about this). So there
is one active object on the screen while all the others are frozen.
Using the pointer position as a proxy for the locus, the Controllers
collaborate to quickly switch which one of them is active. In a similar
way, only the top View can be updated but as soon as the user is
interested in a different View it comes to the top and is refreshed. I
consider this to be the visual equivalent of the "block variables are
really method temporaries" hack in that most people don't notice any
problems. Bill Atkinson from Apple was so convinced he had seen
partially obscured windows being updated in the famous PARC Smalltalk-80
demo that he worked long and hard to come up with a way to reproduce
this for the Lisa and Mac (what he called "region algebra").
While this is fine for business style applications, it was not a good
option for artificial worlds like ARK, Morphic and EToys. Here we
replace the collaborating Controllers with something more similar with
preemptive scheduling, with all objects being constantly polled with
#step messages. Obviously there is a huge price to pay in terms of CPU
I did find this comment about Self a bit strange:
"Most programmers believe the Smalltalk-80 environment is more
productive, and the software built is easier to maintain."
Other than John Maloney's interview in SqueakNews, what other
programmers have expressed this view? While I can't be sure what John
meant, I think he was happy to be using the system browser again where
you get a whole view of the system (like a "map" page in a web site). In
Self there are lots of places where objects you might be interested in
could be hiding besides the "globals" object. As more and more projects
started to live outside the official imagine in Squeak (which happened
long after that interview) this has become a problem here as well,
though the introduction of the SqueakMap did a lot to tame it.
I am typing this in Linux, though I find QNX and Plan 9 far better
technically. The reason is the community (and, as a consequence, the
available software). In the same way I am typing this in Squeak
(Celeste) instead of Self merely because of the community. If people who
have experience using both Self and Squeak feel the latter is "more
productive, and the software built is easier to maintain" I would very
much like to hear about it.
More information about the Squeak-dev