Kludge
From Free net encyclopedia
A kludge (or kluge) is a clumsy or inelegant solution to a problem. In engineering, a kludge is a workaround using unrelated parts cobbled together. People demonstrating the force of the term often say that it takes a skilled craftsman intimate with the task, the material at hand, and the operating environment to construct a workaround clunky enough to be called a kludge.
A kludge is also called a bodge.
Contents |
Earliest recorded use
There are reports that the term was in use as early as the 1940s in the United Kingdom, although the first usage listed by the Oxford English Dictionary is by J. W. Granholm in the American Datamation magazine in 1962:
- Feb. 30/1 The word ‘kludge’ is...derived from the same root as the German Klug..., originally meaning ‘smart’ or ‘witty’... ‘Kludge’ eventually came to mean ‘not so smart’ or ‘pretty ridiculous’. Ibid. 30/2 The building of a Kludge..is not work for amateurs. There is a certain, indefinable, masochistic finesse that must go into true Kludge building.
The German word meant here is translated roughly 'clever' or 'sly', rather than 'smart' or 'intelligent'.
In the science fiction television series Andromeda, genetically engineered human beings called Nietzscheans use the term disparagingly to refer to genetically unmodified humans.
Naval use
In naval parlance, a kludge is equipment which worked ashore, but never aboard a ship. It hence came to refer to clutter, especially that which may impede shipboard operations. In naval usage the name comes from the sound a substantial kludge makes hitting the water when tossed overboard. /klooj/. See Rube Goldberg's or Heath Robinson's machines.
Computer science use
In modern computing terminology, a kludge is a method of solving a problem, doing a task, or fixing a system (whether hardware or software) that is inefficient, inelegant, or even unfathomable, but which nevertheless works. It has been suggested, as a folk etymology, that it means klumsy, lame, ugly, dumb, but good enough; which rather captures the point. To kludge around something is to avoid a bug or some difficult condition by building a kludge, perhaps relying on properties of the bug itself to assure proper operation. It is somewhat similar in spirit to a workaround, only with far less grace. That something was often originally a crock, which is why it must now be hacked to make it work. Note that a hack might be a kludge, but that 'hack' could be, at least in computing, ironic praise, for a quick fix solution to a frustrating problem.
Something might be a kludge if it fails in corner cases, but this is a less common sense as such situations are not expected to come up in general usage. More commonly, a kludge is a poorly working heuristic which was expected to work well. An intimate knowledge of the context (ie, problem domain and/or the kludge's execution environment) is typically required to build a corner case kludge. As a consequence, they are sometimes ironically praised.
An anecdotal example of a kludge involved a computer part supposedly manufactured in Soviet Russia during the 1960s. The part necessitated a slight delayed release of an electrical charge. Rather than setting up a timing system, the kludge was to make the internal wires extra-long, increasing the physical time and distance the electricity had to move.
A variation on this use of kludge is the evasion of an unknown problem or bug in a computer program. Rather than continue to struggle to find out exactly what is causing the bug and how to fix it, the programmer may "kludge" the problem by simply writing new code which compensates for it. For example, if a variable keeps ending up doubled in a certain code area, divide it in half whenever it needs to be used after that area has been accessed.
Spelling
Most dictionaries have the spelling kludge as the headword, and kluge is listed as an alternate spelling.
Pronunciation
In the U.S., kludge traditionally rhymes with huge, but the pronunciation rhyming with fudge is also encountered. Most dictionaries list only the former pronunciation, but Merriam-Webster lists both. The German word klug is pronounced approximately like clugue (rhymes with fugue). Given the pronunciation, the kludge spelling is itself something of a self-reflexive, self-illustrative, kludge. Or vice versa, given the kludge that is much of English' spelling.
In the UK, the pronunciation of kludge is as the spelling would normally imply: it rhymes with fudge, since the d before the g would prevent the word from rhyming with huge.