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 ===============================================================================