Newsgroups: comp.lang.smalltalk,comp.object
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!news.mathworks.com!hookup!swrinde!pipex!uunet!rcm!rmartin
From: rmartin@rcmcon.com (Robert Martin)
Subject: Re: [Q] Multiple Inheritance
References: <JKVG.95Jan29195005@kamet.ccs.neu.edu> <jim.fleming.83.00063087@bytes.com>
Organization: R. C. M. Consulting Inc. 708-918-1004
Date: Tue, 31 Jan 1995 12:56:52 GMT
Message-ID: <1995Jan31.125652.8046@rcmcon.com>
Lines: 75
Xref: glinda.oz.cs.cmu.edu comp.lang.smalltalk:20102 comp.object:25857


>> (Jagadeesh Krishnamurthy Venugopal) writes:

>>I have heard people that program in other OO languages (read C++ programmers)
>>as saying that one of the major drawbacks of smalltalk as being the fact that
>>it does not support multiple inheritance.

jim.fleming@bytes.com (Jim Fleming) writes:

>You have to be careful, because ALL people that promote languages
>seem to get caught in this sort of "bullet list comparison" war. 

This is true, and it is unfortunate because it stems from
misunderstanding.   As I said in an earlier post, the typing stragegy
of Smalltalk makes MI unnecessary.  Whereas the typing stragegy of C++
makes MI an important tool.

>My suggestion to you is....try to get people to talk about reuse,
>productivity, ease of learning, etc. 

Also, get people to talk about third party support, second sources,
standardization, programmer availability, tools, etc.

>Be very careful with people who
>argue that more XYZ compilers were sold than ZZY, maybe this is
>because more programmers are needed and very little reuse is
>occurring. 

Or perhaps it is because so many programmers have found the language
to be very useful.  

>Also, be careful when people tell you how many books have
>been written. My view is, "is the language so complex that we need
>all of these books?"

Or it could be that the reason there are so many authors, is that
there are so many more programmers.  This could be an advantage since
each of these authors will share his experience and shed new light on
old problems.  

>In general, my suggestion is to look beyond language, look beyond isolated
>features (like multiple inheritance), look at reuse and maintainability...look
>at whether the tools that support the language are written in the
>language...

And look for third party support.  Look for portability and multiple
platform support.  Look for multiple sources for compilers.  Check to
see if the language is being standardized.  Find out how many other
people are using the language, and why.  

>>Since I am but a beginning student in OO theory, I'd be extremely grateful if
>>someone could tell me why multiple inheritance is needed, how if at all it's
>>absence in Smalltalk might be a disadvantage for the programmer, and any
>>techniques that might be used to either simulate multiple inheritance or work
>>around it's absence.

>I have not found multiple inheritance to be very useful. It is very
>complicated and can result in designs that are very hard to
>understand. 

In C++ I have found MI to be extremely useful.  It is easy to use,
and aids in the clarity of my designs, and provides an essential
mechanism for the sharing of interfaces and dependency management.







-- 
Robert Martin       | Design Consulting   | Training courses offered:
Object Mentor Assoc.| rmartin@rcmcon.com  |   Object Oriented Analysis
2080 Cranbrook Rd.  | Tel: (708) 918-1004 |   Object Oriented Design
Green Oaks IL 60048 | Fax: (708) 918-1023 |   C++
