Cruft is jargon for anything that is left over, redundant and getting in the way. It is used particularly for superseded and unemployed technical and electronic hardware and useless, superfluous or dysfunctional elements in computer software. The word may possibly originate from the Cruft Laboratory at Harvard University, U.S., where stacks of old and redundant radar research equipment dating back to World War II were conspicuous to students in the late twentieth century, but there may be other linguistic reasons for its wider adoption.
The origin of the term is uncertain, but it may be derived from Harvard University Cruft Laboratory, which was the Harvard Physics Department's radar lab during World War II. As late as the early 1990s, unused technical equipment could be seen stacked in front of Cruft Hall's windows. According to students, if a place filled with useless machinery is called Cruft Hall, the machinery itself must be cruft. This image of "discarded technical clutter" quickly migrated from hardware to software. Cruft may also be a play on the archaic medial "s", rendering "crust" as "cruſt".
Another possible origin is that the word evokes the words crust, fluff and scruffy. The latter word is the source of similar words in Jamaican English such as cruff, meaning scurfy, coarse or uncouth.
The FreeBSD handbook uses the term to refer to leftover or superseded object code that accumulates in a folder or directory when software is recompiled and new executables and data files produced Such cruft, if required for the new executables to work properly, can cause the BSD equivalent of Dependency Hell. The word is also used to describe instances of unnecessary, leftover or just poorly written source code in a computer program that is then uselessly, or even harmfully, compiled into object code.
Cruft accumulation may result in technical debt, which can subsequently make adding new features or modifying existing features—even to improve performance—more difficult and time consuming.
In the context of Internet or Web addresses (Uniform Resource Locators or "URLs"), cruft refers to the characters which are relevant or meaningful only to the people who created the site, such as implementation details of the computer system which serves the page. Examples of URL cruft include filename extensions such as .php or .html, and internal organizational details such as /public/ or /Users/john/work/drafts/.
Computer hardware 
Cruft may also refer to unused and out-of-date computer paraphernalia, collected through upgrading, inheritance, or simple acquisition, both deliberate and through circumstance. This accumulated hardware, however, often has benefit when IT systems administrators, technicians, and the like have need for critical replacement parts. An unused machine or component similar to a production unit could allow near-immediate restoration of the failed unit, as opposed to waiting for a shipped replacement.
See also 
- "crufty". The Jargon File, version 4.4.7.
- "188.8.131.52. What do I do if something goes wrong?". FreeBSD Handbook, Third Edition. Retrieved 2007-08-18.
- Developer blog comment: http://disfunksioneel.blogspot.co.uk/2011/04/linux-software-dependencies.html
- TechTarget SearchSoftwareQuality definition http://searchsoftwarequality.techtarget.com/definition/cruft
- "Hypertext Style: Cool URIs don't change". Retrieved 2007-08-18. "Cool URIs don't change."
|Look up cruft in Wiktionary, the free dictionary.|