2007/12/3, Ilan Berci <coder68 / yahoo.com>:
> MI in C++ eventually leads to diamond ambiguities which eventually leads
> to scope resolution operators spread throughout your entire code base
> and/or private inheritance.  For more on this subject, please consult
> Lippmann, Meyers, Fowler
>
> Oh... one more thing.. mixins are not MI.  Ruby doesn't support MI and I
> believe it doesn't intend to.  Anyone who has dealt with diamond
> ambiguities is very glad of this fact.  Each class in Ruby has one and
> only one super.

Mostly agree.  But: you can include any number of modules and thus
achieve /MI of behavior/ in Ruby.  The diamond issue does not come up
for two reasons: first, there is just one scope for instance
variables, not multiple like in C++.  Second, Ruby imposes an order on
all super classes and mixins, that's why there is only one "super".
So while Ruby works differently than C++ and Eiffel you can justify
the claim that it supports MI.

Kind regards

robert

-- 
use.inject do |as, often| as.you_can - without end