UneTuring tarpit (traduction littérale, fosse degoudron deTuring) est unlangage de programmation ou uneinterface utilisateur qui permet une certaine flexibilité dans ses fonctions, mais qui est difficile à apprendre et à utiliser parce qu'il offre peu ou pas de support pour les tâches courantes[1]. L'expression a été inventée en 1982 parAlan Perlis dans lesEpigrams on Programming[2] :
Dans tout langageTuring-complet, il est possible d'écrire n'importe quelprogramme informatique, de sorte que, dans un sens très rigoureux, presque tous leslangages de programmation ont des capacités équivalentes. Montrant que la capacité théorique n'est pas la même chose que la facilité d'utilisation dans la pratique, lesTuring tarpits se caractérisent par unemachine abstraite simple qui exige de l'utilisateur qu'il s'occupe de nombreux détails dans la résolution d'un problème[3]. À l'extrême opposé, on trouve des interfaces qui peuvent effectuer des tâches très complexes avec peu d'intervention humaine, mais qui deviennent obsolètes si les exigences changent légèrement.
Certainslangages de programmation exotiques, commeBrainfuck, sont spécifiquement appelésTuring tarpits[4] parce qu'ils implémentent délibérément la fonctionnalité minimale nécessaire pour être classés comme langagesTuring-complet. L'utilisation de tels langages est une forme dejeu mathématique : les programmeurs doivent trouver comment réaliser des constructions de programmation de base dans un langage extrêmement difficile, mais mathématiquement équivalent à celui de Turing[5].
« turing tarpit. »