Unit Safety
The recent spate of NASA upsets in the Martian environment reminds us that, in spite of the many “provable” (sez who?) advances in academic risk analysis and software development, our practical trade remains subject to the most bizarre glitches. Accidents, by definition, happen in all walks and trips of life, but once having happened, are revealed by post-hoc scrutiny to have been eminently, nay, trivially “preventable”. Next time, we boast, we'll avoid spilling the salt, we'll bypass the banana skin under the ladder and we'll secure the loose horseshoe that lost the last war. More space-age specifically, we'll watch out for inelastic rubber washers, shun rash global identifiers, and work around the quirks of FORTRAN FOR loops, all of which have proved to be life- and dollar-threatening.
Of course, digging deeper into fashionable post-Darwinian theory, we must acknowledge that “social evolution”, without which this column might have emerged as a mysterious henge in some foreign field, is due to a long sequence of fortuitous accidents. Random memic mutations, some say, guarantee the survival of fitter crania, neural paradigms, languages, algorithms and software engineering methodologies. Whether we consciously “learn” from our mistakes or not, some argue that there is an ongoing natural “self-correctional” process that converges to error-free nirvana. Fat chance! The optimistic concepts of “inevitable improvement” and “human perfectibility”, fashionable when the previous millennium started [see Note], are hard to relinquish, although the alternatives are so damned depressing, leading to a self-fulfilling why-bother apathy.
The challenge for historians is selecting and recording “significant” events. The so-called random elements (Luther's constipation, Napoleon's insomnia, Hitler's rejected watercolors...) seem to have a ridiculous, chaotic impact on the grand deéroulement. My favorite historian, Barbara Tuchman, warns against the post hoc contingent narrative, but it's impossible to feign ignorance of what happened next. What if, say, Saint Linus had wealthy parents like Bill Gates? What if he had not grown up in the fractal Swedish-Finnish isogloss?
One of the most expensive, embarrassing lessons from the missing Mars probe mishaps was the lack of “unit safety”. We've spent all these years ensuring type-safety (not to mention the oxymoronic thread-safety), whereby oranges and lemons cannot be added without deliberate, fruitless miscasting, yet it seems that a given floating-point value was interpreted as Newtons rather than pounds. Or vice versa. Or was it an understandable confusion between parsecs, meters, yards, chains, rods, perches and poles? We'll get it right next time, unless there are bright Martians anxious to resist our inferior technology.
Stan Kelly-Bootle (skb@crl.com) has been computing on and off since his EDSAC I (Cambridge University, UK) days in the 1950s. He has commented on the unchanging DP scene in many columns (“More than the effin' Parthenon”--Meilir Page-Jones) and books, including The Computer Contradictionary (MIT Press) and UNIX Complete (Sybex).