[squeak-dev] Re: How about... something completely different? (Re: Re: On traits composition)

Alejandro F. Reimondo aleReimondo at smalltalking.net
Wed Dec 9 12:30:25 UTC 2009


Hi,

>My original thoughts on this matter was that I wanted to have something 
>more like (biological) cells - entities that are made up of smaller things 
>(objects), that have an inside and an outside (made up of other objects 
>instead of abstractions like the interface/implementation distinction), 
>that forward signals (messages) to the appropriate receptors etc. What 
>you're describing is very much in line with my thoughts at that point which 
>also included more actor-like structures (some of which was later realized 
>in Tweak and once I found E got an even stronger version in Croquet).

IMO the main problem is that we[*] continue thinking we have
 classes in Smalltalk (and some people not updated about smalltalk
 still think we only use classification, and do not have support for
 alternative delegation schemas).
If we consider we have species (we have an open system, so, classes
 concept is not correct), and consider the effect of our actions (external
 actors) through time; we can complement OO techniques with
 activities in a sustainable open system.
imo it was ok in th e80's to say "Object subclass:..." but today,
 if we recognize/observe evolution in a Smalltalk system,
 we should stop speaking about classes, and start
 considering species (the distintion will not come from people
 talking about closed systems nor dynamic languages).

As a sustainable open system, the bigbang of Smalltalk is only an instant
 in its history (not really important after it has happened); and
 the "contents of smalltalk" is also irrelevant; in aSmaltalk,
 anything can change, and it will continue been aSmalltalk "instance".
Sometimes we put more attention in "design" and other
 models because that make us "understand" faster what is
 inside aSmalltalk; but that reductions (and use of encapsulation)
 also reveal the limits of OO and the reductionist method.

We do not have a choice in technical field, because we are
 forced today to define object models... also for behavior!!!
We are using machines, and we don´t know how to program
 without writing code [**]. That make us be tempted to decompose
 any element in smaller parts... going to the basic,
 the ideal, the abstract, the formula.
In industry, the power of decomposition to basic concepts
 are also irrelevant (smalltalk has been the object ambience
 most used in software industry); and condensation of experience
 is always stored as classification based schemas; other forms
 of delegation are funny/elegant and used in marginal situations,
 complementing classification based structures.

if we consider other forms of delegation and try to surpass
 the limits of OO instead of forcing the globe down to the
 waters of (oo) languages; imo we contribute to what
 make Smalltalk something unique from it birth up today.

Returning to te topic "How about... something completelly diferent?"
 we are not doing something diferent; we are doing something
 complementary.
Activities in an open system complements the use of OO techniques.
The result of that activities are cristalized in classification based 
structures.

cheers,
Ale.
[*] we= who call himself a Smalltalker.
[**] hiding evidence of change of behavior in object systems
 without canges of code. In contrary to our convenience,
 because that way, code oriented people continue speaking
 about a "better language for all the world"; stoping any
 advance in complementary techniques/activities.



----- Original Message ----- 
From: "Andreas Raab" <andreas.raab at gmx.de>
To: "The general-purpose Squeak developers list" 
<squeak-dev at lists.squeakfoundation.org>
Sent: Tuesday, December 08, 2009 9:08 PM
Subject: [squeak-dev] Re: How about... something completely different? (Re: 
Re: On traits composition)


> Hi Göran -
>
> Unbelievable. You basically just described the very idea that started this 
> whole traits thing. When Nathanael worked with us at Disney, the traits 
> direction came out of discussions where we wanted him to think precisely 
> along the lines you're describing. My original thoughts on this matter was 
> that I wanted to have something more like (biological) cells - entities 
> that are made up of smaller things (objects), that have an inside and an 
> outside (made up of other objects instead of abstractions like the 
> interface/implementation distinction), that forward signals (messages) to 
> the appropriate receptors etc. What you're describing is very much in line 
> with my thoughts at that point which also included more actor-like 
> structures (some of which was later realized in Tweak and once I found E 
> got an even stronger version in Croquet).
>
> Cheers,
>   - Andreas
>
> Göran Krampe wrote:
>> Hi all!
>>
>> Andreas Raab wrote:
>>> BTW, I really don't think there is much difference between mixins and 
>>> traits; all forms of MI are fairly equivalent.
>>>
>>> Cheers,
>>>   - Andreas
>>
>> As most of us I was also very positive when Traits first came to the 
>> scene. Now, I am a lot more jaded and think "well, sure, but are they 
>> worth it?".
>>
>> Given Andreas' statement above - wouldn't it be *much* cooler to evolve 
>> Smalltalk along the axis of composition instead of the axis of 
>> inheritance?
>>
>> I have always thought that having better mechanisms for delegation would 
>> be awesome, and would in most ways be much more powerful than inheritance 
>> (in whichever form).
>>
>> For example, what if one could declare that for class Foo (having ivars 
>> x, y, z) any message that would result in a DNU would instead be 
>> "delegated" to ivar x (and then y if no lookup is found in x either).
>>
>> This would be equivalent to tons of messages in Foo like:
>>
>> Foo>>name
>>     ^(x respondsTo: #name) ifTrue: [x name] ifFalse: [y name]
>>
>> (well, kinda, you get the picture - but also, taking care of x/y 
>> returning "self" in which case we probably should return the "Foo self" 
>> instead etc)
>>
>> In many ways the mechanism I am describing is "built into" languages like 
>> self and Slate (I think).
>>
>> IMHO the above is very useful and would allow fine grained composition 
>> similar to Traits but in a dynamic more object centric fashion.
>>
>> regards, Göran
>>
>>
>>
>
>
> 





More information about the Squeak-dev mailing list