On 2010-09-14, at 17:39, Tom Van Cutsem wrote:

> It is true that original traits are always stateless. This is not so much to
> avoid name conflicts as to avoid the whole problem of diamond inheritance
> (duplicate state inherited via different inheritance paths, cf. C++'s
> virtual inheritance).

Off topic, but the "problem of diamond inheritance" is a myth IMO.  It come's 
from C++'s premature optimization[*] of property access in instances to 
base+offset and shared methods -- it is not an intrinsic problem of OOP.  In 
many OOP languages (most with a Lisp lineage), what C++ calls "virtual 
inheritance" is the norm, not the exception.

Original traits, again IMO, propagated this myth by declining to include state.

---
[*] Or less generously, compiler's simplicity.
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to