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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,29d8139471e3f53e X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII Path: g2news1.google.com!postnews.google.com!k9g2000vbo.googlegroups.com!not-for-mail From: Cyrille Newsgroups: comp.lang.ada Subject: Re: Preventing type extensions Date: Tue, 21 Sep 2010 06:57:36 -0700 (PDT) Organization: http://groups.google.com Message-ID: References: <87iq2bfenl.fsf@mid.deneb.enyo.de> <874odv9npv.fsf@ludovic-brenta.org> <87y6b7cedd.fsf@mid.deneb.enyo.de> <66a3704c-54f9-4f04-8860-aa12f516134b@t3g2000vbb.googlegroups.com> <87d3sib44t.fsf@mid.deneb.enyo.de> <134q4k2ly2pf4$.17nlv1q6q5ivo.dlg@40tude.net> <4c8dec8e$0$6990$9b4e6d93@newsspool4.arcor-online.net> <8f6cceFrv2U1@mid.individual.net> <135a7dc9-3943-45e4-884b-3cc6bce3db0a@q18g2000vbm.googlegroups.com> NNTP-Posting-Host: 212.99.106.125 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1285077456 25356 127.0.0.1 (21 Sep 2010 13:57:36 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 21 Sep 2010 13:57:36 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: k9g2000vbo.googlegroups.com; posting-host=212.99.106.125; posting-account=bNhsVwoAAAB6XmNPWgYcbUm6npIwL2C4 User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.9.2.10) Gecko/20100914 Firefox/3.6.10 ( .NET CLR 3.5.30729),gzip(gfe) Xref: g2news1.google.com comp.lang.ada:14168 Date: 2010-09-21T06:57:36-07:00 List-Id: On Sep 13, 11:13=A0pm, "J-P. Rosen" wrote: > These arguments make sense for languages without the notion of > class-wide types. all OO languages I'm aware of, have the notion of classwide types... They just don't make the distinction between a type on its own and a type with its derived types. If you think about it, it is a peculiar distinction at the "design" level. A horse is an animal... When I deal with animals, I must be ready to accept that maybe the animal I'm dealing with may be a horse, or may be something else. It's peculiar to expect it to be the pure notion of "animal" and nothing else... > However, I think that redispatching can be replaced > with class-wide operations, with great benefits from the POV of testing. In some cases, it may be true. Generally speaking, it is an important to distinguish between primitive operrations and class wide operations. They both have their use. If you are suggesting the rule "any primitive operation that calls another primitive op of the same type (that usually is when redispatch should occur) must be transformed into a class-wide operation", I'm afraid this is a fierce restriction... much fiercer than the simple dispatch rule... which imposes one particular style of programming. > Cyril, will you come to the workshop? That would be very valuable. No, I don't plan to go. Note that on our side, we are already working on our own set of recommendations... maybe we should try to find a vehicle more permanent than a conference to make a community effort on this...