On his proto-blog archive, the words and spirit of the late computer scientist Edsger Dijkstra live on, inspiring new generations of geeks.
Jul 9, 2003 | considered harmful: adj. [very common] Edsger W. Dijkstra's note in the March 1968 "Communications of the ACM," "Goto Statement Considered Harmful," fired the first salvo in the structured programming wars ... use of such titles has remained as a persistent minor in-joke (the 'considered silly' found at various places in this lexicon is related).
That entry in Eric Raymond's edition of the Hacker's Dictionary was my first encounter with pioneering computer scientist Edsger Wybe Dijkstra, but thanks to the dedicated work of volunteers at the University of Texas at Austin, it was very far from my last. These volunteers maintain the massive and growing EWD archive. It's a tremendous and erudite proto-blog, the extraordinary record of an exemplary life, and it's one of my favorite places on the Web. A year after his death, a computer scientist who devoted himself to teaching people how to think is still on the podium, delivering gem after gem of insight.
Born in the Netherlands in 1930, Dijkstra was a witty and thoroughly engaging writer in his nonnative English ("I have learned to be very suspicious of ideas I cannot express well in both Dutch and English," he noted, late in life. "As nice as it is to have the union at one's disposal, it is wise to confine oneself to the intersection.")
Over a 40-year period that began in the early 1960s, Dijkstra wrote prolifically on timely and compelling topics: from his experience of the evolution of universities on both sides of the Atlantic from the post-WWII era to the beginning of the 21st century; to meditations on the science and art of teaching; to incredibly rich and detailed accounts of his own intellectual methods (don't miss EWD 666: "A problem solved in my head," which contains the endearing aperçu: "Goldbach's Conjecture -- I had never thought that I would ever use that!")
Like entries in a modern weblog, many of the informal pieces collected in the EWD archive were never published in any traditional sense. Instead they were copied (and later photocopied), numbered sequentially from EWD 0 (sadly lost to history) to EWD 1317 ("From van IJzeren's correspondence to my aunt & uncle," written a few months before his death in August 2002) and circulated from the greedy hands of one computer scientist to another like Eastern European samizdat or fourth-generation copies of the Lions books.
For years I have been dipping into this priceless archive (or at least its English language subset; is there a great Dutch-English translator out there who would do the world the incalculable favor of translating the rest?) and I have yet to scratch the surface of its treasures. But I continue to follow the trail; the archive is redolent of the spoor of Dijkstra's intellectual evolution, the physical evidence of a great mind thinking aloud. A fine, clear light shines through it all, the light of intelligence unmarred by any particular arrogance or egotism -- the set of personal qualities I tend to think of as integrity.
Dijkstra is at his iconoclastic best on, for example, academic hypocrisy:
"Today's mathematical culture suffers from a style of publication, in which the results and the reasoning justifying them are published quite explicitly but in which all the pondering is rigorously suppressed, as if the need to ponder were a vulgar infirmity about which we don't talk in civilized company."
Or the relationship between programming and mathematics:
"Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians."
Or the truth itself, however unpalatable:
"French science is poisoned by politics."
One particularly apposite piece (EWD 696) is titled "Written in anger." What's illuminating about it is what rouses Dijkstra's ire: those who try to simplify or abstract away the innate difficulty of solving problems. The particular occasion of his anger is a 1978 Ph.D. thesis recommending the use of "easily managed graphic display systems" for designing computer programs. Dijkstra calls the suggestion "the most severe disservice to program design that I can imagine." He explains:
"Most people, including mathematicians, are amateur thinkers in the sense that they have not been taught how to think effectively. They have not been told to throw the crutch away and as a result, have never learned how to run."
The crutch in this context is the use of visual imagery. Dijkstra makes various good arguments against the use of images in thinking about geometry and mathematics and programming (diagrams are invariably overspecific, for example, and in set theory may be actively misleading.) He concludes:
"A major component of learning how to throw the crutch away is the 'unlearning' of the use of pictures. (And 'unlearning' is very difficult, as your past remains your past: the only thing you can do is superimpose a new past on top of the old one, and pray that the more recent past will be dominant.)"
This is a remarkable argument, not least from a European who came of age in the aftermath of 1945. What Dijkstra rejects is oversimplification. What he demands in its place is something like direct confrontation with the problem, as nearly as it can be defined. He's perfectly willing to acknowledge how extremely difficult it is -- both at a professional and at a personal level -- to grapple with the world's complexity so profoundly; and yet he is not prepared to settle for less, either in his students or in himself.