Design Principles Behind Smalltalk, Revisited (humor)

Paul D. Fernhout pdfernhout at kurtz-fernhout.com
Wed Jan 3 14:54:35 UTC 2007


Laurence Rozier wrote:
> While there are certainly valuable insights in "Data & Reality" and I would
> agree that some data objects are merely "tools of thought", *many* objects
> have meaning and exist independent of our view/model. Quantum physics does
> tell us that  the boundries of "things" are hard to define precisely but
> "things" themselves as aggregates are held together by forces of nature not
> by external views. A keyboard can be remapped in software and different
> people using it can have different views of the individual key "objects".
> Even the keyboard itself could be viewed differently - a word processor,
> game controller, or a cash register. However, any observer, human, machine
> or otherwise observer of measurable physical characteristics of the 
> keyboard
> will not see any changes. The wave-functions underlying all of the
> sub-atomic particles making up that keyboard have a unique history going
> back at least to just after the big bang.

Thanks for the other comments.

On the "keyboard" analogy:

Consider if you move to a Dvorack layout on your keyboard instead of 
Qwerty. Then you  might need to pry off all the keycaps and move them 
around. Suddenly you do not have "a keyboard". What you have is a 
collection of keycaps (perhaps some broken in the process of removing 
them) plus a base (perhaps with a keyboard switch or two damaged by 
prying). Your mind has followed this situation, where something you 
thought was an object has now been decomposed into multiple items, some of 
which even have subitems or subareas which are not obviously removable 
(broken switches soldered on the keyboard base) yet behave differently. To 
model this requires a lot of subtly with boundaries not being obvious -- 
with the boundaries fluidly moving around depending on the questions we 
have or the intent we have or the actions we take.

Or, what if, say, a rabid ocelot has just wondered into your office?
  http://en.wikipedia.org/wiki/Ocelot
Suddenly your mental model of your entire office might shift to -- what 
item can I throw at the foaming-mouthed ocelot to keep it away from me and 
give me enough time to escape past it through the door? The closest thing 
at hand is the keyboard. Suddenly your mental model of the keyboard needs 
to switch from "data entry device" to "ocelot management system". You have 
to think about issues like will the cable be long enough if I throw it 
as-is or will the plug disconnect from the computer if hurled with enough 
force? Or will the computer itself move with it if I toss it? And all in 
an instant. So, suddenly your whole mapping of the possibilities and uses 
of your keyboard needs to change, and in less time than it takes that 
rabid ocelot to move from your door to your desk. A typical ST80 
simulation of a computer could not be used in that way, but your mind can 
do it easily and quickly.

So there is a gap here between the flexibility of the way your brain 
models physical objects and processes and intent and the way we build 
limited computer models using ST80. Your brain makes the switch in 
microseconds; it might take weeks or months to change a simulation of a 
keyboard as data input to keyboard as thrown object (let alone model a 
rabid ocelot :-). And there remain subtle problems -- is the keyboard an 
independent "object" if you have to think about the cable and how it is 
attached to another independent "object, the computer? Perhaps this set of 
problems is just solvable with a good class library; if so, I haven't seen 
it yet. :-) Perhaps the latest version of Inform?
   http://www.inform-fiction.org/I7/Inform%207.html
But even there, it seems like a lot of hand crafting of rules specific to 
the needs of the story. Essentially, our minds' model of reality is much 
more subtle and fluid than that of "object" even if we appear to be seeing 
them all the time. And it works so well we don't even notice these abrupt 
shifts in representation -- except perhaps when we laugh as a perspective 
shifting joke. :-) Consider:
   http://www.funsulting.com/september_2004_newsletter.html
 From there: "Illegal aliens have always been a problem in the United 
States. Ask any [American] Indian."

Our mind has a much deeper and greater and more flexible command of the 
notion of "objects" and "classes" in relation to "need" or "intent" than 
the Smalltalk environment has, at the very least. And these perspective 
shifts are often the basis of creativity. And it is exactly enhancing 
creativity which is Smalltalk's stated design goal. So maybe we need a 
software modeling environment for modeling jokes about objects and 
classes. :-)  Again from the above link: """Research has linked the 
creative and humor portions of our brains. Several studies showed that 
humor leads to creativity. One of the most creative uses of humor is seen 
in the comedic style of Stephen Wright. His one liner’s take normal 
everyday concepts and show us a creative, and playful, way of seeing them. 
Here are some examples:
“I spilled Spot Remover on my dog... Now he's gone.”
“I went to a general store. They wouldn't let me buy anything specifically.”
Many of us hear his jokes and immediately see the humor in the different 
perspective. Interestingly, by exposing ourselves to this kind of humor, 
we are also more likely to be creative. Since the creative process 
involves seeing new things or new points of view, humor is a logical jump 
starter to creativity."""
Maybe, ultimately, the problem with Smalltalk and its very rigid class 
based view of the world is it is too serious a programming environment? 
Maybe it needs to lighten up a little? Learn to laugh at itself? :-)
How would one even begin to tell a joke (and get laughter in response) in 
Smalltalk-80?

As someone else in the thread put it, it is a general principle of 
mathematical model building what we are just making a simplification of 
reality for our purposes. I'll agree, but I will still not let Smalltalk 
off the hook -- since our mind is able to build and rebuild these models 
seemingly in an instant -- even in the punch line of a joke -- whereas 
Smalltalk coding takes a long time. And I only hold ST80 to such high 
standards as it aspires to them (forget about C++; no hope of a sense of 
humor there. :-) '

There is some sort of mismatch going on here between the mind and 
Smalltalk's object model. What it is in its entirety I am not sure. But 
clearly the tools at hand in Smalltalk-80 can't match the minds 
flexibility in object-oriented (and other) modeling. Yet it is very much a 
stated design goal in Dan's original paper to have the Smalltalk software 
environment be a good match for how the mind actually works. So, here, as 
exemplified by humor, we have a mismatch. Essentially, Smalltalk code 
isn't funny. :-)

Granted eToys may be "fun", but that is not the same as being "funny".
How could you tell a joke to eToys and have it laugh? Or how could eToys 
invent new jokes and tell them to you for your approval? Perhaps this 
starts to border on AI?

Anyway, writing this inspired me to Google on programs that invent jokes, 
and I got this:
   http://news.bbc.co.uk/1/hi/technology/5275544.stm
"""Computer scientists in Scotland developed the program for children who 
need to use computerised speech aids. The team said enabling non-speaking 
children to use puns and other jokes would help them to develop their 
language and communication skills. The researchers admitted some of the 
computer-generated puns were terrible, but said the children who had tried 
the technology loved them. ...Children using the software can choose a 
word or compound word, which will form some or all of the punch line, from 
the system's dictionary. The program then writes the joke's opener. It 
works by comparing the selected word with other words in its dictionary 
for phonetic similarity or concepts that link the words together, and then 
fits them into a pun template. ... Dr Waller said: "The kids have been 
superb, they have taken to the software like fish to water. They have been 
regaling everybody with their jokes." She said it seemed to have boosted 
their confidence as well as their language skills. "It gives these kids 
the ability to control conversations, perhaps for the first time, it gives 
them the ability to entertain other people. And their self-image improves 
too."  """

Related web sites:
   http://www.computing.dundee.ac.uk/staff/awaller/research.asp
   http://groups.inf.ed.ac.uk/standup/
 From the last: "We are exploring how humour may be used to help 
non-speaking children learn to use language more effectively. There is 
evidence to suggest that language play, including using puns and other 
jokes, has a beneficial effect on a child's developing language and 
communication skills. Children with communication impairments are often 
reliant on augmented communication aids in order to carry on 
conversations, but these aids give little scope for generating novel 
language. This inhibits experimentation with language and limits the 
trying out of humorous ideas, which can in turn have a stultifying effect 
on language development. We propose to address this deficiency in the 
language environment of the non-speaking child by providing a software 
tool which promotes humorous language play. Starting from our previous 
research on the automated generation of punning riddles, we will design 
and implement a program which allows the user to experiment with the 
construction of simple jokes. The user interface of this system will be 
specially designed to be accessible to children with communication and 
physical disabilities. We will then test the efficacy of the system by 
observing and evaluating the use of the software by the children."

Perhaps there in Dr. Waller's lab is the future of Smalltalk? :-)

> Today, more and more so-called information systems are being used not just
> for description but to augment/effect the external world. In this
> evolving hyperlinked
> meshverse of simulation and
> "reality"<http://www.meshverse.com/2006/11/20/hyperlinking-reality/>,
> data often enters into a symbiotic relationship with "reality" where
> changing views can change "reality".  The "real" Mars Climate
> Orbiter<http://en.wikipedia.org/wiki/Mars_Climate_Orbiter>object was
> destroyed because it was dependent on the data a model object
> had. If one  accepts that a paradigm shift is underway which Croquet offers
> something of value in, then there are important
> ramifications<http://croquet.funkencode.com/2006/04/24/the-64-billion-dollar-question/>for 
> database and language choices.

Thanks for the links. I'll agree that as the "noosphere" or "nooverse" 
continues to develops,
   http://en.wikipedia.org/wiki/Pierre_Teilhard_de_Chardin
   http://en.wikipedia.org/wiki/Noosphere
we'll see more bridging of mental models (incarnated in computers or not) 
and the physical world, where such abstract constructs have unexpected 
effects on the physical world. I heop this project has poticve effects in 
that direction (intended to be a GPL'd matter replicator, which can 
reproduce itself):
   http://reprap.org/
Still, we have been seeing this link of model (data) and reality for some 
time, and not just on an individual level -- I'm sure we've all had to 
deal with government bureaucracies or corporate hierarchies or classroom 
settings where our problem or need did not match the pigeonholes or 
procedures the organization had for dealing with individuals (especially 
creative ones. :-) How does a bureaucracy deal with humor? It often can't.
Consider:
   "The Soviet Joke Book"
   http://www.st-andrews.ac.uk/~pv/courses/sovrus/jokes.html
An anecdote told during the Brezhnev era: Stalin, Khrushchev and Brezhnev 
were all travelling together in a railway carriage, when unexpectedly the 
train stopped. Stalin put his head out of the window and shouted, "Shoot 
the driver!" But the train didn't start moving. Khrushchev then shouted, 
"Rehabilitate the driver!" But it still didn't move. Brezhnev then said, 
"Comrades, Comrades, let's draw the curtains, turn on the gramophone and 
let's pretend we're moving!" After Gorbachev came to power another line 
was added, in which he suggests: "Comrades, let's get out and push."

The history of Smalltalk-80 is itself an example of that -- ST80 didn't 
fit Steve Job's model when he saw it, so he ignored most of it, and gave 
us only the GUI window part in the Macintosh. Or considering my comments 
above, essentially, Steve did not get most of the joke. :-) The idea of 
making source and development tools available to end users did not match 
the notion of run-time fees, so we ended up with an absurd focus on 
"packaging" and "image stripping" and "shrinking" even to this day, so 
again considering the above, ParcPlace did not see the humor in a free 
Smalltalk. :-) But now we do.

--Paul Fernhout




More information about the Squeak-dev mailing list