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,c5f68ab74d5099ee X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.68.74.201 with SMTP id w9mr3314561pbv.0.1324428296154; Tue, 20 Dec 2011 16:44:56 -0800 (PST) Path: lh20ni46024pbb.0!nntp.google.com!news1.google.com!volia.net!news2.volia.net!feed-A.news.volia.net!news.musoftware.de!wum.musoftware.de!newsfeed.straub-nv.de!uucp.gnuu.de!newsfeed.arcor.de!newsspool4.arcor-online.net!news.arcor.de.POSTED!not-for-mail Date: Wed, 21 Dec 2011 01:44:51 +0100 From: Georg Bauhaus User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:8.0) Gecko/20111105 Thunderbird/8.0 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Interfaces.Shift_Left References: <18214312-82f5-45c4-b20d-cb530b500929@h3g2000yqa.googlegroups.com> <5f989095-5c1c-4b23-a538-d70f4718b4b1@l19g2000yqc.googlegroups.com> <9ktu5mFn31U1@mid.individual.net> <9l71m2FlhuU1@mid.individual.net> <9lc6bqFfhrU1@mid.individual.net> In-Reply-To: Message-ID: <4ef12c03$0$6583$9b4e6d93@newsspool3.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 21 Dec 2011 01:44:51 CET NNTP-Posting-Host: 3bfc44a0.newsspool3.arcor-online.net X-Trace: DXC=e:?>FFmD9@kfF8a^:6>b7eMcF=Q^Z^V3h4Fo<]lROoRa8kFfNfPCY\c7>ejVhLTFfGUoDj\fW3XAGcf\Sef X-Complaints-To: usenet-abuse@arcor.de Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Date: 2011-12-21T01:44:51+01:00 List-Id: On 21.12.11 00:36, Randy Brukardt wrote: > > Another truly valuable feature of Ada is the complete coverage rule for case > statements, aggregates, and the like. The amount of time that it can save > when adding a new kind of thing (enumeration literal, record component, > etc.) is amazing. (As the compiler points out the places you've forgotten to > change; errors of omission are by far the hardest to find.) But again, this > is a tough sell until you've had the compiler find errors for you. Coverage of all cases is already being sold with other, uhum, languages: The mechanism appears to be effective, but technically and economically, and is catering to both types of programmers: those who love to know the sharpness of C tools and to software engineers (pragmatic style). "Static analysis" allows the compilers to warn about cases not covered in switches in imperative C languages. Similarly, warnings about argument pattern matching not being exhaustive is about the same for the ML family of functional languages; advanced compilers will issue the warnings when translating the definition of function by cases. Thus, the programmers who know what they are doing (who therefore do not need Ada) can continue to know what they are doing *and* turn on warnings about coverage *as* *needed*. No bullying compiler is in the way, as is always the case with Ada.(*) When no one is listening, the makers of static analysis tools might even note that coverage rules were always present in Ada. Creating and using analysis tools adds flexibility, though, if rules are left informal in the respective virtual languages that the tools will establish. So each of the vendors can define their own informal language tacked onto the respective language. Everyone is happy, members of the virtual in-group of tool users share in a gentlemen's agreement, and no language standard gets in the way of creative business. All of this is possible without dragging in that dated, expensive government language. :-) __ (*) Reminds me of a story told by Richard Riehle about a big floor cleaning device that was really easy to push in one direction or other but only if you learn how to operate the massive thing. Then, a single finger would suffice. But why buy a floor cleaning device if brooms and rags are so much cheaper?