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=-0.8 required=5.0 tests=BAYES_00,INVALID_DATE autolearn=no autolearn_force=no version=3.4.4 Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!ucbvax!enea.se!sommar From: sommar@enea.se (Erland Sommarskog) Newsgroups: comp.lang.ada Subject: Re: Modernizing Ada Message-ID: <8910132028.AA07013@helios.enea.se> Date: 13 Oct 89 20:28:34 GMT Sender: daemon@ucbvax.BERKELEY.EDU List-Id: Bill Wolfe writes: >Tucker Taft (stt@inmet) writes: >> Here is the wording from the Ada9x project plan: >> A revision requirement that does not meet the "upward compatibility" >> criteria will only be considered if it affects a very large >> portion of the Ada community and its absence in the >> revised standard has a serious negative impact on application development. > > Multiple inheritance, for example, meets both criteria and therefore > should be considered regardless of whether or not upward compatibility > is affected. Every effort must be made to minimize the difficulty of > the transition, but not at the expense of capabilities which are vital > to the modernization of our software engineering technology. It's not that I have anything against multiple inheritance, rather the opposite, but I'm not 100% sure that it should be included in Ada 9X. It would like throwing the yeast into the oven while the bread is baking. It's easy to say "multiple inheritance" but it should be implemented too. And I'm not talking compiler technology here. My issue is the langauge definition. The inheritance mechanism should integrated with existing constructs in Ada. Say that you add classes a new compilation unit to Ada. Easy? Yes, but why then keep packages? OK, make the classes package types, but somehow I feel that we will ending up having something in the langauge that will be obsolete once we have a inheritance mechanism, multiple or not. And, by the way, isn't there a very simple reason why Ada don't have inhertiance and dynamic binding today? Wasn't that explicitly forbidden in the requirements? Have the requirements changed? (Well, that's not unlikely, because it was not a sound requirement.) Getting inheritance into Ada would give us an Ada++ with the same advantages and disadvantages as C++. Compatible, but at the cost of keeping constructs that shouldn't be there. It is possible that the refusal to accept inheritance in Ada way back in 1980 will mean that Ada never becomes the star as intened. But that might as will be the case if we exclude inheritance from 9X or if we include it. In the latter case because the language gets too large with redundant features. All this said with the following reservation: I haven't seen any concrete proposal on how an inheritance mechanism in Ada should be look like. Therefore is my discussion on the consequences on such a construct somewhat hypothetical, but so is everybody else's too. -- Erland Sommarskog - ENEA Data, Stockholm - sommar@enea.se "My baby's a 26. On a scale from one to ten, my baby's a 26." - Chic