Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!usc!julius.cs.uiuc.edu!ux1.cso.uiuc.edu!ux1.cso.uiuc.edu!m.cs.uiuc.edu!johnson From: johnson@m.cs.uiuc.edu Newsgroups: comp.object Subject: Re: Examples of Multiple Inheritance? Message-ID: <77500069@m.cs.uiuc.edu> Date: 7 Dec 90 12:41:00 GMT References: <60700005@inmet> Lines: 20 Nf-ID: #R:inmet:60700005:m.cs.uiuc.edu:77500069:000:979 Nf-From: m.cs.uiuc.edu!johnson Dec 7 06:41:00 1990 >MI in traditional OO languages implements composition of interfaces >mainly, and subsidiarily composition of implementations (or viceversa >depending on the style of language). Normally (with some exception in >Eiffel and a few others) it deals not with composition of semantics. I could argue with this (and will). MI in the Lisp world is primarily composition of implementations. It is clear from Dan Halbert's description of MI in Trellis that MI is used there primarily for composition of interfaces. Thus, MI means different things to different people. Most of you are probably tired of hearing that I think that interface and implementation should be reused by different mechanisms; i.e. I think that types and classes are different, and that subclassing and subtyping should be different as well. MI of interface is important, but I would be happy to live without MI of implementation. In fact, I do! Ralph Johnson -- University of Illinois at Urbana-Champaign