JargonFile/original/html/S/software-rot.html
2014-03-27 18:54:56 +00:00

33 lines
4.2 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<html xmlns="http://www.w3.org/1999/xhtml"><head><title>software rot</title><link rel="stylesheet" href="../../jargon.css" type="text/css"/><meta name="generator" content="DocBook XSL Stylesheets V1.61.0"/><link rel="home" href="../index.html" title="The Jargon File"/><link rel="up" href="../S.html" title="S"/><link rel="previous" href="software-laser.html" title="software laser"/><link rel="next" href="softwarily.html" title="softwarily"/></head><body><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">software rot</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="software-laser.html">Prev</a> </td><th width="60%" align="center">S</th><td width="20%" align="right"> <a accesskey="n" href="softwarily.html">Next</a></td></tr></table><hr/></div><dt><a id="software-rot"/><dt xmlns="" id="software-rot"><b>software rot</b>: <span xmlns="http://www.w3.org/1999/xhtml" class="grammar">n.</span></dt></dt><dd><p> Term used to describe the tendency of software that has not been
used in a while to <a href="../L/lose.html"><i class="glossterm">lose</i></a>; such failure may be
semi-humorously ascribed to <a href="../B/bit-rot.html"><i class="glossterm">bit rot</i></a>. More commonly,
<span class="firstterm">software rot</span> strikes when a program's
assumptions become out of date. If the design was insufficiently
<a href="../R/robust.html"><i class="glossterm">robust</i></a>, this may cause it to fail in mysterious
ways. Syn. <span class="firstterm">code rot</span>. See also
<a href="../L/link-rot.html"><i class="glossterm">link rot</i></a>.</p><p>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 <a href="../W/wrap-around.html"><i class="glossterm">wrap around</i></a> 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.</p><p>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 <a href="../G/grind-crank.html"><i class="glossterm">grind crank</i></a>). 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.
(&#8220;<span class="quote">Hey, so-and-so needs an instruction to do such-and-such. We can
<a href="snarf.html"><i class="glossterm">snarf</i></a> this opcode, right? No one uses it.</span>&#8221;)
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.</p><p>Compare <a href="../B/bit-rot.html"><i class="glossterm">bit rot</i></a>.</p></dd><div class="navfooter"><hr/><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="software-laser.html">Prev</a> </td><td width="20%" align="center"><a accesskey="u" href="../S.html">Up</a></td><td width="40%" align="right"> <a accesskey="n" href="softwarily.html">Next</a></td></tr><tr><td width="40%" align="left" valign="top">software laser </td><td width="20%" align="center"><a accesskey="h" href="../index.html">Home</a></td><td width="40%" align="right" valign="top"> softwarily</td></tr></table></div></body></html>