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=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.4 X-Google-Thread: 103376,21960280f1d61e84 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!newsfeed.icl.net!proxad.net!cleanfeed3-a.proxad.net!nnrp18-1.free.fr!not-for-mail Return-Path: From: "Randy Brukardt" To: Subject: RE: How come Ada isn't more popular? Date: Fri, 9 Feb 2007 22:18:51 -0600 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook IMO, Build 9.0.6604 (9.0.2911.0) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1807 Importance: Normal X-Trash-Finder: Limited filtering for message, local (outbound) source X-Virus-Scanned: amavisd-new at ada-france.org X-BeenThere: comp.lang.ada@ada-france.org X-Mailman-Version: 2.1.9rc1 Precedence: list List-Id: "Gateway to the comp.lang.ada Usenet newsgroup" List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.ada Message-ID: X-Leafnode-NNTP-Posting-Host: 88.191.17.134 Organization: Guest of ProXad - France NNTP-Posting-Date: 10 Feb 2007 05:20:02 MET NNTP-Posting-Host: 88.191.14.223 X-Trace: 1171081202 news-4.free.fr 430 88.191.14.223:48493 X-Complaints-To: abuse@proxad.net Xref: g2news2.google.com comp.lang.ada:9220 Date: 2007-02-10T05:20:02+01:00 Dmitry A. Kazakov writes: ... > Because it does not compose upon inheritance and aggregation. > > When inherited the constructing function need to be overridden, even if > null record was the only thing added. That's not true in Ada 2007. (That's a change I strongly opposed, BTW, because it makes prototyping much harder. I usually start an extension with a null record, figure out what needs to be overridden (giving those null bodies), and then implement the actual routines and data. This no longer works, because as soon as you add an extension component you are back to square one.) > Further one can barely publicly > derive anything from T, which breaks encapsulation. Not sure what you mean by this. It's certainly possible for a deivation to break encapsulation (by deriving in a child unit, for instance), but you really have to work at it. It is annoying that we couldn't find a way to get composition to work for anything other than :=, =, and stream attributes. (The lack of it for finalization routines is especially aggrevating and error prone.) But the workarounds for constructors aren't particularly bad, especially as you can use extension aggregates in your overridings. (F with ); means that all of the new components are given; and you can pass whatever parameters down to F. Randy.