Thursday, October 29, 2015

The Needless Complexity of Academic Writing

When I was in my last year of university, trying to get my degree in Computer Engineering, one of the courses I took required me to choose a goal and write a program to fulfill that goal. My goal was to add unit inference to a programming language. This would detect, for example, that in "dist + 2 km", dist must be a quantity of kilometres; and if dist seems to have a different unit elsewhere in the same program, the program must have a bug in it.

One requirement of the course was to find and read five academic papers related to my goal, and I was indeed able to locate 5 academic papers about unit checking and unit inference. I remember there were multiple papers about unit checking that I was able to follow, but they weren't really useful because I wanted to go beyond unit checking and do the more complex task of unit inference (I won't bore you by explaining the difference between unit checking and unit inference; the essential difference is that unit inference is easier for a programmer to use, but harder for the programming language to perform. In other words, it shifts effort from the programmer to the computer.)

As I recall, the academic paper that ultimately seemed most relevant to my work was also the most incomprehensible. I'm unable to locate the paper now, 9 years later, but I remember being stuck on its use of obscure terminology such as "abelian groups" and other jargon, its reliance on an obscure programming language like ML or Lambda Calculus, and/or its use of notation that looked something like this:

(For non-programmers reading this, just let me clarify that most programmers, and perhaps most computer scientists, have never seen anything like this.)

Look, there are literally millions of professional programmers in the world. So here was a paper about concepts that all engineers know about (unit checking) that is relevant to most programmers (we all make bugs involving units at some point), for a goal that could benefit all programmers (unit inference), yet no matter how hard I tried, I could not comprehend that paper or any other paper that had useful information about the subject. In the end, the papers were worthless; I ignored them and figured out how to perform unit inference by myself.

Since that time I have tried hard to write in ways that my audience would be able to understand, and to use other communication techniques not used by those damn worthless papers (such as using good examples). Today I'd like to thank The Atlantic for reminding me about the importance of comprehensible writing, and for reminding academics that they're still doing a crappy job.

See also:

No comments: