What makes up a "User" in a Class Object? (was Well factored Objects)

Darius squeakuser at inglang.com
Thu May 1 22:14:11 UTC 2003


>> Why is there no persistent class representing the user in total? 
>
>Squeak being a personal multimedia environment, it could probably be
>said that any image is some representation of the user. 

And if I have more than one image... ??
Does that mean I’m now “User ver 3.5” ?  :)

>> Isn’t the most cherished person in our programming life, the "user", more 
than an I/O port?
>> 
>Because that's the bit you're interested in. If there's one sure sign 
>of an object modeler type gone wrong, it is that he starts modeling
>reality without constraining himself with actual needs. 

Generally true. Except in this case, the need (having gone unstated in my prior 
posting) is to have all the right information in the right place w/o too much 
effort finding it and too much effort organizing how it’s display. 

UI & cognition concerns itself with the essentials of the very meaning of all 
computer use needs and how to express them.

It’s a need that users have a hard time expressing due to the psychological 
principle that if it’s printed on paper or on a computer display, it’s suppose 
to be that way and that it’s the best and only way.

Most don’t know about or even imagine keystroke/mouse automation macros at an 
OS level. “Auto-complete” is mostly in an OS. In Squeak we can search for and 
text label on any morph/form. You can’t do that in a MS Office application. 
There you can search the help document and hope the help document has the text 
label of the form/dialog box in it. Such a concept doesn’t occur to a vast 
majority of users and is hidden in Squeak to the casual user. 

Is there a commonly known place in the Squeak environment where the user can 
fill out a form to express himself that “I don’t like how this works in Squeak 
& I don’t know how to change it”? And if they do make a change it’s only an 
effect, another choice (of a great many) to make for the next user (do I need 
or don’t need” rather than a model to be reused. Why they did it is only in the 
comments, not in a model.

A user interface is a compression of a large amount of data into a very small 
view port to that data and to the commands that operate on that data. Much of 
what’s hidden (the data, data nesting structure, the display format, and 
potential operations on the data) remain in the user’s memory. So, there is 
much more to a mouse movement than “Where did it go?”

A mouse movement can be very inefficient if it takes 30 mouse clicks, movements 
crossing the entire display, and several different commands to put two pieces 
of data together. But Squeak doesn’t care. There is no representation 
of “that’s too far for a user to go” in Squeak.

One could say that’s for a good UI designer to know. Another would say “Where’s 
the designer’s tool box so that everyone benefits from an expert’s knowledge?” 
Would one say there should be no Collection Object hierarchy since that’s what 
data structure designers should know how to do?

The interface is as essential to organizing knowledge as a Collection.

> Note that you do the same. If you hand your credit card to a 
> warehouse clerk, all you are interested in is where that clerk's hand
> is and whether it already has taken hold of the card so you can let 
> go. You couldn't care less about his email address.

But if his hand makes a copy of the card number & exp date of everyone who’s 
given him their card in the queue before me, I might not want to give him my 
card no matter where his hand is! And I’ll not let go if he does grab it!

>> Why don’t we create class hierarchies of our GUIs to match the
>> already researched rules of cognitive science?
> 
>Because cognitive science tells us the domain is too complex to be
>modeled by simple class hierarchies?

But OOP advertises itself a “better” because it more closely matches reality 
and accommodates data and rules at any level of complexity. Is not Squeak 
the “idea processor”, yet it remains ignorant of the process by which ideas are 
created & expressed. I’m not talking about the mathematical models but logical 
models to efficiently answer the user’s questions of “what”, “when”, “where”, 
and “why” and sometimes “how” and “who”.

>> Jef Raskins The Humane Interface 
>Best laugh I had in a long time, this article. The guy steps up and
>invents Emacs/Vim with a lot of fanfare. 

Very true. But don’t forget, Emacs/Vim has only been for programmers - the 
heavy data users & manipulators of the past. Most GUI & OS users have no clue 
such a thing exists! Now everyone is a heavy data user but OS tools haven’t 
grown to match.

Even Squeak claims to try to remove the line between user & programmer. 
Educating the user to his/her new role and new needs hasn’t grown to match.

It’s the “design with the intent of creating habits, efficient productive 
habits” that’s important.

For example, how many OO programmers (or super-users) know the 7 +/- 2 rule of 
thumb for not taxing short term memory? Or even better rules for not taxing 
human limits. 

http://www.findarticles.com/cf_dls/g2699/0003/2699000312/print.jhtml

It’s not a mathematical formula or algorithm... just a guide how objects could 
be visually juxtaposed, sequentially presented over time, or categorized. 
Keyword: “Chunking”. It can be applied to any menu, list, hierarchical outline, 
number of windows, number of widgets, or number of minimized window title bars, 
length of window, pages in a BookMorph. From that rule we also get the use of 
white space in GeeMail Morphs, the use of bullet points, paragraphs and heading 
in text, etc. There can be automated procedures for optimizing data 
presentation time & space to facilitate an expressed purpose if given the 
requirements and known human limits and preference... something a little better 
than “staggerPolicyString” .

Web design brings this more to the public’s attention; but, who would make the 
link between a web designer and a Squeak user creating/manipulating morphs?



> As far as a 'multi-modal' interface is concerned, I do agree that 
> Squeak relies a bit too much on the mouse alone. But also, I think 
> that Squeak should have mouse gestures - there's a gesture recognizer
> in there after all, and I heard good reports on them. There's a lot 
> of work to be done here...

I’d say fundamentally essential work with a great payoff at the end in terms of 
accessibility and popularity (of Squeak).

>From time to time I still astound folks with Alt-Tab, Ctrl-C, Ctrl-V, Ctrl-A, 
and Ctrl-Shft-End along with other keyboard magic in the MS world.

Cheers,
Darius



More information about the Squeak-dev mailing list