Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!swrinde!cs.utexas.edu!sun-barr!lll-winken!ubvax!igor!rutabaga!jls From: jls@rutabaga.Rational.COM (Jim Showalter) Newsgroups: comp.lang.misc Subject: Re: Run-time Type Errors in Smalltalk Message-ID: Date: 18 Apr 91 05:08:06 GMT References: <1917@optima.cs.arizona.edu> Sender: news@Rational.COM Lines: 38 %>]> Some info that I picked up from a company doing a lot of big %>]> project work with C++ (i.e. strong type checking language) was %>]> that postmortems on their project revealed only 10% of their %>]> errors were captured by strong type checking. %>]... %>]In any other field of engineering, a 10% increase in safety would always %>]be applied. To reject it would be grounds for lawsuits, at least. % %>How do you get a 10% increase in safety from the above? If they %>hadn't caught those errors by static typing they would have caught %>them by testing -- the same way the found the other 90% of the errors. %>This logic error combined with the strident tone of the article %>suggests that your convictions are affecting your thinking. Bzzzzzzt. Thank you for playing. Testing is NOT guaranteed to catch these errors, whereas static typing is, by its nature, guaranteed to do so. I defy you to come up with a way to ensure that you have traversed all possible paths through a dynamically-typed program that could conceivably send the wrong message to the wrong recipient. Last time I looked, this sort of coverage-with-range-tracking stuff was NP-hard, which means for any program of reasonable size you'd have to test it for more years than there are atoms in the universe to exhaust all possible ways it could go bump. Nobody is claiming that there are not ways to go bump in statically-typed languages, only that the number of ways you can go bump is REDUCED. Such risk reduction seems to me to be a fine way to increase program reliability, which seems like a noble goal. Why anybody would deliberately choose to code in a language that is guaranteed to permit MORE errors than another language is beyond me. -- * The opinions expressed herein are my own, except in the realm of software * * engineering, in which case I borrowed them from incredibly smart people. * * * * Rational: cutting-edge software engineering technology and services. *