Cruft
Cruft is jargon for anything that is left over, redundant and getting in the way. It is used particularly for superseded and unused technical and electronic hardware and useless, superfluous or dysfunctional elements in computer software.
History
Around 1958, the term was used in the sense of "garbage" by students frequenting the MIT Tech Model Railroad Club (TMRC).[1] In the 1959 edition of the club's dictionary, it was defined as "that which magically amounds in the Clubroom just before you walk in to clean up. In other words, rubbage".[2] Its author Peter Samson later explained that this was meant in the sense 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".[2]
The origin of the term is uncertain, but it may be derived from Harvard University's Cruft Laboratory (built in 1915 as a gift from a donor named Harriet Otis Cruft[3]), 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".[4] In the TMRC dictionary, the relation to the term "crud" (dirt, crap) is pointed out by humorously defining the better known word (crud) by the more obscure one (cruft).[2]
Software
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[5] Such cruft, if required for the new executables to work properly, can cause the BSD equivalent of Dependency hell.[6] 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.[7]
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/.[8]
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.[4] 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
- Bloatware
- Dead code removal, the automatic removal of unnecessary code by compilers
- Duplicate code
- Feature creep, a recipe to produce future cruft
- Muda (Japanese term)
- Spaghetti code
- Junk DNA
- Vestigial organ
References
- ↑ Steven Levy: "Hackers: Heroes of the Computer Revolution - 25th Anniversary Edition." O'Reilly Media, 2010, ISBN 9781449393748, p.8
- 1 2 3 Peter Samson: AN ABRIDGED DICTIONARY of the TMRC LANGUAGE June 1959 (with 2005 commentary)
- ↑ "Bronze Tablet Erected in Cruft Memorial Laboratory". thecrimson.com. Retrieved 26 November 2014.
- 1 2 "crufty". The Jargon File, version 4.4.7.
- ↑ "20.4.16.6. 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
- ↑ Berners-Lee, Tim. "Hypertext Style: Cool URIs don't change". Retrieved 2007-08-18.
Cool URIs don't change.
External links
Look up cruft in Wiktionary, the free dictionary. |
- In the Beginning...was the Command Line - article by Neal Stephenson which includes coverage of the "cruft" concept.
- Verity Stob's Index of Cruftidity at Dr. Dobb's Journal