According to Pierre Phaneuf:
I strongly advises *agains't* multiple inheritance. It is the OOP
'goto'
equivalent. Everything MI can do, you can do without MI if you design
<snip snip>
- are there existing Pascal standards (ANSI Object Pascal, Delphi) requiring it? (I *really* don't know.)
<snip snip>
Hi,
I, also, am against MI as it, along with quite a lot of features of C/C++, make it quite a dangerous language for writing reliable programs.... Having said that I think that Interface support along the lines of Delphi 3.0/ Java IS a good idea..Unfortunately it would take quite a bit to implement I guess and (if done the Delphi way) would "tie" you to an ActiveX/OLE way of doing things as everything in Delphi 3.0 is based on the IUnknown interface with it's associated AddRef, QueryInterface and Release methods.....
Just my 2p's worth, Dave
---- From: Peter Gerwinski peter@agnes.dida.physik.uni-essen.de To: gpc@hut.fi Date: 28 May 1997 11:17 Subject: Multiple inheritance (Was: OOP)
According to Pierre Phaneuf:
I strongly advises *agains't* multiple inheritance. It is the OOP
'goto'
equivalent. Everything MI can do, you can do without MI if you design well. C++ is the bloated monster we know today in part because of that pseudo-feature. Neither Modula-3 or Oberon has multiple inheritance and both have been used in programming operating systems and huges
projects.
I don't vote for or against multiple inheritance, but
are there existing Pascal standards (ANSI Object Pascal, Delphi) requiring it? (I *really* don't know.)
There are few places in my planned object hierarchy (I am *also* working on a completely new library;) where MI could be useful: There are several independent branches of recursive objects, say `VisibleObj' and `DataObj', which all have a `Child ( i: Integer )' method returning the `i'th child. It would be nice to implement some stuff, say a `ForEach' method, in a common ancestor. Without MI, this common ancestor must be a *very* "low" object, `BaseObj' itself, the parent of all objects. I am not sure if it is wise to make *every* object in the hierarchy potentially recursive.
Whether we want to use it or not, I would like to think about how to implement it due to academical curiousity.
(* And: C++ has it, and we must demonstrate that GPC is not inferior.
;*)
Greetings,
Peter
Dipl.-Phys. Peter Gerwinski, Essen, Germany, free physicist and
programmer
peter.gerwinski@uni-essen.de - http://home.pages.de/~peter.gerwinski/
[970201]
maintainer GNU Pascal [970510] - http://home.pages.de/~gnu-pascal/
[970125]
On Wed, 28 May 1997, David Fiddes wrote:
I, also, am against MI as it, along with quite a lot of features of C/C++, make it quite a dangerous language for writing reliable programs.... Having said that I think that Interface support along the lines of Delphi 3.0/ Java IS a good idea..Unfortunately it would take quite a bit to implement I guess and (if done the Delphi way) would "tie" you to an ActiveX/OLE way of doing things as everything in Delphi 3.0 is based on the IUnknown interface with it's associated AddRef, QueryInterface and Release methods.....
If we have to have a MI-like feature, it should be something less dangerous, like interfaces, not the real thing/poison.
Pierre Phaneuf
"The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense." - Edsger W. Dijkstra.