How about... something completely different? (Re: [squeak-dev]
Re: On traits composition)
siguctua at gmail.com
Wed Dec 9 05:16:56 UTC 2009
2009/12/9 Göran Krampe <goran at krampe.se>:
> 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.
>> - 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:
> ^(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)
Hmm, how is it different to inheritance?
I mean, you can achieve similar effect by making
an instance of Foo class superclass to be x, and x superclass to be y.
> 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
Igor Stasenko AKA sig.
More information about the Squeak-dev