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.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,d1df6bc3799debed X-Google-Attributes: gid103376,public From: "John G. Volan" Subject: Re: Not intended for use in medical, Date: 1997/05/12 Message-ID: <3376CBF1.EB0@sprintmail.com>#1/1 X-Deja-AN: 241010525 References: <3.0.32.19970423164855.00746db8@mail.4dcomm.com> <5kl9qc$g4d@bcrkh13.bnr.ca> <5kmek2$9re@bcrkh13.bnr.ca> <33727FA5.5C7A@sprintmail.com> <3374C19F.15FE@sprintmail.com> Organization: Sprint Internet Passport Reply-To: johnvolan@sprintmail.com Newsgroups: comp.lang.ada Date: 1997-05-12T00:00:00+00:00 List-Id: Robert Dewar wrote: > > John said > > < perceived by many that Ada9X would be doomed to utter extinction if it > did not become a fully object-oriented language.>> > > This is just wrong, you like to guess about things, but you were not > there, and so it is not surprising that your guesses bear little > relationship to reality. > > One of the things that is becoming generally agreed in programming > languages is that you need both genericity (for parametrized abstractions) > and inheritance (for extensible abstractions. Ada 83 had one and not the > other, This is not precisely correct: Ada83 _did_ have inheritance, which has been often overlooked. Derived types have always inherited their structure, and all their primitive operations (as they are now called), from their parent types. What is new in Ada95 is type _extension_, which tagged types provide, along with classwide programming and dynamic dispatching. I make this point because it is to the credit of the Ada9X team that they were able to achieve the goal of making Ada95 fully OO by taking what was already inherent in Ada83 and extending it in a very natural way, rather than encrusting the language with an entirely new construct (e.g. class types or package types). ------------------------------------------------------------------------ Internet.Usenet.Put_Signature (Name => "John G. Volan", Home_Email => "johnvolan@sprintmail.com", Slogan => "Ada95: The World's *FIRST* International-Standard OOPL", Disclaimer => "These opinions were never defined, so using them " & "would be erroneous...or is that just nondeterministic now? :-) "); ------------------------------------------------------------------------