The Jargon File, Version 2.9.10, 01 Jul 1992. Various
Чтение книги онлайн.
Читать онлайн книгу The Jargon File, Version 2.9.10, 01 Jul 1992 - Various страница 27
:bug: n. An unwanted and unintended property of a program or piece of hardware, esp. one that causes it to malfunction. Antonym of {feature}. Examples: "There's a bug in the editor: it writes things out backwards." "The system crashed because of a hardware bug." "Fred is a winner, but he has a few bugs" (i.e., Fred is a good guy, but he has a few personality problems).
Historical note: Some have said this term came from telephone company usage, in which "bugs in a telephone cable" were blamed for noisy lines, but this appears to be an incorrect folk etymology. Admiral Grace Hopper (an early computing pioneer better known for inventing {COBOL}) liked to tell a story in which a technician solved a persistent {glitch} in the Harvard Mark II machine by pulling an actual insect out from between the contacts of one of its relays, and she subsequently promulgated {bug} in its hackish sense as a joke about the incident (though, as she was careful to admit, she was not there when it happened). For many years the logbook associated with the incident and the actual bug in question (a moth) sat in a display case at the Naval Surface Warfare Center. The entire story, with a picture of the logbook and the moth taped into it, is recorded in the `Annals of the History of Computing', Vol. 3, No. 3 (July 1981), pp. 285—286.
The text of the log entry (from September 9, 1945), reads "1545 Relay #70 Panel F (moth) in relay. First actual case of bug being found". This wording seems to establish that the term was already in use at the time in its current specific sense —- and Hopper herself reports that the term `bug' was regularly applied to problems in radar electronics during WWII. Indeed, the use of `bug' to mean an industrial defect was already established in Thomas Edison's time, and `bug' in the sense of an disruptive event goes back to Shakespeare! In the first edition of Samuel Johnson's dictionary one meaning of `bug' is "A frightful object; a walking spectre"; this is traced to `bugbear', a Welsh term for a variety of mythological monster which (to complete the circle) has recently been reintroduced into the popular lexicon through fantasy role-playing games.
In any case, in jargon the word almost never refers to insects.
Here is a plausible conversation that never actually happened:
"There is a bug in this ant farm!"
"What do you mean? I don't see any ants in it."
"That's the bug."
[There has been a widespread myth that the original bug was moved to the Smithsonian, and an earlier version of this entry so asserted. A correspondent who thought to check discovered that the bug was not there. While investigating this in late 1990, your editor discovered that the NSWC still had the bug, but had unsuccessfully tried to get the Smithsonian to accept it —- and that the present curator of their History of American Technology Museum didn't know this and agreed that it would make a worthwhile exhibit. It was moved to the Smithsonian in mid-1991. Thus, the process of investigating the original-computer-bug bug fixed it in an entirely unexpected way, by making the myth true! —- ESR]
[1992 update: the plot thickens! A usually reliable source reports having seen The Bug at the Smithsonian in 1978. I am unable to reconcile the conflicting histories I have been offered, and merely report this fact here. —- ESR.]
:bug-compatible: adj. Said of a design or revision that has been badly compromised by a requirement to be compatible with {fossil}s or {misfeature}s in other programs or (esp.) previous releases of itself. "MS-DOS 2.0 used \ as a path separator to be bug-compatible with some cretin's choice of / as an option character in 1.0."
:bug-for-bug compatible: n. Same as {bug-compatible}, with the additional implication that much tedious effort went into ensuring that each (known) bug was replicated.
:buglix: /buhg'liks/ n. Pejorative term referring to DEC's ULTRIX operating system in its earlier *severely* buggy versions. Still used to describe ULTRIX, but without venom. Compare {AIDX}, {HP-SUX}, {Nominal Semidestructor}, {Telerat}, {sun-stools}.
:bulletproof: adj. Used of an algorithm or implementation considered extremely {robust}; lossage-resistant; capable of correctly recovering from any imaginable exception condition. This is a rare and valued quality. Syn. {armor-plated}.
:bum: 1. vt. To make highly efficient, either in time or space, often at the expense of clarity. "I managed to bum three more instructions out of that code." "I spent half the night bumming the interrupt code." In {elder days}, John McCarthy (inventor of {LISP}) used to compare some efficiency-obsessed hackers among his students to "ski bums"; thus, optimization became "program bumming", and eventually just "bumming". 2. To squeeze out excess; to remove something in order to improve whatever it was removed from (without changing function; this distinguishes the process from a {featurectomy}). 3. n. A small change to an algorithm, program, or hardware device to make it more efficient. "This hardware bum makes the jump instruction faster." Usage: now uncommon, largely superseded by v. {tune} (and n. {tweak}, {hack}), though none of these exactly capture sense 2. All these uses are rare in Commonwealth hackish, because in the parent dialects of English `bum' is a rude synonym for `buttocks'.
:bump: vt. Synonym for increment. Has the same meaning as C's ++ operator. Used esp. of counter variables, pointers, and index dummies in `for', `while', and `do-while' loops.
:burble: [from Lewis Carroll's "Jabberwocky"] v. Like {flame}, but connotes that the source is truly clueless and ineffectual (mere flamers can be competent). A term of deep contempt. "There's some guy on the phone burbling about how he got a DISK FULL error and it's all our comm software's fault."
:buried treasure: n. A surprising piece of code found in some program. While usually not wrong, it tends to vary from {crufty} to {bletcherous}, and has lain undiscovered only because it was functionally correct, however horrible it is. Used sarcastically, because what is found is anything *but* treasure. Buried treasure almost always needs to be dug up and removed. "I just found that the scheduler sorts its queue using {bubble sort}! Buried treasure!"
:burn-in period: n. 1. A factory test designed to catch systems with {marginal} components before they get out the door; the theory is that burn-in will protect customers by outwaiting the steepest part of the {bathtub curve} (see {infant mortality}). 2. A period of indeterminate length in which a person using a computer is so intensely involved in his project that he forgets basic needs such as food, drink, sleep, etc. Warning: Excessive burn-in can lead to burn-out. See {hack mode}, {larval stage}.
:burst page: n. Syn. {banner}, sense 1.
:busy-wait: vi. Used of human behavior, conveys that the subject is busy waiting for someone or something, intends to move instantly as soon as it shows up, and thus cannot do anything else at the moment. "Can't talk now, I'm busy-waiting till Bill gets off the phone."
Technically, `busy-wait' means to wait on an event by {spin}ning through a tight or timed-delay loop that polls for the event on each pass, as opposed to setting up an interrupt handler and continuing execution on another part of the task. This is a wasteful technique, best avoided on time-sharing systems where a busy-waiting program may {hog} the processor.
:buzz: vi. 1. Of a program, to run with no indication of progress and perhaps without guarantee of ever finishing; esp. said of programs thought to be executing tight loops of code. A program that is buzzing appears to be {catatonic}, but you never get out of catatonia, while a buzzing loop may eventually end of its own accord. "The program buzzes for about 10 seconds trying to sort all the names into order." See {spin}; see also {grovel}. 2. [ETA Systems] To test a wire or printed circuit trace for continuity by applying an AC rather than DC signal. Some wire faults will pass DC tests but fail a buzz test. 3. To process an array or list in sequence, doing