Lamport was honored for “fundamental contributions to the theory and practice of distributed and concurrent systems, notably the invention of concepts such as causality and logical clocks, safety and liveness, replicated state machines, and sequential consistency.”
Lamport has also been keenly interested in technical communication. In 1987, he presented a guest lecture in a course on “Mathematical Writing” (CS209) conducted at Stanford University by Donald Knuth. Recordings of the course lectures are still available (Lamport’s lecture was on November 20). Course notes were also published as the volume Mathematical Writing by Donald E. Knuth, Tracy Larrabee, and Paul M. Roberts (MAA Notes, 1989).
A prime reason for seeking to write and publish a paper, Lamport remarked, is that “you have done something that you are excited about.”
To convey that excitement, you must know what you want to present before you can present it well, he noted. “Bad writing comes from bad thinking, and bad thinking never produces good writing.”
We must keep in mind what we are writing—and to whom, he emphasized.
In the following writing sample, Lamport illustrated how he edited a co-author’s draft to streamline its bloated prose.
In this section, we describe some of the highlights of the research area. We discuss some of the most significant, elegant, and useful algorithms, and some corresponding lower bound results. Since the literature in the area is vast and varied, we have found the selection and organization of these results to be a formidable task. We have chosen to simplify our task be restricting our attention to four major categories of results: shared memory algorithms, distributed consensus algorithms, distributed network algorithms and concurrency control. Each of these categories has a very rich research literature of its own, and we think that together, they provide a representative picture of work in the area. Still, our description is incomplete, since we neglect many other interesting topics.
In this section, we discuss some of the most significant algorithms and lower bound results. We restrict our attention to four major categories: shared memory algorithms, distributed consensus algorithms, distributed network algorithms and concurrency control. Although we are neglecting many interesting topics, these four areas provide a representative picture of distributed computing.
Lamport also noted the importance of including examples. “It is better to have one solid example than to have a dry, abstract, academic paper,” he said. Moreover, it is never a mistake to have too simple an example.
Lamport kept coming back to the notion of excitement. “You should be excited about what you are writing and that excitement should show,” he said.
This principle applies particularly to first sentences. “You want something that leaps out at you,” he insisted. The first sentence can be expected to be nontechnical and to represent the author’s best effort.
What characterizes a good first sentence? Avoid passive wimpiness, Lamport recommended, and be simple and direct.
Of course, once you hit your readers in the gut with your first sentence, you can’t let them down with your second, and so on right to the end, he said.
“When you come to sentence 2079, you’ve got to keep socking it to them,” Lamport said. He illustrated his point by reading an arresting sentence from the middle of the Four Quartets by T.S. Eliot, choosing the sentence at random.
“I am not T.S. Eliot,” Lamport concluded. “I need to pay attention to my writing. As do we all.”—Ivars Peterson