Um Turing Tarpit é qualquer linguagem de programação ou interface de computador que permite flexibilidade no uso mas é difícil de aprender e usar porque oferece pouco ou nenhum suporte para tarefas comuns. A frase foi cunhada por Alan Perlis no epigrama
54. Cuidado com o Turing tarpit, onde tudo é possível mas nada de interessante é fácil.— Alan Perlis [1]
Em qualquer linguagem Turing completa, é possível escrever qualquer programa de computador, assim em um sentido muito rigoroso quase todas as linguagens de programação são igualmente capazes. Turing tarpits mostra que a capacidade teórica não é a mesma que é utilizado na prática.
Turing tarpits são caracterizados por terem uma simples máquina abstrata, que requer que o usuário trate muitos detalhes na solução de um problema. No extremo oposto estão as interfaces que podem executar tarefas muito complexas com pouca intervenção humana mas se tornam obsoletos se os requisitos mudarem pouco.
Algumas linguagem de programação esotérica, como "brainfuck", são especificamente referidas como "Turing tarpits", significando que eles propositadamente implementam o mínimo de funcionalidades para serem classificadas como linguagem Turing completa. Linguagens semelhantes são um forma de matemática recreativa, em que programadores trabalham para como alcançar construções básicas de programação em uma linguagem extremamente difícil, mas matematicamente equivalente à linguagem Turing.