Thread Links Date Links
Thread Prev Thread Next Thread Index Date Prev Date Next Date Index

RE: multiple inheritance




   I think everyone is right on this issue, just in different 
contexts.  When I was doing object oriented programming to support expert 
systems and blackboard systems development I was firmly convinced that 
multiple inheritance was a bad thing.  As a practical matter it was hard 
enough to debug code with singly inherited behaviors.  Multiple inheritance 
made maintenance and debugging even more difficult, and this was not offset 
by the representational value that feature added.
   However, once I began creating declarative systems in formal logic, I 
became equally convinced that multiple inheritance, when used with care, 
was an essential facility to have at one's disposal.  The advantages of 
ontology composition, handling reasoning in different contexts, and the 
"elaboration tolerance" (to use McCarthy's term) of systems were clear when 
multiple inheritance was available.
   My argument may be unsatisfying because is it both anecdotal and simply 
practical.  It is possible to write good C++ code that uses multiple 
inheritance and it is possible to write a good ontology (at least up to a 
certain size) which doesn't.  It just makes life easier to have things the 
other way around.

Adam



-----------------
Adam Pease
Teknowledge
(650) 424-0500 x571