10

I just had to look up "cruft" (jargon for software or hardware that is of poor quality), as used in a comment to an earlier question.

But I can't find any details of etymology, and I don't know how often it's used outside the superfluous source code that has yet to be removed context. Can anyone help?

6
  • Did you see the reference to Harvard's Cruft Hall?
    – tylerharms
    Commented Dec 10, 2012 at 20:20
  • Wikipedia suggests it may come from Harvard
    – Jim
    Commented Dec 10, 2012 at 20:20
  • @J.R.: I don't really see the point of your edit (apart from adding the two tags I should have done myself). My existing link to onlineslangdictionary already cites what I assume is the primary definition, and if anyone wanted to follow it they'd also find in software, layers of poorly written source code that have accumulated over a great length of time. Obviously I'm no authority (I never knew the word until yesterday), but I haven't seen anything except your quote from Wikipedia linking cruft to poor quality hardware. Commented Dec 11, 2012 at 22:10
  • @FF: You said you had to look it up. I had to look it up, too. (I didn't initially catch that your second link pointed to a dictionary meaning). I just figured that it wouldn't hurt to add a quick summary of the meaning for any others who might be curious what the word meant. Feel free to roll it back, or strike hardware from my parenthetical statement.
    – J.R.
    Commented Dec 11, 2012 at 22:38
  • @J.R.: It's no big deal either way, so let it stand. I just didn't understand why you did it, but all becomes clear when you say you hadn't noticed my superfluous source code that has yet to be removed was in fact a link to definitions. Anyway, it's obviously good that you added the extra two tags (I know I'm a bit remiss in that area myself) - so on balance, many thanks! Commented Dec 11, 2012 at 23:31

6 Answers 6

5

It's a made-up word, in a culture where hacking words is a time-honored traditional value. So the etymology itself becomes a matter of competing legends.

One of the reasons why a word stays around instead of being forgotten is because it sounds right. That's the legend of Phonosemantics, or sound symbolism.

Monosyllabic English words (like, say, stump) can be broken into Assonances (st-, in the case of stump) and Rimes (-əmp).

Many of these word chunks have meaning; for instance, the assonance /kl-/. And in particular, the assonance /kr-/ is a very good phonosemantic match for cruft.

8
  • Phonosemantics is definitely starting to appeal to me! Even if Cruft Hall at Harvard University was the "proximate cause" of the word (which I don't really believe), I'm well up for the idea that a word stays around instead of being forgotten because it sounds right. Cruft does seem a good fit with crud, crude, crap, crumble, crust, etc. Before my fruitless search, I'd speculated cruft might be a variant of crud, which I've always known, and assumed was from crude. But I now know crud came from curd (and to me, crud really does "sound better" for crusty debris :). Commented Dec 10, 2012 at 22:59
  • ...there's one huge problem I imagine must bedevil people trying to work on phonosemantics. It seems to me that other words like scruffy, scurvy, scum, and scutch (dialectal "rubbish") gain at least some "currency" from these loose phonological associations. But how on earth would you train computer code to pick these out without getting sidetracked by things like scrumptious and sumptuous? There's a lot of hands-on spadework there, I feel. Commented Dec 11, 2012 at 1:36
  • You don't. Like a lot of things, this is an AI-Complete problem. Humans can sense these things, and so far machines can't -- except by statistics, which is probably close to what we do chemically in the brain, if truth be known. Commented Dec 11, 2012 at 1:56
  • Dang. I've been telling people for years that computers ain't gonna crack natural language parsing any time soon, but I got really fired up by the possibility they might at least be able to compile lists of words that have "something in common" both semantically and phonologically. Partly because I like the idea that we might gain insights into how people really think by identifying the semantic groupings represented by those lists. But I guess that humans will have to do all the really hard work, as usual. Computers are still good drudges though, and it's good they don't forget things much. Commented Dec 11, 2012 at 2:08
  • 1
    Already done it: FrameNet Commented Dec 11, 2012 at 5:22
14

Jargon File

According to the Jargon File:

cruft: /kruhft/

[very common; back-formation from crufty]

  1. n. An unpleasant substance. The dust that gathers under your bed is cruft; the TMRC Dictionary correctly noted that attacking it with a broom only produces more.

  2. n. The results of shoddy construction.

  3. vt. [from hand cruft, pun on ‘hand craft’] To write assembler code for something normally (and better) done by a compiler (see hand-hacking).

  4. n. Excess; superfluous junk; used esp. of redundant or superseded code.

  5. [University of Wisconsin] n. Cruft is to hackers as gaggle is to geese; that is, at UW one properly says “a cruft of hackers”.

And for crufty:

crufty: /kruhf�tee/, adj. [very common; origin unknown; poss. from ‘crusty’ or ‘cruddy’]

  1. Poorly built, possibly over-complex. The canonical example is “This is standard old crufty DEC software”. In fact, one fanciful theory of the origin of crufty holds that was originally a mutation of ‘crusty’ applied to DEC software so old that the ‘s’ characters were tall and skinny, looking more like ‘f’ characters.

  2. Unpleasant, especially to the touch, often with encrusted junk. Like spilled coffee smeared with peanut butter and catsup.

  3. Generally unpleasant.

  4. (sometimes spelled cruftie) n. A small crufty object (see frob); often one that doesn't fit well into the scheme of things. “A LISP property list is a good place to store crufties (or, collectively, random cruft).”

This term is one of the oldest in the jargon and no one is sure of its etymology, but it is suggestive that there is a Cruft Hall at Harvard University which is part of the old physics building; it's said to have been the physics department's radar lab during WWII. To this day (early 1993) the windows appear to be full of random techno-junk. MIT or Lincoln Labs people may well have coined the term as a knock on the competition.


Tech Model Railroad Club Dictionary

The quoted TMRC Dictionary was compiled by members of the Tech Model Railroad Club at MIT (who may also be responsible for foo and bar), many of worked on early programming languages and computers such as LISP and the PDP-1 and Project MAC from 1964 onwards.

The terms appear in the first edition of the TMRC dictionary of 1959, compiled by Pete Sampson who later added the italic notes:

CRUD: cruft (q.v.).
The gag here is to define the obvious word in terms of the more obscure.

CRUFT: that which magically amounds in the Clubroom just before you walk in to clean up. In other words, rubbage.
The word was in use at the club when I wrote this definition. The sense is of detritus, that which needs to be swept up and thrown out. The dictionary has no definition for "crufty," a word I didn't hear until some years later. Rubbage is a rare term for rubbish, but I had heard it used growing up in New England.


Oxford English Dictionary

Cruft now appears in the OED, with this etymology:

Origin unknown. Perhaps an expressive formation, perhaps recalling fluff n.1, scruffy adj., crust n. However, with crufty adj. perhaps compare Jamaican English crufty coarse-looking (1943), cruffy scurfy, rough (1868), cruff (adjective) scabby, scurfy, naturally rough, coarse, uncooth (c1915), all ultimately related to scruff n.1: see F. G. Cassidy & R. B. LePage Dict. Jamaican English (1967) at cited words.

A number of other etymologies have also been suggested.

Meaning:

Computing slang.

Anything unnecessary or redundant; esp. poorly designed or unnecessarily complex computer software, e.g. that containing sections of obsolete code. Also: filth, esp. that which builds up over time; detritus.

Their first quotation is the 1959 TMRC dictionary.

Nowadays, it is mainly used in terms of redundant, poor quality or wasteful source code that should best be removed; but can also be that unpleasant-to-touch dirt that accumulates on keyboards and inside computers.

2
  • 1
    I'm upvoting this answer because it contains a wealth of associated interesting information. But I'll probably end up accepting John's answer, because in the final analysis it's not just that the "definitive origin" seems to be beyond our reach. The key point I've picked up from asking this question is that whatever the origin, it wouldn't have arisen and/or survived without "phonosemantic support". And even then it might not have made it but for the fact that Americans never really adopted crud/cruddy as much as Brits, so they had more of a "phonosemantic gap" there waiting to be filled. Commented Dec 10, 2012 at 23:13
  • 2
    I'm also sceptical of the Cruft Hall claim, I think it's more simply humourous word play, as was common at TMRC/MIT, and still common in computing communities. See also Pete Sampson's comment that a joke was to define the more obvious crud in terms of the more obscure cruft.
    – Hugo
    Commented Dec 11, 2012 at 6:32
6

According to the Hacker Dictionary:

This term is one of the oldest in the jargon and no one is sure of its etymology, but it is suggestive that there is a Cruft Hall at Harvard University which is part of the old physics building; it's said to have been the physics department's radar lab during WWII. To this day (early 1992) the windows appear to be full of random techno-junk. MIT or Lincoln Labs people may well have coined the term as a knock on the competition.

1
0

I attended MIT from 2003-2007, and heard a history of the term "cruft". Legend has it that some MIT student was lurking around a Harvard basement and found a box of old electronics. It was outside the office of a Professor Cruft and the box was labeled "Cruft". Back on MIT campus, the contents, and then the general category, took on the name.

2
  • Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.
    – Community Bot
    Commented Dec 9, 2021 at 19:34
  • Welcome! This is mentioned in the Wikipedia page that was linked in one of the comments on the question. It was made a comment rather than an answer because it's easily found online, the author isn't adding anything substantive to the source (a "link only" answer), and it's ultimately unproven (labeled "citation needed" in Wikipedia). And read through the other comments and answers; the Harvard idea has been thoroughly discussed. Commented Dec 9, 2021 at 20:41
0

I can't give you a reference, but as an old programmer, the story I heard is that during the development of RADAR during WWII at Harvard's Cruft Hall, the pace of iteration on RADAR was so fast that recent prototypes would just be dragged out to the hallway, abandoned as junk, but kept nearby for potential parts and reference to what didn't work. (They likely couldn't just send it to the dump out of espionage/secrecy concerns.)

How much truth is in this story is unknown to me, but this usage perfectly captures the current usage of the word for accumulated junk that is inexplicably kept around.

0

The etymology of cruft is not of much interest to me, and I suspect that the origin stories put forth here are just folk etymologies. (If you ever heard the explanation that tip (as in money left for a server at a restaurant) is derived from "to insure promptness") you have encountered a folk etymology before.)

I am a retired radar engineer. For analysis tools people often take an existing source file and copy it to another file to serve as a template or starting point rather than coding from scratch. It often is the case that the file then has lots of variable declarations and functions that aren't needed for the new application. We would refer to the extraneous code that isn't needed for the current use cruft. Even in an unofficial tool that doesn't need to be brought under configuration management, it is a good idea to clean up the code, get rid of the cruft, because it makes it harder to understand what the tool is supposed to be doing. So, in my view, Definition 4 quoted above from the Jargon File is the most correct and most useful:

  1. n. Excess; superfluous junk; used esp. of redundant or superseded code.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .