Mostly, multiple inheritance is difficult to implement well in a simple enough form.
The only language I know of that has a reasonably usable version of it is Eiffel (probably Nit too, but I don't know enough about it http://nitlanguage.org). There is the diamond inheritance problem, the problem that inheritance (even in Smalltalk) mixes subtyping (interface extension) and reuse of implementation, problems of how to linearize method lookup, etc. On 28 January 2015 at 16:41, Laura Risani <laura.ris...@gmail.com> wrote: > Hi all, > > What is the explanation why Smalltalk designers preferred single > inheritance+traits to multiple inheritance? Why is the former better than > the latter? > Do traits let you share state also or only behavior? > > Best, > Laura >