upright=1.3|thumb|Part of the [[Miles Glacier Bridge, with a "kludge" (temporary fix) to make the bridge usable after earthquake damage.]]

thumb|Apollo 13 astronauts with the improvised [[Carbon dioxide scrubber| scrubber]]

A kludge or kluge () is a workaround or makeshift solution that is clumsy, inelegant, inefficient, difficult to extend, and hard to maintain. Its only benefit is that it rapidly solves an important problem using available resources. A famous example is the improvised scrubber that kept the astronauts alive on Apollo 13. This term is used in diverse fields such as computer science, aerospace engineering, Internet slang, evolutionary neuroscience, animation and government. It is similar in meaning to the naval term jury rig.

Etymology

The word has alternate spellings (kludge and kluge), pronunciations ( and , rhyming with judge and stooge, respectively), and several proposed etymologies.

Jackson W. Granholm

The Oxford English Dictionary (2nd ed., 1989), cites Jackson W. Granholm's 1962 "How to Design a Kludge" article in the American computer magazine Datamation.

OED defines these two kludge cognates as: bodge 'to patch or mend clumsily' and fudge 'to fit together or adjust in a clumsy, makeshift, or dishonest manner'. The OED entry also includes the verb kludge ('to improvise with a kludge or kludges') and kludgemanship ('skill in designing or applying kludges').

Granholm humorously imagined a fictitious source for the term: A reasonable translation of kludge into German yields i.e. 'crutch' (cf. bridge vs. ).

Cf. German ('dumpling', 'clod', diminutive ), Low Saxon , , Dutch , perhaps related to Low German diminutive ('dumpling', 'clod'), standard Danish ('mess, disorder, clutter') and Danish Jutland dialect ('piece of bad workmanship').

Arguments against the derivation from German :

  • There is no equivalent usage in German
  • Both English pronunciations contain the soft g () not present in German
  • The word emerges in English only in the 20th century
  • The alleged Swedish translation, , is incorrect and would properly be spelled .

An alternative etymology suggests that the kludge spelling in particular derives ultimately from a word in Scots (a language closely related to English): or meaning 'toilet' (in either the room or device sense), with the kluge spelling possibly deriving from German, until the two terms were confused in the mid-20th century, as British and American (respectively) military slang.

The Jargon File further includes kluge around, 'to avoid a bug or difficult condition by inserting a kluge', and kluge up, 'to lash together a quick hack to perform a task'.

After Granholm's 1962 article popularized the kludge variant, both were interchangeably used and confused. The Jargon File concludes:

The Airlock Module's manufacturer, McDonnell Douglas, even recycled the hatch design from its Gemini spacecraft and kludged what was originally designed for the conical Gemini Command Module onto the cylindrical Skylab Airlock Module. The Skylab project, managed by the National Aeronautics and Space Administration's Marshall Space Flight Center, was seen by the Manned Spacecraft Center (later Johnson Space Center) as an invasion of its historical role as the NASA center for manned spaceflight. Thus, MSC personnel missed no opportunity to disparage the Skylab project, calling it "the kludge".

Computer science

In modern computing terminology, a "kludge" (or often a "hack") is a solution to a problem, the performance of a task, or a system fix which is inefficient, inelegant ("hacky"), or even incomprehensible, but which somehow works. It is similar to a workaround, but quick. To "kludge around something" is to avoid a bug or difficulty by building a kludge, perhaps exploiting properties of the bug itself. A kludge is often used to modify a working system while avoiding fundamental changes, or to ensure backwards compatibility. Hack can also be used with a positive connotation, for a quick solution to a frustrating problem.

A kludge is often used to fix an unanticipated problem in an earlier kludge; this is essentially a kind of cruft.

A solution might be a kludge if it fails in corner cases. An intimate knowledge of the problem domain and execution environment is typically required to build a corner-case kludge. More commonly, a kludge is a heuristic which was expected to work almost always, but ends up failing often.

A 1960s Soviet anecdote tells of a computer part which needed a slightly delayed signal to work. Rather than setting up a timing system, the kludge was to connect long coils of internal wires to slow the electrical signal.

Another type of kludge is the evasion of an unknown problem or bug in a computer program. Rather than continue to struggle to diagnose and fix the bug, the programmer may write additional code to compensate. For example, if a variable keeps ending up doubled, a kludge may be to add later code that divides by two rather than to search for the original incorrect computation.

In computer networking, use of NAT (Network Address Translation) (RFC 1918) or PAT (Port Address Translation) to cope with the shortage of IPv4 addresses is an example of a kludge.

In FidoNet terminology, kludge refers to a piece of control data embedded inside a message.

Evolutionary neuroscience

The kludge or kluge metaphor has been adapted in fields such as evolutionary neuroscience, particularly in reference to the human brain.

The neuroscientist David Linden discusses how intelligent design proponents have misconstrued brain anatomy:

The research psychologist Gary Marcus's book Kluge: The Haphazard Construction of the Human Mind compares evolutionary kluges with engineering ones like manifold vacuum-powered windshield wipers – when accelerating or driving uphill, "Your wipers slowed to a crawl, or even stopped working altogether." Marcus described a biological kluge:

Other uses

In John Varley's 1985 short story "Press Enter_", the antagonist, a reclusive hacker, adopts the identity Charles Kluge.

In the science fiction television series Andromeda, genetically engineered human beings called Nietzscheans use the term disparagingly to refer to genetically unmodified humans.

In a 2012 article, political scientist Steven Teles used the term "kludgeocracy" to criticize the complexity of social welfare policy in the United States. Teles argues that institutional and political obstacles to passing legislation often drive policy makers to accept expedient fixes rather than carefully thought out reforms.

See also

  • Barnacle (slang), a temporary electrical hardware fix, e.g., a wire, to be updated in product design later.
  • Bodge, British English slang similar to kludge
  • , a kludge-like approach to visual arts
  • Chindōgu, a Japanese term for deliberately "un-useful" inventions, created as a hobby and entertainment
  • Frugal innovation – simplifying a product and its manufacture, especially to produce a version affordable in developing countries
  • Gung ho, a technique of guerilla industry employed at the Chinese Industrial Cooperatives in WWII
  • , an Indian equivalent term (also more specifically refers to kludge-built vehicles)
  • Jury rigging, an originally nautical term of related meaning
  • KLUDGE (tag), a programmer's annotation that some element of computer source code is of low quality or hastily implemented
  • , terms derived from a TV character known for inventive kludges
  • Urawaza

References

  • First Usage of "Kludge" on UseNET (26 May 1981)
  • First Usage of "Kluge" on UseNET (14 December 1981)
  • The Jargon File: Kludge
  • World Wide Words: Kludge
  • Work-arounds, Make-work, and Kludges, Philip Koopman and Robert R. Hoffman