Call me old fashioned for working on compiler technologies. But recently, I was interested in displaying a parse tree generated by a parser that I am writing. For several weeks I read some well-known papers on tree layout, then implemented the algorithms described in these papers. To my chagrin, this took a lot longer than I expected. Am I losing it as a software engineer?
Fortunately, I do not think that I have lost all my skills despite several years away from the field to pursue a master’s of science in biology. Rather, these papers have problems that interfere with understanding: typos, poorly worded explanations, missing details, and of course grammatical errors. In comparison to biology, papers in computer science are worse in readibility and ease of understanding. At this point, I started to recall something long ago from graduate school. In a seminar I once took, we were given the facts of life–computer science, that is! The professor explained that most papers in computer science were poorly written, but that you should just accept it. As a result, I got used to the lengthy time it took to figure out what in the world the authors were thinking.
But now, I seem to have less patience for poorly written papers, especially after reading the thought-provoking articles by Peter Denning, “Is computer science science?” and “Is software engineering engineering?” in the Communications of the ACM (April 2005 and March 2009). Still, it seems many do not understand the problem software engineers face when trying to apply the science: algorithms are hard to implement because the writers, reviewers, or both do not do careful work.