Path: utzoo!attcan!uunet!bu.edu!inmet!stt From: stt@inmet.inmet.com Newsgroups: comp.object Subject: Re: Do we really need types in OOPL's? Message-ID: <60700003@inmet> Date: 7 Oct 90 15:32:00 GMT References: <0yw10qr@Unify.Com> Lines: 38 Nf-ID: #R:<0yw10qr@Unify.Com>:-19:inmet:60700003:000:1640 Nf-From: inmet.inmet.com!stt Oct 7 11:32:00 1990 Re: the advantages of static type-checking. I think there is a fundamental difference between incremental static checking, and run-time checking. I whole-heartedly agree with those who believe an incremental-development environment is more productive and realistic than a batch-oriented environment. However, I still believe that it is critical that each increment undergo some amount of static checking. For complex systems, a huge amount of the code is only conditionally executed, and it is infeasible to exhaustively test such a system. The only hope is to get as much help as possible from static analysis, which looks at every new line of code prior to run-time, to ensure that it satisfies all static constraints which have been established for the system. Of course, it is also important to be able to change the set of static constraints during the evolution of the system, and when such a change is made, essentially all existing code of the system must be reanalyzed. Again, this should be done prior to production use, though it is useful if it can be deferred temporarily, so that all new development need not come to a standstill. Doing such massive reanalysis seems like an excellent use for the millions of workstation MIPS sitting idle every night. In general, I would argue that if there are no machine-enforceable static constraints on a complex system, then the programmers themselves must have no idea whether any given line of code is right or wrong, except through (inherently infeasible) exhaustive testing. S. Tucker Taft stt@inmet.inmet.com uunet!inmet!stt Intermetrics, Inc. Cambridge, MA 02138