On Thu, 5 May 2005, David Naseby wrote:

> On 5/5/05, Joel VanderWerf <vjoel / path.berkeley.edu> wrote:
>> Ara.T.Howard wrote:
>> ...
>>>   - Traits can be composed: trait composition is symmetric and conflicting
>>>   methods are excluded from the composition
>> ...
>>> i cannot see how this differs from mixins?  for example:
>>
>> The operation of mixing in modules is not commutative.
>>
>> class C1
>>    include M1
>>    include M2
>> end
>>
>> class C2
>>    include M2
>>    include M1
>> end
>>
>> C1 and C2 may have radically different behavior. I guess using ruby
>> modules as traits in this sense would require either some checking in
>> #module_included, or some global registry of which modules are allowed
>> to define which methods.
>>
>>
>
> They do; as I have (partially) written up on
> http://homepages.ihug.com.au/~naseby/33.html
>
> Traits are mixins, just exceedingly polite ones.

i apologize for not reading this earlier!  i must agree that this sounds like
one of those things that's deemed a good idea because it's an abstraction that
promotes reuse.  the funny thing is that, in my experience, abstraction sits
atop a fine line and too much can kill.  like most things the middle path
seems best.

so - do you mind that i stole the traits name?  some seemed to have.  ;-)

cheers.

-a
-- 
===============================================================================
| email :: ara [dot] t [dot] howard [at] noaa [dot] gov
| phone :: 303.497.6469
| renunciation is not getting rid of the things of this world, but accepting
| that they pass away. --aitken roshi
===============================================================================