Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!bony1!richieb From: richieb@bony1.uucp (Richard Bielak) Newsgroups: comp.object Subject: Re: Do we really need types in OOPL's? Message-ID: <1990Oct10.141900.26769@bony1.uucp> Date: 10 Oct 90 14:19:00 GMT References: <0yw10qr@Unify.Com> <411@eiffel.UUCP> <736@tetrauk.UUCP> <1990Oct5.013201.12459@cbnewsc.att.com> Reply-To: richieb@bony1.UUCP (Richard Bielak) Organization: Bank of New York Lines: 36 In article <1990Oct5.013201.12459@cbnewsc.att.com> lgm@cbnewsc.att.com (lawrence.g.mayka) writes: [..lots of stuff left out..] > >I encourage those who claim that dynamic typing is "the wrong choice" >for large software systems to actually run experiments on large (e.g., >over a million lines of source) software systems, comparing dynamic >vs. static typing - above all, for ease of modification and extension. > I agree with Lawrence that static typic is no enough in any large software system. However, we should look at static and dynamic typing as complementary. One does not elimite the need for the other. Type checking at compile time protects the programmer from a lot of stupid mistakes. For example, passing the right number and right type of parameters to a routine. At runtime, dynamic checking catches errors that could not be detected at compile time. For example, checking array bounds in PASCAL. IMHO an "industrial strength" language should provide both static and dynamic checking. Since it is really *impossible* to write completely correct software, we should at least be able to detect errors then they happen. That's how its done in hardware. People don't publish proofs that the memory chips are correct. Instead they provide facilities to dectect errors, in case cosmic rays flipped some bits. ...richie -- +----------------------------------------------------------------------------+ || Richie Bielak (212)-815-3072 | If it happens, || || USENET: richieb@bony.com | it is possible! || +----------------------------------------------------------------------------+