Turing tarpit (nonfiction): Difference between revisions
(Created page with "A '''Turing tarpit''' (or '''Turing tar-pit''') is any programming language or computer interface that allows for flexibility in function but is difficult to learn and use bec...") |
No edit summary |
||
(3 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
The phrase was coined in 1982 by [[Alan Perlis (nonfiction)|Alan Perlis]] in the [[Epigrams on Programming (nonfiction)|Epigrams on Programming]]: | The phrase was coined in 1982 by [[Alan Perlis (nonfiction)|Alan Perlis]] in the [[Epigrams on Programming (nonfiction)|Epigrams on Programming]]: | ||
<blockquote>54. Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy.< | <blockquote>54. Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy.</blockquote> | ||
In any [[Turing completeness (nonfiction)|Turing complete]] language, it is possible to write any [[Computer program (nonfiction)|computer program]], so in a very rigorous sense nearly all programming languages are equally capable. Showing that theoretical ability is not the same as usefulness in practice, Turing tarpits are characterized by having a simple abstract machine that requires the user to deal with many details in the solution of a problem. At the extreme opposite are interfaces that can perform very complex tasks with little human intervention but become obsolete if requirements change slightly. | In any [[Turing completeness (nonfiction)|Turing complete]] language, it is possible to write any [[Computer program (nonfiction)|computer program]], so in a very rigorous sense nearly all programming languages are equally capable. Showing that theoretical ability is not the same as usefulness in practice, Turing tarpits are characterized by having a simple [[Abstract machine (nonfiction)|abstract machine]] that requires the user to deal with many details in the solution of a problem. At the extreme opposite are interfaces that can perform very complex tasks with little human intervention but become obsolete if requirements change slightly. | ||
Some esoteric programming languages, such as Brainfuck, are specifically referred to as "Turing tarpits" because they deliberately implement the minimum functionality necessary to be classified as Turing complete languages. Using such languages is a form of mathematical recreation: programmers can work out how to achieve basic programming constructs in an extremely difficult but mathematically Turing-equivalent language. | Some esoteric programming languages, such as Brainfuck, are specifically referred to as "Turing tarpits" because they deliberately implement the minimum functionality necessary to be classified as Turing complete languages. Using such languages is a form of [[Recreational mathematics (nonfiction)|mathematical recreation]]: programmers can work out how to achieve basic programming constructs in an extremely difficult but mathematically Turing-equivalent language. | ||
== See also == | == See also == | ||
* [[Abstract machine (nonfiction)]] - a theoretical model of a computer hardware or software system used in [[Automata theory (nonfiction)|automata theory]]. Abstraction of computing processes is used in both the computer science and computer engineering disciplines and usually assumes a discrete time paradigm. | |||
* [[Greenspun's tenth rule (nonfiction)]] | * [[Greenspun's tenth rule (nonfiction)]] | ||
* [[Zawinski's law of software envelopment (nonfiction)]] | * [[Zawinski's law of software envelopment (nonfiction)]] | ||
* [https://en.wikipedia.org/wiki/Turing_tarpit Turing tarpit] @ Wikipedia | * [https://en.wikipedia.org/wiki/Turing_tarpit Turing tarpit] @ Wikipedia |
Latest revision as of 06:08, 17 October 2019
A Turing tarpit (or Turing tar-pit) is any programming language or computer interface that allows for flexibility in function but is difficult to learn and use because it offers little or no support for common tasks.
The phrase was coined in 1982 by Alan Perlis in the Epigrams on Programming:
54. Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy.
In any Turing complete language, it is possible to write any computer program, so in a very rigorous sense nearly all programming languages are equally capable. Showing that theoretical ability is not the same as usefulness in practice, Turing tarpits are characterized by having a simple abstract machine that requires the user to deal with many details in the solution of a problem. At the extreme opposite are interfaces that can perform very complex tasks with little human intervention but become obsolete if requirements change slightly.
Some esoteric programming languages, such as Brainfuck, are specifically referred to as "Turing tarpits" because they deliberately implement the minimum functionality necessary to be classified as Turing complete languages. Using such languages is a form of mathematical recreation: programmers can work out how to achieve basic programming constructs in an extremely difficult but mathematically Turing-equivalent language.
See also
- Abstract machine (nonfiction) - a theoretical model of a computer hardware or software system used in automata theory. Abstraction of computing processes is used in both the computer science and computer engineering disciplines and usually assumes a discrete time paradigm.
- Greenspun's tenth rule (nonfiction)
- Zawinski's law of software envelopment (nonfiction)
- Turing tarpit @ Wikipedia