Storytelling About Lighthouses Criticizing Professor Dijkstra Considered Harmless
Total Page:16
File Type:pdf, Size:1020Kb
Research Storytelling About Lighthouses Criticizing Professor Dijkstra Considered Harmless Introduction Perhaps it is fitting to begin with “Criticizing I have a growing sense that scientists of the 1940s, Professor Dijkstra Considered Harmless,” prompt- around the time of the Manhattan Project, devel- ed by this year’s 50th anniversary of Communica- oped a substantive toughness through the process tions of the ACM, its new leadership and an exciting of critical dialogue. They worked in an environment renaissance in the journal’s next half century. In in which not only did they not shy away from the January 2008 anniversary issue, the publication, colleagues’ criticism, they sought it out with the in honor of E.W. Dijkstra, reprinted his paper expectation that exposing their ideas to the harsh “Go-To Statement Considered Harmful,” the most light of criticism would enhance their scientific famous letter to the editor ever published in survival. Such dialogue made the work of science fun. Communications of the ACM. “Considered Harmful” became a Dijkstranian hallmark of critical This article is about criticism, about personal reflection. [1] My article is about an anniversary experiences and observations that lead to the of my own: Twenty-five years ago, I wrote my first By Sorin Istrail obvious conclusion that criticism should be letter to Professor Dijkstra. Julie Nguyen Brown Professor of encouraged and that it could and should be taught. Computational and Mathematical Dijkstra the critic Sciences and Professor of Computer In many ways, I envision collegial criticism serving Donald Knuth put it well in 1974: “A revolution Science the same function as lighthouses: On one hand, lighthouses signal safe harbor—sail on. On the is taking place in the way we write programs and other, they warn of rough and hazardous shoals— teach programming… It is impossible to read the beware and explore other routes. I am drawn to recent [Dijkstra] book, Structured Programming, lighthouses as symbols of how scientific truth is won. without having it change your life. The reasons for this revolution and its future prospects have been “ In many ways, I envision collegial criticism serving aptly described by E.W. Dijkstra in his 1972 Turing Award Lecture, ‘The Humble Programmer.’ ”[2] the same function as lighthouses: On one hand, Indeed, Dijkstra was an outspoken and critical visionary. A prolific writer, he authored more than lighthouses signal safe harbor—sail on. On the other, 1,300 papers, many written by hand in his precise and elegant script. They were essays and parables; they warn of rough and hazardous shoals—beware fairy tales and warnings; comprehensive explana- tion and pedagogical pretext. Most were about and explore other routes. I am drawn to lighthouses mathematics and computer science; others were trip reports that are more revealing about their as symbols of how scientific truth is won.” author than about the people and places visited. Such beacons are the motivation for “Storytelling This “Dijkstranian style” of writing flourished on About Lighthouses,” a series of articles for Conduit the frontier between technical computing science about inspiring scientists I’ve encountered in the and the philosophy substantiating its distin- random walk of my career. Telling such stories can guished development. be difficult, especially if they appear to be self-pro- It was his habit to copy each paper and circulate moting or of dubious authenticity. Yet stories about it to a small group of colleagues who would copy these luminaries are priceless—they should be and forward the papers to another limited group collected and shared, for they inspire long after of scientists. I have in my basement a box with their first telling. Certainly, one would prefer stories several hundred papers from the series. [3] I read consistent with the following two impressionistic them with joy and excitement and my love for principles: Axiom 0, Primary source material is prime; mathematics and computer science has been and Axiom 1, taken from the Romanian proverb, influenced in no small measure by his works. (The Dupa razboi multi viteji se-arata, roughly translated as University of Texas has since digitized the Dijkstra “After the war, many heroes show up.” I look forward to manuscripts, known as EWDs, and makes them your feedback and—in the spirit of collegial available online at http://www.cs.utexas.edu/ criticism—intriguing counterarguments, responses Professor Edsger W. Dijkstra users/EWD/. I hope the current generation of to my calls for priceless stories and your solutions to students and young scientists enjoys reading some my silly games for consideration in future Conduit of his papers and gets inspired.) articles ([email protected]). 10 Condu¡t Fall | Winter 2008 Research He offered criticism with a combination of with an urn and as many white balls and black balls dramatics and humor—an approach I liken to as needed—that emboldened me to contact him. Don Quixote tilting at windmills. (Imagine my (What is a “silly game”? What are the axioms for surprise when I met Dijkstra not far from a it? We’ll save that discussion for another time.) lighthouse in Newport and discovered that he resembled Peter O’Toole’s Quixote in the movie The first letter Man of La Mancha.) It was 1983 and I was a junior researcher at the Take for example EWD498, “How Do We Tell Computing Center of the University of Iasi, Truths that Might Hurt?” In it, Dijkstra wrote that Romania, just four years out from my Ph.D. I had “the use of COBOL cripples the mind; its teaching read Dijkstra’s paper on correctness and after should, therefore, be regarded as a criminal years of dreaming about corresponding with this offense” and “it is practically impossible to teach inspiring and mesmerizing man, I felt I finally good programming to students that have had had something to say. prior exposure to BASIC. As potential program- In my letter dated January 19, 1983, I solicited mers they are mentally mutilated beyond hope of his comment and guidance on a technical report regeneration.” (I am curious whether he com- I had sent him previously. It contained two mented about C++ or Java. Might you have a story programming puzzles: “The Father-in-Law vs. the to share about this?) Other titles hint at the Pajamas” and “On a Chinese Olympiad Problem.” passionate arguments of his favorite themes. [4] The technical report was inspired by Dijkstra’s Nothing and absolutely no one was safe, not the art of problem solving—his “silly games.” I “real” programmer, the “real” mathematician, the wanted so much to master his style—striving for electrical engineer, the industrial manager, the elegance in defining new puzzles, especially in “systems people” nor American computing science. the mathematical derivation of the algorithms [4] Not even von Neumann or Turing. “The that solved them. fathers of the field had been pretty confusing: “I would be very much obliged if you could have a John von Neumann speculated about computers look at the problems… and if they deserve such a and the human brain in analogies sufficiently wild favor, please give me a reply,” I wrote. “My deep to be worthy of a medieval thinker and Alan M. hope is that you like these problems, and maybe Turing thought about criteria to settle the use them in your celebrated conferences.” question of whether Machines Can Think, which we now know is about as relevant as the question But my January 19 letter also included a manuscript of whether Submarines Can Swim.” [5] I had written titled, “On the Facets of a Jewel.” In it, I pointed out a certain mathematical difficulty But whether he was lecturing on algorithm design, concerning the game with the urn and balls writing an essay on the need for rigorous math- described in EWD720. “My remarks point to some ematical thought or taking programmers to task, nice mathematical properties underlying the elegance and simplicity were Dijkstra’s common game and adding to its beauty. Shall I turn it into denominators. His demand for elegance was a publishable form?” I asked. based on his essential formation as a “pragmatic industrial mathematician.” As he wrote in I never shared the manuscript with anyone, but in EWD538, A Collection of Beautiful Proofs, “we have discussing my findings with colleagues, I told them I to fight chaos, and the most effective way of doing was considering sending the manuscript to Dijkstra. that is to prevent its emergence.” Some colleagues suggested otherwise. Pointing out One of Dijkstra’s core beliefs was in mathematical “some nice mathematical properties” and actually rigor as the foundation for reliable software design. meaning “I found a certain difficulty with your It was a philosophy he outlined in “Why problem” could be construed by this exceedingly Correctness Must be a Mathematical Concern,” tough perfectionist as a severe critique. I’d be an inspiring keynote address (later published as committing professional suicide, they said. EWD720) presented at the University de Liege, I did not consider my manuscript a critique at all. Belgium, in 1979. It was this presentation—and Instead, I was eager to demonstrate to Dijkstra what he called a “silly game” played by one person 11 Condu¡t Fall | Winter 2008 Research balls and black balls as he needs. To begin with, an arbitrary positive number of balls is put into the urn and as long as the urn contains two or more balls, the player repeats the following moves: he shakes the urn and, without looking, he takes two balls from the urn; if those two balls have the same color he throws one black ball into the urn, otherwise he returns one white ball into the urn.