<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
Hello, all:
<p>Take a look at the Darwin project. It is an extension of Java supporting
a
<br>form of delegation, so you get both classes and delegation.
<p><A HREF="http://javalab.cs.uni-bonn.de/research/darwin/darwin_eng.html">http://javalab.cs.uni-bonn.de/research/darwin/darwin_eng.html</A>
<p>In Gúnther Kniesel's Ph.. thesis, page 165  he states:
<br>These are no problems of the deisgn patterns themselves, but of the
<br>underlying object model, which provides no suitable means to
<br>implement the patterns. He says to look at the book of the GOF
<br>page 309 where he states dynamic inheritance would be a desirable
<br>implementation for the state pattern. This was found in an earlier
<br>version of Self!
<p>The granularity of language support for design patterns is subject to
debate.
<br>Some authors insist that every pattern needs its specific language
support,
<br>others point out that this would be overwhelming and argue that the
common
<br>needs of many different patterns should be identificied and
<br>supported by generic mechanisms.
<br>Günther thinks  that delegation is such a generic mechanism.In
page 28
<br>he states
<br>Different sharing mechanisms are required not just by different types
<br>of software development processes but, more importantly, by different
<br>types of applications.
<br>Each type of sharing that is intrinsic to an application should easily
be
<br>expressible.
<p>All types of sharing must be supported equally well by widespread
<br>production programming languages and conceptual modelling
<br>techniques.
<p>The functionality that motivated the synthesis: modelling of behaviour
<br>evolution.
<br>A model of object-oriented languages that support both behaviour
<br>evolution and unanticipated extension would be a highly desirable
<br>tool for every analyst, designer and programmer.
<br>Prototype and delegation-based languages can directly express
<br>changes of structure and behaviour but do not provide safety
<br>guarantees like static typing and
<br>guaranteed uniform structure of groups of objects, which are
<br>widely considered indispensable for production programming..
<p>Well, when I started  in 1988 to be concerned with  programming
<br>languages of course I was fascinated with this story of
<br>types.
<p>I was afraid of Lisp because it is atyped. Besides the fact it
<br>doesn't feet my needs.
<p>Then in 1996 I read a paper written by Ole Agesen and published
<br>at ECOOP'95 where I realized that only in appearance Self is
<br>not typed for the user. The types are all included in the compiler.
<br>Sorry I do not have the paper with me here.
<p>So can you explain to me how this story works?
<p>Then I fell in love with Self  and abandoned programming in Beta.
<br> 
<p>Moreover Günther states Class-based languages essentially
<br>model object specific properties and their dynamic change by
<br>trying to mimic delegation.(page 39)
<br>The class-based variants of the two basic scenarios for
<br>modelling anticipated and unanticipated change by simulating
<br>delegation are illustrated in Figure 3.1 and 3.2.
<br>These scenarios can be regarded as meta-patterns that
<br>distill the technical essence common to varios design
<br>patterns
<br>The scenario illustrated in Fig.1 is characteristic for the
<br>flyweight, state and strategy pattern. The scenario
<br>in fig. 2 is characteristic for the bridge, decorator, chain
<br>of responsibility and proxy pattern.
<br>The first deals with anticipated property addition, deletion
<br>and update and the other deals with unanticipated property
<br>addition, deletion and update.
<br>Then in section 3.6 he proceeds examining how
<br>the operational details of delegation are simulated.
<br>(page 40-48).
<br>Honestly this kind of analysis I cannot even read.
<br>What's wrong here? I do not know because I am able
<br>to follow detailed papers like those written by
<br>Luca Cardelli or the above written by Ole Agesen.
<br>so
<p>In page 50 he concludes stating that the most promising
<br>approach to unanticipated behaviour evolution is the
<br>integration of delegation into statically typed class-based
<br>models.
<p>Can someone explain to me in a way that  enables
<br>a right-sided thinker to understand this?
<p>I abandoned Beta because the Beta group showed
<br>in the book about the Mjolner environment the
<br>disadvantages of the environment concerned
<br>with a typed language. Then they build a bridge
<br>for me to understand an exploratory programming
<br>environment.
<p>I do not know much about Java but I know enough
<br>to be aware it is not superior to Self .
<p>Cheers
<br>Albertina
<br> 
<br> 
<br> 
<br> 
<br> 
<pre>-- 
.----------------------------------------------------------.
| Albertina Lourenci                                       |
| PhD  in Architecture and Urbanism                        |
| post-doctorate researcher                                |
| Laboratory of Integrated Systems University of Sao Paulo |
| Avenida Professor Luciano Gualberto, 158 Travessa 3      |
| CEP: 05508-900                                           |
| Sao Paulo Sao Paulo State Brazil                         |
| Voice: +55 011 818 5254                                  |
| Fax: +55 11 211 4574                                     |
.----------------------------------------------------------.</pre>
 </html>