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,c406e0c4a6eb74ed X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news2.google.com!proxad.net!feeder2-1.proxad.net!news14-e.free.fr!not-for-mail Newsgroups: comp.lang.ada Subject: Re: ADA Popularity Discussion Request References: <49dc98cf.0408110556.18ae7df@posting.google.com> <6F2Yc.848$8d1.621@newsread2.news.pas.earthlink.net> <87eklg62x8.fsf@news.bourguet.org> From: Jean-Marc Bourguet Date: 06 Sep 2004 20:47:13 +0200 Message-ID: <878ybnmdzi.fsf@news.bourguet.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Organization: Guest of ProXad - France NNTP-Posting-Date: 06 Sep 2004 20:46:49 MEST NNTP-Posting-Host: 82.253.172.50 X-Trace: 1094496409 news14-e.free.fr 21552 82.253.172.50:32831 X-Complaints-To: abuse@proxad.net Xref: g2news1.google.com comp.lang.ada:3396 Date: 2004-09-06T20:46:49+02:00 List-Id: jayessay writes: > Jean-Marc Bourguet writes: > > > kevin.cline@gmail.com (Kevin Cline) writes: > > > > > Once you decide to test code before you write it, strong > > > typing loses most of it's value. > > > > Well, I've been told that the earlier you detect an error, > > the easier and the cheaper it was to fix it. > > Absolutely. > > > > Errors detected by strong type checking are found earlier than > > those detected by testing. > > Not if the testing is the sort used in bottom-up dynamic incremental > development. That's perhaps one difference between us: I do mainly maintenance and development of small features in an existing multi-million lines program whose development started more than 15 years ago with complex interactions between the components of the program (some inherent to the problem, some due to lack of forsightness 10 years ago, some due to bad practice...) It has a lisp dialect as extension language and one of the maintenance problem is that some part has been written in it with "bottom-up dynamic incremental development" testing only the cases the developper was thinking about and fail sometimes horribly when faced to the customer interaction. > There you are often testing both the "type constraints" > _and_ logic at the subexpression level up through clause > and finally to function! This is way earlier and faster > than any static type checking. Not in my experience. Our tests takes days to run. And when one of them find a bug that static typing would have found, I'm not happy at all. Because you see, some of the functions are used by other components in way I'm sometimes surprised. Type information is not only used by the compiler, it is also used as documentation by the programmer. And it is the most usefull kind of documentation: the one which is in sync with the code. > It is also more robust as it is checking a lot more over a > far greater set of code paths. I'm sorry, tests check *other things* than type constaints, *not* more things. And then anew: Tests can only proove that something happen, never that it doesn't. Type checking ensure that some constraints are never violated. That's outside the scoop of testing. A+ -- Jean-Marc