, Previous:

[software laser]

, Up:

[= S =]

software rot n.

Term used to describe the tendency of software that has not been used in a while to [lose]; such failure may be semi-humorously ascribed to [bit rot]. More commonly, `software rot' strikes when a program's assumptions become out of date. If the design was insufficiently [robust], this may cause it to fail in mysterious ways. Syn. `code rot'. See also [link rot].

For example, owing to endemic shortsightedness in the design of COBOL programs, a good number of them succumbed to software rot when their 2-digit year counters underwent [wrap around] at the beginning of the year 2000. Actually, related lossages often afflict centenarians who have to deal with computer software designed by unimaginative clods. One such incident became the focus of a minor public flap in 1990, when a gentleman born in 1889 applied for a driver's license renewal in Raleigh, North Carolina. The new system refused to issue the card, probably because with 2-digit years the ages 101 and 1 cannot be distinguished.

Historical note: Software rot in an even funnier sense than the mythical one was a real problem on early research computers (e.g., the R1; see [grind crank]). If a program that depended on a peculiar instruction hadn't been run in quite a while, the user might discover that the opcodes no longer did the same things they once did. ("Hey, so-and-so needs an instruction to do such-and-such. We can [snarf] this opcode, right? No one uses it.")

Another classic example of this sprang from the time an MIT hacker found a simple way to double the speed of the unconditional jump instruction on a PDP-6, so he patched the hardware. Unfortunately, this broke some fragile timing software in a music-playing program, throwing its output out of tune. This was fixed by adding a defensive initialization routine to compare the speed of a timing loop with the real-time clock; in other words, it figured out how fast the PDP-6 was that day, and corrected appropriately.

Compare [bit rot].