The monadic morass

Beware of the Turing tar-pit in which everything is possible but nothing of interest is easy. —Alan Perlis, Epigrams on Programming.

One of the great ironies of programming language research is that language researchers are both the most frequent victims of the Turing tar pit mentality, as well as its most fervent perpetrators.

The tar pit, as I see it, is the attitude that programming language research is pointless because no programming language will ever let you do something that can’t already be done by a Turing machine. The Turing tar pit is a big problem for language researchers, who need to convince the rest of computer science that their work is worthwhile.

Within programming languages, the tar pit arises in a hidden form: it manifests as an unfavorable referee report that roughly translates to, “this can already be done in my favorite language.” Well, yes, of course, since by the Church-Turing Thesis, “this can already be done in my favorite language” is a tautology! Tautologies, by definition, have no implications, and in particular, they do not imply that a paper should be rejected.

Recently I’ve started to see a new variant of the Turing tar pit, something I call the monadic morass. Since monads were originally popularized in language research as a tool for specifying the semantics of programming languages, it is no surprise that they can form the basis for universal computation. So, when someone says that “this can already be done with monads,” listen closely and you might hear the sound of good research being sucked into the Turing tar pit.

How should we judge programming language research while avoiding the Turing tar pit? That’s a hard question, but another epigram of Perlis might be a good place to start: