From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,b87849933931bc93 X-Google-Attributes: gid103376,public X-Google-Thread: fac41,b87849933931bc93 X-Google-Attributes: gidfac41,public X-Google-Thread: 109fba,b87849933931bc93 X-Google-Attributes: gid109fba,public X-Google-Thread: f43e6,b87849933931bc93 X-Google-Attributes: gidf43e6,public X-Google-Thread: 114809,b87849933931bc93 X-Google-Attributes: gid114809,public X-Google-Thread: 1108a1,b87849933931bc93 X-Google-Attributes: gid1108a1,public From: Bertrand Meyer Subject: Re: OO, C++, and something much better! Date: 1997/01/09 Message-ID: <32D536C6.64880EEB@eiffel.com>#1/1 X-Deja-AN: 208751415 references: content-type: text/plain; charset=us-ascii organization: Interactive Software Engineering Inc. mime-version: 1.0 newsgroups: comp.lang.c++,comp.lang.smalltalk,comp.lang.eiffel,comp.lang.ada,comp.object,comp.software-eng x-mailer: Mozilla 3.0Gold (X11; I; SunOS 4.1.3 sun4c) Date: 1997-01-09T00:00:00+00:00 List-Id: Robert I. Eachus wrote: > > > Bertrand Meyer said: > > > In my opinion neither Ada (83 or 95) nor C++ has the combination > > of mechanisms making it possible to have the full power of > > generics in an object-oriented language, as present in Eiffel... > > And then listed four properties, all of which are in Ada 95! I disagree. What Mr. Eachus showed in his message is ways to achieve in Ada 95 the effect of the object-oriented mechanisms I described, as implemented in Eiffel. And he is correct that one can use Ada 95 to obtain many of the same goals. (This would not be true, for example, of C++ and even less of Java.) But this does not mean the "four properties" that I listed are in Ada 95. Anyone who checks my message and the Ada 95 language definition will see that. To the four properties listed in my original I should also add two just as essential requirements: true multiple inheritance, for combining different abstractions (and with the right mechanisms to avoid any ambiguity or conflict); and, most importantly, Design by Contract and the rules on how assertions combine with inheritance. As someone remarked, it is really impossible to understand inheritance without understanding Design by Contract. At some point, of course, one runs into matters of taste. I will again contend, however, that a rational, systematic analysis of O-O principles and how they combine with genericity, information hiding and other software engineering concerns almost inevitably lead to the Eiffel mechanisms. -- Bertrand Meyer, President, ISE Inc., Santa Barbara (California) 805-685-1006, fax 805-685-6869, - ftp://ftp.eiffel.com Visit our Web page: http://www.eiffel.com (including instructions to download Eiffel 4 for Windows)