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

33 lines
4.2 KiB
HTML
Raw 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>