December 17, 2012, 11:51 AM —
These days, when software programmers write code, there are a variety of ways to catch typos, errors or bugs before a system goes into production. One of the simplest ways, though, is to just look at the code on a screen. This is an advantage that programmers who coded via punch cards obviously didn’t have back in the day.
In the punch card days, code would be translated to cards via a programmer or operator using a keypunch. Typos, or incorrect commands, couldn’t be caught by simply looking at what was typed on a screen. Often times, in order to check that information was input properly, it would be re-punched onto a second card that would then be compared to the first using a card verifier.
A bug introduced by a punch card turned out to be one of the most expensive software bugs in history, when it led to the destruction of the Mariner 1 spacecraft in 1962 (cost in 1962 dollars: $18.5 million; cost in today’s dollars: $135 million), before it could complete its mission of flying by Venus.
The Mariner 1 spacecraft was launched on July 22, 1962 from Cape Canaveral, Florida. Minutes into the flight, an onboard guidance antenna failed, which caused fallback to a backup radar system that should have been able to guide the spacecraft. However, there was a fatal flaw in the software of that guidance system: when the equations that would be used to process and translate tracking data into flight instructions were encoded onto punch cards, one critical symbol was left out: an overbar or overline, often confused in ensuing years with a hyphen. The lack of that overbar, essentially, caused the guidance computer to incorrectly compensate for some otherwise normal movement in the spacecraft. As the New York Times wrote days after the launch
The hyphen symbol, called a “bar,” if officially fed into the computer on its punched card instructions, in effect tells the machine not to worry about this normal veering movement.