Summary
...Wherein we explore what makes a paper Top Notch, primarily by example.
Advertisement
Some papers in Computer Science are somehow transcendent. They combine striking insight with clear and bright writing. They change how you think about things. They are a pleasure to read again and again. You tell your friends about them: "Gotta read this!"
Here are most of my Top Notch papers. What are yours?
This is a very powerful idea, coached in language that is inspired by its point. I won't tell you either the trick or the point, any more than I will tell you the ending of Matrix Reloaded. (Well, okay, the butler did it, but you didn't hear it here.) I actually don't completely agree with his conclusion, but that must never get in the way of an important idea so perfectly expressed.
How does writing the C compiler in C bear on security issues? Well, it does.
(I would have preferred to cite http://www.acm.org/classics/sep95/, but it's an OCR version of the text, and it's flakey (as it admits), so this is the one I could find that wasn't.)
Pascal itself is not a major issue these days, but this paper sets up an important mode of analysis for languages in general (hey, I cited it in my first blog entry, so it must be important.-). In fact, one could argue that the entire paper is really a setup for the second-to-last paragraph, which is a deep point well worth inscribing as a generalized observation, not just about Pascal. In fact, it ties very neatly back to Guy Steele's point.
"No Silver Bullet", Frederick P. Brooks, Jr., Computer Magazine, April 1987
If your management thinks they can control things, this is an important paper to lay on the table. It won't make you any friends because it will scare the daylights out of them. (Brooks is the author of The Mythical Man Month, another great read, but a book not an article.)
The Turing Test is defined in this paper, and it is very easy to read. You will very quickly see that Turing was smart, clever (which is not the same as smart), and would have been a lovely companion over drinks. Any CS paper with the following footnote has to be worth a read:
[1] Possibly this view is heretical. St. Thomas Aquinas (Summa Theologica, quoted by Bertrand Russell, 1, 480) states that God cannot make a man to have no soul. But this may not be a real restriction on His powers, but only a result of the fact that men's souls are immortal, and therefore indestructible.
I have to note one paper that doesn't quite make it for me: "Go To Statement Considered Harmful" by Edsger W. Dijkstra (Communications of the ACM, Vol. 11, No. 3, March 1968, pp. 147-148). This has been very influential, but it just not as crisp and "wow"-ish. I mostly mention this not to dis Dijkstra, a great observer, but to define my criteria. His opening line is fun, but it shows why it's merely on my list of "must read" papers, not the truly top notch:
For a number of years I have been familiar with the observation that the quality of programmers is a decreasing function of the density of go to statements in the programs they produce.
This is very biting and erudite, but it is denser than required. Compare this to Turing's:
I propose to consider the question, "Can machines think?" This should begin with definitions of the meaning of the terms "machine" and "think."
Strunk & White would clearly prefer the second, and so would I. The sentences are short and clear, the words simple and direct, and it is immediately clear that something interesting is going on (doesn't everyone know what those words mean, so why would he ask?).
I'm not sure what was so top-notch about BWK's criticism of Pascal - all of his complaints were fixed in UCSD pascal, (and in my opinion, better addressed than in C.)