Newsgroups: comp.object,comp.lang.eiffel,comp.lang.c++,comp.lang.smalltalk
Path: cantaloupe.srv.cs.cmu.edu!rochester!udel!gatech!news.sprintlink.net!simtel!harbinger.cc.monash.edu.au!yarrina.connect.com.au!labtam!news.mel.aone.net.au!inferno.mpx.com.au!news.unimelb.EDU.AU!cs.mu.OZ.AU!munta.cs.mu.OZ.AU!fjh
From: fjh@munta.cs.mu.OZ.AU (Fergus Henderson)
Subject: Re: Why is one OO language more productive than another?
Message-ID: <9523805.2745@mulga.cs.mu.OZ.AU>
Sender: news@cs.mu.OZ.AU (CS-Usenet)
Organization: Computer Science, University of Melbourne, Australia
References: <40t027$7j9@hardcopy.ny.jpmorgan.com> <40t7veINNe25@bhars12c.bnr.co.uk>
Date: Fri, 25 Aug 1995 19:27:41 GMT
Lines: 27
Xref: glinda.oz.cs.cmu.edu comp.object:37574 comp.lang.eiffel:10636 comp.lang.c++:146367 comp.lang.smalltalk:27720

wolfe@bnr.co.uk (Ian Woollard) writes:

>Joe Borkoles <jborkole@jpmorgan.com> writes:
>
>>My feeling is that static typed systems feel slower in a short time-frame but 
>>tend to significantly faster in the medium to long term.
>
>Almost any error attributable to runtime type checking that makes it through
>to the customer really indicates two problems: the original, and testing. If
>you consider an identical (but typed) system with the same hole in its test
>suite, then the *behaviour* of the typed system is untested and will almost
>certainly fail.

Joe Borkoles didn't say anything about reliability, he was talking
about speed (of development, I think - not speed of the generated code).

To my mind, the main advantage of static type checking is that it
catches errors early in the software life cycle, when they are
cheapest to fix.  If an error is not discovered until testing, it is
going to take very much longer to discover the real cause
and fix it than if the error is detected by the compiler.

-- 
Fergus Henderson              | Designing grand concepts is fun;
fjh@cs.mu.oz.au               | finding nitty little bugs is just work.
http://www.cs.mu.oz.au/~fjh   | -- Brooks, in "The Mythical Man-Month".
PGP key fingerprint: 00 D7 A2 27 65 09 B6 AC  8B 3E 0F 01 E7 5D C4 3F
