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.4 required=5.0 tests=BAYES_00,FORGED_MUA_MOZILLA autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,66fae8c862b81b17 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,UTF8 Received: by 10.180.105.198 with SMTP id go6mr866971wib.2.1352289836736; Wed, 07 Nov 2012 04:03:56 -0800 (PST) Path: ha8ni158340wib.1!nntp.google.com!feeder3.cambriumusenet.nl!feed.tweaknews.nl!194.109.133.84.MISMATCH!newsfeed.xs4all.nl!newsfeed5.news.xs4all.nl!xs4all!feeder.erje.net!eu.feeder.erje.net!news2.arglkargh.de!noris.net!newsfeed.arcor.de!newsspool1.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Wed, 07 Nov 2012 13:03:08 +0100 From: Georg Bauhaus User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:16.0) Gecko/20121026 Thunderbird/16.0.2 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Copy vector in Ada References: <1aWdnbcg_8-BzAzNnZ2dnUVZ_j6dnZ2d@giganews.com> <6260a796-83c4-4ce5-88cb-8249846bc035@googlegroups.com> <10y91ckm54l57$.8u8bbq342u1b.dlg@40tude.net> <2164bc1a-a841-46ed-bfef-4ddcae4d64f7@googlegroups.com> <1ccf2169-418c-44b7-9d5a-b684a017fbe7@googlegroups.com> <1r3lpzblxy43h$.zytp8ur1bg27$.dlg@40tude.net> <1k3sjasg1wftm$.1vlq5hm7vukhk.dlg@40tude.net> <1sinhhpvja1gx.1ue7br8bz2slq$.dlg@40tude.net> <5098f58c$0$6558$9b4e6d93@newsspool4.arcor-online.net> In-Reply-To: X-Enigmail-Version: 1.4.5 Message-ID: <509a4dfb$0$6642$9b4e6d93@newsspool2.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 07 Nov 2012 13:03:07 CET NNTP-Posting-Host: 0317bdc1.newsspool2.arcor-online.net X-Trace: DXC=i]05AZXf_Mj>jlK2>IgHGdA9EHlD;3Ycb4Fo<]lROoRa8kFjLh>_cHTX3jmZaf\VXEgB\i X-Complaints-To: usenet-abuse@arcor.de Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Date: 2012-11-07T13:03:07+01:00 List-Id: On 06.11.12 20:47, Yannick Duchêne (Hibou57) wrote: > Now, talking about proper naming of things, how would you explain to a > student, that sometime “type” must follow the substitution principle, and > sometime, it do exactly the opposite? The challenge is to explain why the substitution principle is a valid commandment: A valuable piece of formal theory, it may not offer sufficient justification in the workplace. Why? Because the workplace is governed by rules that language theory/ideology/religion/principles will not normally cover. A similar example will explain why principles like a theoretically clean notion may turn out to be pointless, even a hindrance once they are used outside the clean room: Sometimes programs would modify themselves in a perfectly, provably safe way, leading to sufficient performance in terms of time and storage. And no matter what one might have to say about their design, only by violating today's principles could they achieve their stated goals. Today, it may not even be possible to run such programs, because modifications are detected, and the program is stopped. Principles have changed. But are these self-modifying programs not "programs" anymore because they were "improperly named `programs'"? Similarly, I'll say that "inheritance" without further adjectives is just insufficiently defined, and void of purpose (for the workplace). And any single definition cannot name the "right" inheritance. So we have "Thou shalt follow the substitution principle!" and "today's orthodoxy of language theory". (Well, actually, the 1980s' theory, or even earlier.) That said, I wish there was more software whose designers had followed the substitution principle, and not reused hash tables as parents, say. (Even when that's practical if you have the source.)