Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Turing tarpit
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Intentionally obscure programming language}} {{Use dmy dates|date=April 2018}} 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.<ref>{{cite web| url=https://wiki.c2.com/?TuringTarpit |title=Turing Tarpit |website=wiki.c2.com |date=21 November 2014 |access-date=30 April 2023}}</ref> The phrase was coined in 1982 by [[Alan Perlis]] in the ''[[Epigrams on Programming]]'':<ref>{{cite journal|last1=Perlis|first1=A|journal=ACM SIGPLAN Notices|volume=17|issue=9|pages=7–13|title=Epigrams on Programming|date=September 1982|publisher=Yale University|doi=10.1145/947955.1083808|s2cid=20512767|doi-access=free}}</ref> {{quote|54. Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy.}} In any [[Turing completeness|Turing complete]] language, it is possible to write any computer program, so in a very rigorous sense nearly all programming languages are equally capable. However, having 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.<ref>{{cite web |url=https://practicingruby.com/articles/exploring-a-turing-tarpit |title=Exploring the depths of a Turing tarpit |website=practicingruby.com |date=17 January 2012 |access-date=30 April 2023}}</ref> 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]] or [[Malbolge]], are specifically referred to as "Turing tarpits"<ref name=chandra2014geek>{{cite book|last1=Chandra|first1=V|title=Geek Sublime: The Beauty of Code, the Code of Beauty|date=2014|publisher=Graywolf Press|isbn=9781555973261|url=https://archive.org/details/geeksublimebeaut0000chan|url-access=registration|quote=turing tarpit.|access-date=28 August 2015}}</ref> 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.<ref>[https://web.archive.org/web/20020609152409/http://www.catseye.mb.ca/esoteric/index.html Esoteric Topics in Computer Programming], Cat's Eye Technologies, Canada. (''"They present the programmer with the challenge, intrigue, and entertainment of looking at known algorithms and concepts in a whole new light."'')</ref> ==See also== {{Portal|Computer programming}} * [[Greenspun's tenth rule]] * [[Zawinski's law of software envelopment]] ==References== {{Reflist}} ==Further reading== * G. Fischer, A.C. Lemke, [https://scholar.colorado.edu/concern/reports/kp78gh344 "Constrained Design Processes: Steps Toward Convivial Computing"], Technical Report CU-CS-369-87, [[University of Colorado]], USA. * E.L. Hutchins, J.D. Hollan, D.A. Norman, {{cite journal |last1=Hutchins |first1=Edwin L. |last2=Hollan |first2=James D. |last3=Norman |first3=Donald A. |title=Direct Manipulation Interfaces |journal=Human–Computer Interaction |date=1 December 1985 |volume=1 |issue=4 |pages=311–338 |doi=10.1207/s15327051hci0104_2 |url=http://cleo.ics.uci.edu/teaching/Winter10/231/readings/1-HutchinsHollanNorman-DirectManipulation-HCI.pdf|archive-url=https://web.archive.org/web/20100613062436/http://cleo.ics.uci.edu/teaching/Winter10/231/readings/1-HutchinsHollanNorman-DirectManipulation-HCI.pdf |archive-date=13 June 2010}}. Also found in {{cite book|author1=Donald A. Norman|author2=Stephen W. Draper|title=User Centered System Design: New Perspectives on Human-computer Interaction|url=https://books.google.com/books?id=Qz5jQgAACAAJ|date=1 January 1986|publisher=Taylor & Francis|isbn=978-0-89859-872-8}} * Esolangs, [https://esolangs.org/wiki/Turing_tarpit Turing Tarpit]. [[Category:Alan Turing]] [[Category:Recreational mathematics]] [[Category:Theory of computation]] [[Category:Software engineering folklore]]
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Templates used on this page:
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:Portal
(
edit
)
Template:Quote
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Use dmy dates
(
edit
)
Search
Search
Editing
Turing tarpit
Add topic