Object interaction. Was: Squackers, Tenth-Birthday-of-Squeak edition - Fireworks!!

Trygve Reenskaug trygver at ifi.uio.no
Thu Oct 5 14:06:14 UTC 2006

Hear, hear!

The essence of object orientation is that objects interact to accomplish 
some desired functionality.

The essential questions are:
(1) What are the objects?
(2) How are they interlinked?
(3) How do they interact? (What happens in the inter-object space?)

Powerful abstractions for (1) are the class and the *role*:
* The class abstraction defines what an object IS.
* The role abstraction defines what an object DOES in a community of 
interacting objects. (Its responsibility in this context)

My *role model* is a possible abstraction for (2). It defines roles and the 
links between them. A simplified version is called *collaboration* in UML. 
(Misunderstood in UML 1.x. Much better in UML 2.x. But still missing 
important concepts.)

There are many candidates for (3). Algorithms, interactions, state 
machines, activities/data flow.

I still dream of extending Squeak with languages and metaclasses  for 
objects/roles/collaborations/interactions. In my first attempt, I got lost 
in the intricacies of low level library code. I hope 3.9 and Spoon will 
make life easier (for me :-)).

More at


At 23:12 03.10.2006, Bill Schwab wrote:
>I always thought how objects communicated to be interesting. I think of
>water or air as both a way to touch, communicate and connect with other
>objects, and at the same time, a carrier of objects to remote
>destinations. There is just something wonderful about the flow between
>real-life objects. Water can exist in many forms and it can carry
>objects to many places - it has a way of getting in the way of humans;
>and it's hard to control, no matter how hard we try... certainly more
>redundant than the Internet!
>Same with air, it can carry sound waves that could be music or noise -
>of which the quality is listener dependent :-) It can have disastrous
>effects too - like carrying deadly spores.
>Common internet protocols carry malware, and even the occasional
>Microsoft service pack =:0
>So, while I think encapsulated objects in software design is productive
>and fun, I don't think we spend enough time inventing new ways to
>communicate between objects. Or, at least I don't spend enough time
>thinking about it. Most likely, I'm naive about it.
>Far be it from me to call another Smalltalker naive.  It might help to
>think of the way atoms and molecules interact, which (chemically at
>least) is via electron clouds, and a few other field effects.  All of
>the other stuff is higher level, which one would model using objects and
>messages vs. extending the VM and details of message sending - at least
>With that said, note the following:
>which puts you in good company.


Trygve Reenskaug      mailto: trygver at ifi.uio.no
Morgedalsvn. 5A       http://heim.ifi.uio.no/~trygver
N-0378 Oslo           Tel: (+47) 22 49 57 27

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20061005/fbf391ac/attachment.htm

More information about the Squeak-dev mailing list