<html>
<body>
Hear, hear!<br><br>
The essence of object orientation is that objects interact to accomplish
some desired functionality.<br><br>
The essential questions are:<br>
(1) What are the objects?<br>
(2) How are they interlinked?<br>
(3) How do they interact? (What happens in the inter-object
space?)<br><br>
Powerful abstractions for (1) are the class and the *role*:<br>
* The <i>class abstraction</i> defines what an object IS.<br>
* The <i>role abstraction</i> defines what an object DOES in a community
of interacting objects. (Its responsibility in this context)<br><br>
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.)<br><br>
There are many candidates for (3). Algorithms, interactions, state
machines, activities/data flow.<br><br>
I still dream of extending Squeak with languages and metaclasses&nbsp;
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 :-)).<br><br>
More at <br>
<a href="http://heim.ifi.uio.no/~trygver/themes/babyuml/babyuml-index.html" eudora="autourl">
http://heim.ifi.uio.no/~trygver/themes/babyuml/babyuml-index.html<br><br>
</a>Cheers<br>
--Trygve<br><br>
At 23:12 03.10.2006, Bill Schwab wrote:<br>
<blockquote type=cite class=cite cite="">Brad,<br><br>
=======================<br>
I always thought how objects communicated to be interesting. I think
of<br>
water or air as both a way to touch, communicate and connect with
other<br>
objects, and at the same time, a carrier of objects to remote<br>
destinations. There is just something wonderful about the flow
between<br>
real-life objects. Water can exist in many forms and it can carry<br>
objects to many places - it has a way of getting in the way of
humans;<br>
and it's hard to control, no matter how hard we try... certainly
more<br>
redundant than the Internet!<br><br>
Same with air, it can carry sound waves that could be music or noise
-<br>
of which the quality is listener dependent :-) It can have
disastrous<br>
effects too - like carrying deadly spores.<br>
=======================<br><br>
Common internet protocols carry malware, and even the occasional<br>
Microsoft service pack =:0<br><br>
<br>
=======================<br>
So, while I think encapsulated objects in software design is
productive<br>
and fun, I don't think we spend enough time inventing new ways to<br>
communicate between objects. Or, at least I don't spend enough time<br>
thinking about it. Most likely, I'm naive about it.<br>
=======================<br><br>
Far be it from me to call another Smalltalker naive.&nbsp; It might help
to<br>
think of the way atoms and molecules interact, which (chemically at<br>
least) is via electron clouds, and a few other field effects.&nbsp; All
of<br>
the other stuff is higher level, which one would model using objects
and<br>
messages vs. extending the VM and details of message sending - at
least<br>
IMHO.<br><br>
With that said, note the following:<br>
&nbsp;&nbsp; <br>
<a href="http://lists.squeakfoundation.org/pipermail/squeak-dev/1998-October/017019.html" eudora="autourl">
http://lists.squeakfoundation.org/pipermail/squeak-dev/1998-October/017019.html</a>
<br><br>
which puts you in good company.<br><br>
Bill</blockquote><br>
<x-sigsep><p></x-sigsep>
-- <br><br>
Trygve Reenskaug&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mailto:
trygver@ifi.uio.no<br>
Morgedalsvn. 5A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<a href="http://heim.ifi.uio.no/~trygver" eudora="autourl">
http://heim.ifi.uio.no/~trygver<br>
</a>N-0378
Oslo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Tel:
(+47) 22 49 57 27<br>
Norway<br>
</body>
<br>
</html>