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.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,c406e0c4a6eb74ed X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news1.google.com!newshub.sdsu.edu!elnk-nf2-pas!elnk-pas-nf1!newsfeed.earthlink.net!stamper.news.pas.earthlink.net!newsread3.news.pas.earthlink.net.POSTED!01cc3b7c!not-for-mail Reply-To: "Richard Riehle" From: "Richard Riehle" Newsgroups: comp.lang.ada References: <49dc98cf.0408110556.18ae7df@posting.google.com> <6F2Yc.848$8d1.621@newsread2.news.pas.earthlink.net> Subject: Re: ADA Popularity Discussion Request 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 Message-ID: Date: Tue, 07 Sep 2004 02:16:59 GMT NNTP-Posting-Host: 66.81.221.42 X-Complaints-To: abuse@earthlink.net X-Trace: newsread3.news.pas.earthlink.net 1094523419 66.81.221.42 (Mon, 06 Sep 2004 19:16:59 PDT) NNTP-Posting-Date: Mon, 06 Sep 2004 19:16:59 PDT Organization: EarthLink Inc. -- http://www.EarthLink.net Xref: g2news1.google.com comp.lang.ada:3406 Date: 2004-09-07T02:16:59+00:00 List-Id: "Kevin Cline" wrote in message news:e749549b.0409051449.574ec9ce@posting.google.com... > Kilgallen@SpamCop.net (Larry Kilgallen) wrote in message news:... > > But assuming perfect testing, finding the errors during compilation > > rather than in testing saves me time, and time is money. > > I thought so too, until I tried incremental test-first development. > Retesting a unit after adding a few lines of code means that type > mismatches are caught immediately with or without strong typing. But > it goes faster if you don't have to compile and link every iteration. > This assumes that we are concerned only with type mismatches. In Ada, we expect the compiler to provide a great deal more than that. For small software systems, frequent testing can often be sufficient. As the size of the software increases, and complexity of that software grows, we must engage all the tools available and use them appropriately to ensure the correctness of our design. Also, in large software systems, it is not possible to test every path, every possible value of a variable, and every potential timing problem. How does one test for a race condition? Does that test guarantee no race condition can occur? This is not a type checking issue, but it is a design issue where the type model can be one of many factors in reasoning about the stability of the design. How does one test for a runaway pointer or dangling reference? Again, this is not strictly a type issue, except that Ada's overall set of rules, including the type rules, provide some tools for reasoning about this intelligently. Finally, testing can only test for what we know needs to be tested. We must design for the unexpected, even as we test for the expected. It is impossible to test for the unexpected. The Ada type model includes both the compile-time checking and the run-time checking. The rest of Ada provides a wide range of compile-time checks. Those who fail to understand this should stay away from building software that requires a high degree of dependability. Richard Riehle