kluge
kluge /klooj/ [from the German `klug', clever] 1. n. A
Rube Goldberg (or Heath Robinson) device, whether in hardware or
software. 2. n. A clever programming trick intended to solve a
particular nasty case in an expedient, if not clear, manner. Often
used to repair bugs. Often involves {ad-hockery} and verges on
being a {crock}. 3. n. Something that works for the wrong
reason. 4. vt. To insert a kluge into a program. "I've kluged
this routine to get around that weird bug, but there's probably a
better way." 5. [WPI] n. A feature that is implemented in a
{rude} manner.
Nowadays this term is often encountered in the variant spelling
`kludge'. Reports from {old fart}s are consistent that
`kluge' was the original spelling, reported around computers as
far back as the mid-1950s and, at that time, used exclusively of
*hardware* kluges. In 1947, the "New York Folklore
Quarterly" reported a classic shaggy-dog story `Murgatroyd the
Kluge Maker' then current in the Armed Forces, in which a `kluge'
was a complex and puzzling artifact with a trivial function. Other
sources report that `kluge' was common Navy slang in the WWII era
for any piece of electronics that worked well on shore but
consistently failed at sea.
However, there is reason to believe this slang use may be a decade
older. Several respondents have connected it to the brand name of
a device called a "Kluge paper feeder", an adjunct to mechanical
printing presses. Legend has it that the Kluge feeder was designed
before small, cheap electric motors and control electronics; it
relied on a fiendishly complex assortment of cams, belts, and
linkages to both power and synchronize all its operations from one
motive driveshaft. It was accordingly tempermental, subject to
frequent breakdowns, and devilishly difficult to repair -- but oh,
so clever! People who tell this story also aver that `Kluge' was
the the name of a design engineer.
There is in fact a Brandtjen & Kluge Inc., an old family business
that manufactures printing equipment -- interestingly, their name
is pronounced /kloo'gee/! Henry Brandtjen, president of the
firm, told me (ESR, 1994) that his company was co-founded by his
father and an engineer named Kluge /kloo'gee/, who built and
co-designed the original Kluge automatic feeder in 1919.
Mr. Brandtjen claims, however, that this was a *simple* device
(with only four cams); he says he has no idea how the myth of its
complexity took hold.
{TMRC} and the MIT hacker culture of the early '60s seems to
have developed in a milieu that remembered and still used some WWII
military slang (see also {foobar}). It seems likely that
`kluge' came to MIT via alumni of the many military electronics
projects that had been located in Cambridge (many in MIT's
venerable Building 20, in which {TMRC} is also located) during
the war.
The variant `kludge' was apparently popularized by the
{Datamation} article mentioned above; it was titled "How
to Design a Kludge" (February 1962, pp. 30, 31). This spelling was
probably imported from Great Britain, where {kludge} has an
independent history (though this fact was largely unknown to
hackers on either side of the Atlantic before a mid-1993 debate in
the Usenet group alt.folklore.computers over the First and
Second Edition versions of this entry; everybody used to think
{kludge} was just a mutation of {kluge}). It now appears that
the British, having forgotten the etymology of their own `kludge'
when `kluge' crossed the Atlantic, repaid the U.S. by lobbing the
`kludge' orthography in the other direction and confusing their
American cousins' spelling!
The result of this history is a tangle. Many younger U.S. hackers
pronounce the word as /klooj/ but spell it, incorrectly for its
meaning and pronunciation, as `kludge'. British hackers mostly
learned /kluhj/ orally and use it in a restricted negative sense
and are at least consistent. European hackers have mostly learned
the word from written American sources and tend to pronounce it
/kluhj/ but use the wider American meaning!
Some observers consider this mess appropriate in view of the word's
meaning.
HTML Conversion by AG2HTML.pl V2.94618 & witbrock@cs.cmu.edu