Cargo cult programming

Cargo cult programming

Cargo cult programming is a style of computer programming that is characterized by the ritual inclusion of code or program structures that serve no real purpose. Cargo cult programming is typically symptomatic of a programmer not understanding either the bug they were attempting to solve or the apparent solution (compare shotgun debugging, voodoo programming). [citation|title=The New Hacker's Dictionary |author=Eric S. Raymond|year= 1996|publisher=MIT Press|id=ISBN 0262680920]

Cargo cult programming can also refer to the results of (over-)applying a design principle blindly without understanding the reasons behind that design principle in the first place. An example would be a novice being taught that commenting code is good, and then adding comments for lines that are self-explanatory or need no comment; other examples involve overly complex use of design patterns or certain forms of coding style.

The term 'cargo cult', as an idiom, originally referred to aboriginal religions which grew up in the South Pacific after World War II. The practices of these groups centered on building elaborate mock-ups of airplanes and military landing strips in the hope of summoning the god-like airplanes that had brought marvelous cargo during the war [cite web | url = http://www.softpanorama.org/Skeptics/cargo_cult_programming.shtml | title = Cargo Cult Programming article | publisher = Softpanorama (slightly skeptical) Open Source Software Education Society | author = Dr. Nikolai Bezroukov | accessdate = 2008-03-25] . Use of the term in computer programming probably derives from Richard Feynman's characterization of certain practices as "cargo cult science". [cite web | url = http://www.jargon.net/jargonfile/c/cargocultprogramming.html | title = Definition of cargo cult programming | publisher = Jargon File at jargon.net | accessdate = 2008-03-25 ]

Cargo cult software engineering

A related term in software engineering is "cargo cult software engineering", coined by Steve McConnell.

McConnell describes software development organizations that attempt to emulate more successful development houses, either by slavishly following a software development process, or by taking a commitment oriented development approach.

In both cases, McConnell contends that competence ultimately determines whether a project succeeds or fails, regardless of the development approach taken; furthermore, he claims that incompetent "impostor organizations", that merely imitate the form of successful software development organizations are, in fact, engaging, in what he calls "Cargo cult software engineering". cite web | url = http://stevemcconnell.com/ieeesoftware/eic10.htm | title = Cargo Cult Software Engineering | publisher = IEEE Software | author = From the Editor | date = March/April 2000 | accessdate = 2008-05-24 ]

ee also

*Magical thinking

References

Further reading

*"Surely You're Joking, Mr. Feynman!", Richard Feynman, W. W. Norton & Co, New York, 1985, ISBN 0-393-01921-7. One of the chapters is the transcript of a 1974 Caltech commencement address, which contained the coining of "Cargo cult science".
* [http://calteches.library.caltech.edu/51/02/CargoCult.pdf Cargo Cult Science, by Richard P. Feynman] . Article based on his 1974 Caltech Commencement address, with pictures, as originally published in "Engineering and Science", Volume 37:7, June 1974. Digitized version from Caltech Library, retrieved June 20, 2007

External links


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • cargo cult programming — (Computers) programming style characterized by the use of meaningless code or program structures (allegedly to prevent the recurrence of bugs or problems encountered previously) …   English contemporary dictionary

  • Cargo cult (disambiguation) — Cargo cult may refer to:* Cargo cult, a group of religious movements occurring in Melanesia * Cargo cult science, a term coined by Richard Feynman to describe something that appears to be science but that lacks scientific integrity * Cargo cult… …   Wikipedia

  • Cargo cult science — is a term used by Richard Feynman in his 1974 Caltech commencement address to describe work that has the semblance of being scientific, but is missing a kind of scientific integrity, a principle of scientific thought that corresponds to a kind of …   Wikipedia

  • Cargo cult — A cargo cult may appear in tribal societies in the wake of interaction with technologically advanced, non native cultures. The cult is focused on obtaining the material wealth of the advanced culture through magical thinking, religious rituals… …   Wikipedia

  • Copy and paste programming — is a pejorative term to describe highly repetitive computer programming code apparently produced by copy and paste operations. It is frequently symptomatic of a lack of programming competence, or an insufficiently expressive development… …   Wikipedia

  • Association for Neuro Linguistic Programming — The Association for Neuro Linguistic Programming (ANLP) is a UK organisation founded in 1985 by Frank Kevlin[1] to promote NLP. Associate Membership is open to anyone interested in NLP and Full Membership is open to holders of recognized NLP… …   Wikipedia

  • Наука самолётопоклонников — «Наука самолётопоклонников» (англ. Cargo cult science  «наука карго культа»)  термин для определения псевдонауки, распространённый в научной среде преимущественно западных стран, и подчёркивающий аналогию между некоторыми областями …   Википедия

  • Anti-pattern — For the book, see AntiPatterns. In software engineering, an anti pattern (or antipattern) is a pattern that may be commonly used but is ineffective and/or counterproductive in practice.[1][2] The term was coined in 1995 by Andrew Koenig,[3]… …   Wikipedia

  • Rain dancing — A rain dance is a ceremonial dance that is performed in order to invoke rain and to ensure the protection of the harvest. Various interpretations of rain dances can be found in many cultures, from Ancient Egypt to certain Native American tribes.… …   Wikipedia

  • Unusual software bug — Unusual software bugs are a class of software bugs that are considered exceptionally difficult to understand and repair. There are several kinds, mostly named after scientists who discovered counterintuitive things. Contents 1 Bohrbug 2 Mandelbug …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”