HOME

TheInfoList



OR:

Cruft is a
jargon Jargon is the specialized terminology associated with a particular field or area of activity. Jargon is normally employed in a particular Context (language use), communicative context and may not be well understood outside that context. The conte ...
word for anything that is left over, redundant and getting in the way. It is used particularly for defective, superseded, useless, superfluous, or dysfunctional elements in
computer software Software is a set of computer programs and associated documentation and data. This is in contrast to hardware, from which the system is built and which actually performs the work. At the lowest programming level, executable code consists ...
.


History

Around 1958, the term was used in the sense of "garbage" by students frequenting the
Tech Model Railroad Club The Tech Model Railroad Club (TMRC) is a student organization at the Massachusetts Institute of Technology (MIT). Historically it has been a wellspring of hacker culture and the oldest such hacking group in North America. Formed in 1946, its HO sc ...
(TMRC) at the
Massachusetts Institute of Technology The Massachusetts Institute of Technology (MIT) is a private land-grant research university in Cambridge, Massachusetts. Established in 1861, MIT has played a key role in the development of modern technology and science, and is one of the ...
(MIT). 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". Its author
Peter Samson Peter R. Samson (born 1941 in Fitchburg, Massachusetts) is an American computer scientist, best known for creating pioneering computer software for the TX-0 and PDP-1. Samson studied at the Massachusetts Institute of Technology (MIT) between 19 ...
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". Cruft can also refer to alumni who remain socially active at MIT. The origin of the term is uncertain, but it may be derived from
Harvard University Harvard University is a private Ivy League research university in Cambridge, Massachusetts. Founded in 1636 as Harvard College and named for its first benefactor, the Puritan clergyman John Harvard, it is the oldest institution of higher le ...
's Cruft Laboratory. Built in 1915 as a gift from a donor named Harriet Otis Cruft, it housed the Harvard Physics Department's radar lab during
World War II World War II or the Second World War, often abbreviated as WWII or WW2, was a world war that lasted from 1939 to 1945. It involved the vast majority of the world's countries—including all of the great powers—forming two opposin ...
.


Software

The
FreeBSD FreeBSD is a free and open-source Unix-like operating system descended from the Berkeley Software Distribution (BSD), which was based on Research Unix. The first version of FreeBSD was released in 1993. In 2005, FreeBSD was the most popular ...
handbook uses the term to refer to leftover or superseded
object code In computing, object code or object module is the product of a compiler. In a general sense object code is a sequence of statements or instructions in a computer language, usually a machine code language (i.e., binary) or an intermediate langua ...
that accumulates in a folder or directory when software is
recompiled In computing, a compiler is a computer program that translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primarily used for programs that ...
and new
executables In computing, executable code, an executable file, or an executable program, sometimes simply referred to as an executable or binary, causes a computer "to perform indicated tasks according to encoded instructions", as opposed to a data file ...
and data files produced. Such cruft, if required for the new executables to work properly, can cause the
BSD The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berk ...
equivalent of
dependency hell Dependency hell is a colloquial term for the frustration of some software users who have installed software packages which have dependencies on specific versions of other software packages. The dependency issue arises when several packages have d ...
. The word is also used to describe instances of unnecessary, leftover or just poorly written
source code In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
in a computer program that is then uselessly, or even harmfully, compiled into object code. Cruft accumulation may result in
technical debt In software development, technical debt (also known as design debt or code debt) is the implied cost of additional rework caused by choosing an easy (limited) solution now instead of using a better approach that would take longer. Analogous with ...
, 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 The Internet (or internet) is the global system of interconnected computer networks that uses the Internet protocol suite (TCP/IP) to communicate between networks and devices. It is a '' network of networks'' that consists of private, pub ...
or Web addresses (
Uniform Resource Locator A Uniform Resource Locator (URL), colloquially termed as a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifi ...
s or "URLs"), cruft refers to the
character Character or Characters may refer to: Arts, entertainment, and media Literature * ''Character'' (novel), a 1936 Dutch novel by Ferdinand Bordewijk * ''Characters'' (Theophrastus), a classical Greek set of character sketches attributed to The ...
s that 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 extension A filename extension, file name extension or file extension is a suffix to the name of a computer file (e.g., .txt, .docx, .md). The extension indicates a characteristic of the file contents or its intended use. A filename extension is typically d ...
s 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

*
Bloatware Software bloat is a process whereby successive versions of a computer program become perceptibly slower, use more memory, disk space or processing power, or have higher hardware requirements than the previous version, while making only dubious us ...
*
Dead code removal In compiler theory, dead-code elimination (also known as DCE, dead-code removal, dead-code stripping, or dead-code strip) is a compiler optimization to remove code which does not affect the program results. Removing such code has several benefits: ...
, the automatic removal of unnecessary code by compilers *
Duplicate code In computer programming, duplicate code is a sequence of source code that occurs more than once, either within a program or across different programs owned or maintained by the same entity. Duplicate code is generally considered undesirable for a n ...
*
Feature creep Feature creep is the excessive ongoing expansion or addition of new features in a product, especially in computer software, video games and consumer and business electronics. These extra features go beyond the basic function of the product and ...
*
Muda (Japanese term) is a Japanese word meaning "futility; uselessness; wastefulness", and is a key concept in lean process thinking, like the Toyota Production System (TPS) as one of the three types of deviation from optimal allocation of resources (the others b ...
*
Spaghetti code Spaghetti code is a pejorative phrase for unstructured and difficult-to- maintain source code. Spaghetti code can be caused by several factors, such as volatile project requirements, lack of programming style rules, and software engineers with ins ...
*
Junk DNA Non-coding DNA (ncDNA) sequences are components of an organism's DNA that do not encode protein sequences. Some non-coding DNA is transcribed into functional non-coding RNA molecules (e.g. transfer RNA, microRNA, piRNA, ribosomal RNA, and regula ...
*
Vestigial organ Vestigiality is the retention, during the process of evolution, of genetically determined structures or attributes that have lost some or all of the ancestral function in a given species. Assessment of the vestigiality must generally rely on co ...


References


External links

{{wiktionary
In the Beginning...was the Command Line
– article by
Neal Stephenson Neal Town Stephenson (born October 31, 1959) is an American writer known for his works of speculative fiction. His novels have been categorized as science fiction, historical fiction, cyberpunk, postcyberpunk, and baroque. Stephenson's work exp ...
which includes coverage of the "cruft" concept.
Verity Stob's Index of Cruftidity
at Dr. Dobb's Journal Anti-patterns Pejorative terms related to technology