A kludge or kluge () is a
workaround
A workaround is a bypass of a recognized problem or limitation in a system or policy. A workaround is typically a temporary fix that implies that a genuine solution to the problem is needed. But workarounds are frequently as creative as true so ...
or makeshift solution that is clumsy, inelegant, inefficient, difficult to extend, and hard to maintain. This term is used in diverse fields such as
computer science
Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
,
aerospace engineering
Aerospace engineering is the primary field of engineering concerned with the development of aircraft and spacecraft. It has two major and overlapping branches: aeronautical engineering and astronautical engineering. Avionics engineering is s ...
,
Internet slang,
evolutionary neuroscience,
animation
Animation is a filmmaking technique whereby still images are manipulated to create moving images. In traditional animation, images are drawn or painted by hand on transparent celluloid sheets to be photographed and exhibited on film. Animati ...
and government. It is similar in meaning to the naval term ''
jury rig
In maritime transport and sailing, jury rigging or jury-rigging is making temporary makeshift running repairs with only the tools and materials on board. It originates from sail-powered boats and ships. Jury-rigging can be applied to any part o ...
''.
Etymology
The word has alternate spellings (''
kludge
A kludge or kluge () is a workaround or makeshift solution that is clumsy, inelegant, inefficient, difficult to extend, and hard to maintain. This term is used in diverse fields such as computer science, aerospace engineering, Internet slang, ...
'' and ''
kluge
Kluge (, ) is a German-derived surname. In German, capitalizing, and adding a final to, the adjective (meaning "clever"), creates a noun meaning "clever one". Although the adjective is a feminine form, the noun can be feminine, neuter or masc ...
''), pronunciations ( and , rhyming with ''judge'' and ''stooge'', respectively), and several proposed
etymologies
Etymology ( ) is the study of the origin and evolution of words—including their constituent units of sound and meaning—across time. In the 21st century a subfield within linguistics, etymology has become a more rigorously scientific study. ...
.
Jackson W. Granholm
The ''
Oxford English Dictionary
The ''Oxford English Dictionary'' (''OED'') is the principal historical dictionary of the English language, published by Oxford University Press (OUP), a University of Oxford publishing house. The dictionary, which published its first editio ...
'' (2nd ed., 1989), cites Jackson W. Granholm's 1962 "How to Design a Kludge" article
in the American
computer magazine
Computer magazines are about computers and related subjects, such as networking and the Internet. Most computer magazines offer (or offered) advice, some offer programming tutorials, reviews of the latest technologies, and advertisements.
...
''
Datamation
''Datamation'' is a computer magazine that was published in print form in the United States between 1957 and 1998, ''.
''OED'' defines these two ''kludge''
cognates
In historical linguistics, cognates or lexical cognates are sets of words that have been inherited in direct descent from an etymological ancestor in a common parent language.
Because language change can have radical effects on both the soun ...
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:
Although ''OED'' accepts Granholm's coinage of the term (not the fanciful pseudo-etymology quoted above), there are examples of its use before the 1960s.
Germanic sources
American
Yiddish
Yiddish, historically Judeo-German, is a West Germanic language historically spoken by Ashkenazi Jews. It originated in 9th-century Central Europe, and provided the nascent Ashkenazi community with a vernacular based on High German fused with ...
speakers use () to mean 'too smart by half', the reflected meaning of German ('clever'). This may explain the idea of 'clever but clumsy and temporary', as well as the pronunciation variation from German. A reasonable translation of ''kludge'' into German yields i.e. 'crutch' (cf. ''bridge'' vs. ).
Cf. German ('dumpling', 'clod', diminutive ),
Low Saxon
Low Saxon (), also known as West Low German () are a group of Low German dialects spoken in parts of the Netherlands, northwestern Germany and southern Denmark (in North Schleswig by parts of the German-speaking minority). It is one of two di ...
, , 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.
Kludge vs. kluge
The ''
Jargon File
The Jargon File is a glossary and usage dictionary of slang used by computer programmers. The original Jargon File was a collection of terms from technical cultures such as the MIT Computer Science and Artificial Intelligence Laboratory, MIT AI Lab ...
'' (a.k.a. ''The New Hacker's Dictionary''), a
glossary
A glossary (from , ''glossa''; language, speech, wording), also known as a vocabulary or clavis, is an alphabetical list of Term (language), terms in a particular domain of knowledge with the definitions for those terms. Traditionally, a gloss ...
of computer programmer slang maintained by
Eric S. Raymond
Eric Steven Raymond (born December 4, 1957), often referred to as ESR, is an American software developer, open-source software advocate, and author of the 1997 essay and 1999 book ''The Cathedral and the Bazaar''. He wrote a guidebook for the R ...
, differentiates ''kludge'' from ''kluge'' and cites usage examples pre-dating 1962. ''Kluge'' seems to have the sense of 'overcomplicated', while ''kludge'' has only the sense of 'poorly done'.
This ''Jargon File'' entry notes that ''kludge'' apparently derives via British military slang from
Scots ('toilet'), and became confused with American ''kluge'' during or after World War II.
This entry notes ''kluge'', which is now often spelled ''kludge'', "was the original spelling, reported around computers as far back as the mid-1950s and, at that time, used exclusively of hardware kluges".
''Kluge'' "was common Navy slang in the
World War II
World War II or the Second World War (1 September 1939 – 2 September 1945) was a World war, global conflict between two coalitions: the Allies of World War II, Allies and the Axis powers. World War II by country, Nearly all of the wo ...
era for any piece of electronics that worked well on shore but consistently failed at sea".
A summary of a 1947 article in the ''New York Folklore Quarterly'' states:
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:
Industries
Aerospace engineering
In
aerospace
Aerospace is a term used to collectively refer to the atmosphere and outer space. Aerospace activity is very diverse, with a multitude of commercial, industrial, and military applications. Aerospace engineering consists of aeronautics and astron ...
, a kludge was a temporary design using separate commonly available components that were not flightworthy in order to proof the design and enable concurrent software development while the integrated components were developed and manufactured. The term was in common enough use to appear in a fictional movie about the US space program.
Perhaps the ultimate kludge was the first
US space station
A space station (or orbital station) is a spacecraft which remains orbital spaceflight, in orbit and human spaceflight, hosts humans for extended periods of time. It therefore is an artificial satellite featuring space habitat (facility), habitat ...
,
Skylab
Skylab was the United States' first space station, launched by NASA, occupied for about 24 weeks between May 1973 and February 1974. It was operated by three trios of astronaut crews: Skylab 2, Skylab 3, and Skylab 4. Skylab was constructe ...
. Its two major components, the Saturn Workshop and the
Apollo Telescope Mount
The Apollo Telescope Mount, or ATM, was a crewed Sun, solar observatory that was a part of Skylab, the first American space station. It could observe the Sun in wavelengths ranging from soft X-rays, ultraviolet, and visible light.
The ATM was ...
, began development as separate projects (the SWS was kludged from the
S-IVB
The S-IVB (pronounced "S-four-B") was the third stage on the Saturn V and second stage on the Saturn IB launch vehicles. Built by the Douglas Aircraft Company, it had one J-2 rocket engine. For lunar missions it was fired twice: first for Earth ...
stage of the
Saturn 1B
The Saturn IB (also known as the uprated Saturn I) was an American launch vehicle commissioned by the National Aeronautics and Space Administration (NASA) for the Apollo program. It uprated the Saturn I by replacing the S-IV second stage (, 43, ...
and
Saturn V
The Saturn V is a retired American super heavy-lift launch vehicle developed by NASA under the Apollo program for human exploration of the Moon. The rocket was human-rated, had multistage rocket, three stages, and was powered by liquid-propel ...
launch vehicles, the ATM was kludged from an early design for the descent stage of the
Apollo Lunar Module
The Apollo Lunar Module (LM ), originally designated the Lunar Excursion Module (LEM), was the lunar lander spacecraft that was flown between lunar orbit and the Moon's surface during the United States' Apollo program. It was the first crewed sp ...
). Later the SWS and ATM were folded into the
Apollo Applications Program
The Apollo Applications Program (AAP) was created as early as 1966 by NASA headquarters to develop science-based human spaceflight missions using hardware developed for the Apollo program. AAP was the ultimate development of a number of official ...
, but the components were to have been launched separately, then docked in orbit. In the final design, the SWS and ATM were launched together, but for the single-launch concept to work, the ATM had to pivot 90 degrees on a truss structure from its launch position to its on-orbit orientation, clearing the way for the crew to dock its
Apollo Command/Service Module
The Apollo command and service module (CSM) was one of two principal components of the United States Apollo (spacecraft), Apollo spacecraft, used for the Apollo program, which landed astronauts on the Moon between 1969 and 1972. The CSM functi ...
at the axial docking port of the Multiple Docking Adapter.
The Airlock Module's manufacturer,
McDonnell Douglas
McDonnell Douglas Corporation was a major American Aerospace manufacturer, aerospace manufacturing corporation and defense contractor, formed by the merger of McDonnell Aircraft and the Douglas Aircraft Company in 1967. Between then and its own ...
, 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
The National Aeronautics and Space Administration (NASA ) is an independent agency of the US federal government responsible for the United States's civil space program, aeronautics research and space research. Established in 1958, it su ...
's
Marshall Space Flight Center
Marshall Space Flight Center (officially the George C. Marshall Space Flight Center; MSFC), located in Redstone Arsenal, Alabama (Huntsville, Alabama, Huntsville postal address), is the Federal government of the United States, U.S. government's ...
, was seen by the Manned Spacecraft Center (later
Johnson Space Center
The Lyndon B. Johnson Space Center (JSC) is NASA's center for human spaceflight in Houston, Texas (originally named the Manned Spacecraft Center), where human spaceflight training, research, and flight controller, flight control are conducted. ...
) 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
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, hardware and softw ...
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
A workaround is a bypass of a recognized problem or limitation in a system or policy. A workaround is typically a temporary fix that implies that a genuine solution to the problem is needed. But workarounds are frequently as creative as true so ...
, 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 case
In engineering, a corner case (or pathological case) involves a problem or situation that occurs only outside normal operating parameters—specifically one that manifests itself when multiple environmental variables or conditions are simultaneou ...
s. 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
A heuristic or heuristic technique (''problem solving'', '' mental shortcut'', ''rule of thumb'') is any approach to problem solving that employs a pragmatic method that is not fully optimized, perfected, or rationalized, but is nevertheless ...
which was expected to work almost always, but ends up failing often.
A 1960s
Soviet
The Union of Soviet Socialist Republics. (USSR), commonly known as the Soviet Union, was a List of former transcontinental countries#Since 1700, transcontinental country that spanned much of Eurasia from 1922 until Dissolution of the 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
A computer program is a sequence or set of instructions in a programming language for a computer to Execution (computing), execute. It is one component of software, which also includes software documentation, documentation and other intangibl ...
. 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
Internet Protocol version 4 (IPv4) is the first version of the Internet Protocol (IP) as a standalone specification. It is one of the core protocols of standards-based internetworking methods in the Internet and other packet-switched networks. ...
addresses is an example of a kludge.
In
FidoNet
__
/ \
/, oo \
(_, /_)
_`@/_ \ _
, , \ \\
, (*) , \ ))
______ , __U__, / \//
/ FI ...
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 human brain is the central organ (anatomy), organ of the nervous system, and with the spinal cord, comprises the central nervous system. It consists of the cerebrum, the brainstem and the cerebellum. The brain controls most of the activi ...
.
The neuroscientist
David Linden discusses how
intelligent design
Intelligent design (ID) is a pseudoscientific argument for the existence of God, presented by its proponents as "an evidence-based scientific theory about life's origins".#Numbers 2006, Numbers 2006, p. 373; " Dcaptured headlines for it ...
proponents have misconstrued brain anatomy:
The research psychologist
Gary Marcus
Gary Fred Marcus (born 1970) is an American psychologist, cognitive scientist, and author, known for his research on the intersection of cognitive psychology, neuroscience, and artificial intelligence (AI).
Marcus is professor ''emeritus'' of ps ...
's book ''
Kluge: The Haphazard Construction of the Human Mind'' compares evolutionary kluges with engineering ones like
manifold vacuum
Manifold vacuum, or engine vacuum in a petrol engine is the difference in air pressure between the engine's intake manifold and Earth's atmosphere.
Manifold vacuum is an effect of a piston's movement on the induction stroke and the airflow thr ...
-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
*
Bodge, British slang for a 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
In maritime transport and sailing, jury rigging or jury-rigging is making temporary makeshift running repairs with only the tools and materials on board. It originates from sail-powered boats and ships. Jury-rigging can be applied to any part o ...
, 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
An ''urawaza'' (裏技, meaning "secret trick")
is a quirky, ingenious technique that optimizes an everyday activity like cleaning up spills, preventing odors, or folding laundry.
In Japan, urawaza have been shared by word of mouth and passed down ...
References
External links
{{Wiktionary, kluge, kludge
First Usage of "Kludge" on UseNET (26 May 1981)First Usage of "Kluge" on UseNET (14 December 1981)Work-arounds, Make-work, and Kludges Philip Koopman and Robert R. Hoffman
Software quality
Mechanical engineering