Related link: http://use.perl.org/~luqui/journal/26943

A recent journal entry from fellow Perl 6 cabalist Luke Palmer expresses a problem I’ve had with reading CS papers: I wouldn’t put up with that inscrutability in code I had to review or maintain.

Why should people put up with that in research papers? Does jargon-heavy, mostly mathematical notation serve a useful purpose (even as simple as keeping down word lengths), is it the sign of laziness from people who don’t have to touch the code (or prose) after it hits publication, or is it a sinister sign of a technocratic kabbalah, trying to keep out the unworthy?

Maybe that’s overstating it, but I have a similar dissatisfaction with the Haskell programming language. Autrijus Tang, who like Luke is both scarily smart and younger than I am, swears by the language. I’ve dabbled in it, even written some production code in it (including parameter binding and object destruction in Pugs, the latter of which exposed a bug in GHC’s garbage collector) and the syntax and idioms of the example code I see still drives me crazy.

I’m not a mathematician; I write code to solve real problems, not to calculate the Fibonacci sequence lazily and infinitely or to create a typesafe, type-agnostic function that appends to or counts the elements of a list. Yawn!

I think I’m a pretty good programmer. I understand closures, iterators, generators, list comprehensions, currying, continuations, type inference, co- and contravariance, and even (to some extent) monads.

For those of us who just want to do something productive, not show how elegantly we can transform numerical integration problems into source code, is it too much to ask for meaningful identifiers and intelligible examples? Don’t even get me started on the typing error messages GHC spews. The difference between IO and IO () was, well, awfully subtle the first dozen times I saw it.

I appreciate academic research and I know that researchers are solving problems that I don’t even recognize yet — but the gap between theory and practice is, in part, the fault of their poor communication.

Yeah, yeah, I’m a Perl hacker complaining about syntax. What do you think about the density and inscrutability of computing papers though?