A kludge (or kluge) is a 'solution' for accomplishing a task, originally a mechanical one and usually an engineering one, which consists of various otherwise unrelated parts and mechanisms, cobbled together in an untidy or downright messy manner. A kludge is never elegant except ironically; nor, serviceability to the task at hand excepted, is it ever admirable. Despite this, it generally takes a skilled craftsman, someone intimately familiar with the requirements of the desired task, the properties of the raw material at hand, and the ultimate operating environment, to produce a workaround monstrously clunky enough to be called a kludge. Therefore, an added irony is that it takes a reasonably trained eye to recognize an effective kludge.
Earliest recorded use
There are reports that the term was in use as early as the 1940s in Britain, 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 actually 'klug' (no e), and is more 'clever' or 'sly' than 'smart' or 'intelligent'.
The term "Kludge" has more recently featured as part of the lingo in the science fiction series Andromeda as used frequently by a genetically engineered species of human beings called Nietzcheans as a disparaging term for a genetically unmodified human.
In naval parlance, a kluge was usually a machine or process which worked perfectly ashore, but never aboard ship. The resulting inoperative machinery was regarded as so much clutter; a minor naval use of the word came to apply to clutter in general, especially as it might impede shipboard operations. Compare with Rube Goldberg's machines or Heath Robinson's.
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 without much grace. The <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 instance, "Thanks for your hack last night kludging the printer driver. Works now."
Something might be a kludge if it fails in corner cases, but this is a less common sense as such situations are never, ever, expected to actually happen. (For some value of 'never', anyway.) More commonly, a kludge is a poorly working heuristic which was expected (hoped, dreamed for) 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. For instance, "I can't believe you were able to kludge up something to make the system work with that brontosaurus printer of Smith's. Should have trashed it years ago. Wow!"
Most dictionaries have the spelling kludge as the headword, and kluge is listed as an alternate spelling.
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. Neither bears much resemblance to the pronunciation of the German word klug, which is something like clook (rhymes with spook). Given the usual spelling, the traditional pronouciation is itself something of a kludge, thus reflexively self-illustrating the meaning.
In the UK, the pronunciation of Kludge is as rhyming with fudge, since the d before the g would prevent the word from rhyming with huge.