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.1 required=5.0 tests=BAYES_00, PP_MIME_FAKE_ASCII_TEXT autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII X-Google-Thread: 103376,fce663eaf40b52f6 X-Google-Attributes: gid103376,public Path: controlnews3.google.com!news1.google.com!news.glorb.com!news.cs.univ-paris8.fr!proxad.net!freenix!nnx.oleane.net!oleane!nnrp.oleane.net!skymaster!nobody From: "Jean-Pierre Rosen" Newsgroups: comp.lang.ada Subject: Re: Manifesto against Vector Date: Mon, 10 May 2004 08:49:30 +0200 Organization: Adalog Message-ID: References: <99cf7c.293.ln@skymaster> <8sQmc.11414$V97.6807@newsread1.news.pas.earthlink.net> NNTP-Posting-Host: mailhost.axlog.fr X-Trace: s1.read.news.oleane.net 1084172590 14894 195.25.228.57 (10 May 2004 07:03:10 GMT) X-Complaints-To: abuse@oleane.net NNTP-Posting-Date: Mon, 10 May 2004 07:03:10 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Xref: controlnews3.google.com comp.lang.ada:407 Date: 2004-05-10T08:49:30+02:00 List-Id: "Jeffrey Carter" a �crit dans le message de news:8sQmc.11414$V97.6807@newsread1.news.pas.earthlink.net... > Jean-Pierre Rosen wrote: > > > > But you don't depend logically on something that you don't with. With > > tagged types, you are really calling an implementation (in another > > package) of something that you depend on - which is defined in a > > package that you have withed. > > To my way of thinking, you depend on any types you may have objects of > and anything you may invoke. A derived type is not the same type as its > parent, nor are its operations the same as its parent's operations. > Since type extension is a form of type derivation, I apply the same > rules to type extension that I did to type derivation in Ada 83: the > parent must be either a predefined type, or a type declared in the same > declarative region as the child. Anything else quickly becomes unreadable. > But tagged types (OOP actually) is just about that: being able to add types later, without requiring recompiling existing modules that use the class. I understand that you may not like that; in this case, just don't use tagged types. It was a very deliberate decision to prevent tagged types from invading the whole language, precisely for this reason: they have no effect on people who don't use them. -- --------------------------------------------------------- J-P. Rosen (rosen@adalog.fr) Visit Adalog's web site at http://www.adalog.fr