[net.lang] Strong typing, again

eugene@ames-lm.UUCP (01/11/84)

After following some of the comments of earlier writers, I will not
attempt to define strong typing (Other than to perhaps to say Pascal
begins to have `strong' typing and Ada(tm) definitely has `strong'
typing.  With definition by example out of the way, let me explain
why many of the people I use to work with like such features.

I have previously worked on three major space projects (at a Govt. lab
which will go unnamed).  This facility distinguished itself in the eyes
of Tony Hoare and E. Dijkstra by the notorious FORTRAN coding error:

	DO20I=1.20
	. . .
    20  CONTINUE

It was hoped by many that strong typing would help locate these problems.
Whereas in some realms, an error like this is cause for a minor text
editor fix, in other realms, lives and mucho dollars can be at stake.
One of the projects ( a $90 Million on), I worked on, died 99 days into a
1 year orbital mission.  A Congressional investigation insued and discovered
it was a hardware problem.

Space missions (and other critical applications) frequently have severe
constraints, we have to deal with smaller memories, slower processors,
less dense technology which can be space-qualified
(Image a single cosmic ray hitting a chip with 400K gates!).
[Further digression, remember Weinburger's comment, that if carpenter's
built, like many programmers program, then civilization would have collapsed
long ago!]
There are limits to testing and prototyping which prohibit complete
testing or simulation.  Image a one time chance to execute a program
where there are expensive costs associated with errors.
Note, too, that the missions flying out of the solar system [1980s] were
launched in the 1970s and had their technology frozen in the 1960s.
Complicated space missions need to have their implementations frozen
otherwise they would never get off the ground.
These are among the reasons why NASA have been very slow to adopt UNIX(tm)
as an OS.

SO, getting back to strong-typing, in a complicated, potentially hazardous
environment, strong typing is just another tool.  Its function is complicated
by the desire to put other tools (e.g. data structures and operator
overloading), but it is only one tool, like commenting code.  It will be
the sum of all tools working together that will improve code.

Strong typing is not a cure all, but it does help. [Yes, I know Ada
is complicated, but its the best tool for that environment.]

--eugene miya
[Formerly of the Joint ANSI X3J9/IEEE P-770 Pascal Standards Committee]
p.s.  this does not constitue an endorsement of either Pascal or Ada,
they still both have problems.