A Letter from Dijkstra on APL(1982)
7 points by dhruvp
7 points by dhruvp
Dijkstra said
I know of a visiting professor at an American University [sic] who, trying to teach APL, bitterly complained about the absence of APL terminals. He was clearly unable to teach it without them. And you, too, write to me that you would like to meet me in your part of the world, so that you can “demonstrate APL” to me. This is in sharp contrast to people who prefer programming languages that can be adadequately [sic] “demonstrated”—i.e. shown, taught and discussed—with pencil and paper.
The fact that the printed or written word is apparently not the proper medium for the propagation of APL may offer a further explanation for its relative isolation; at the same time that fact may be viewed as one of its major shortcomings.
Many people have heard about the MIT Lisp Machine from the 1970's. The powerful CPU implemented Lisp in microcode, and the OS and UI was written in Lisp from the bare metal up. The UI included a special “space cadet” keyboard, a hi res graphics display, window system, and mouse, and a powerful Lisp IDE, at a time when this interface style was found only in research labs, and not generally available.
It may be less appreciated that IBM's first implementation of APL (in 1966) was an "APL machine". APL was the operating system as well as the language. There was a special APL keyboard. The system was time shared with users having shared access to multiple APL workspaces. The UI was an APL REPL, which was the 1960's equivalent of an IDE.
So yes, there was a vast difference between having the experience of using an APL machine, and seeing APL programs written in pencil on paper, which was all that Dijkstra could imagine at the time.
I read up on Dijkstra. His software engineering career spanned the 1950's and 1960's. During this time, he learned that the most productive way to program was with pencil and paper, thinking through all the details and removing the bugs before the code reached the computer. Inputting code into a computer, running and debugging programs with a computer, would have been laborious, time consuming and expensive. He was likely using punch cards and submitting batch jobs to be run later when computer time was available? I gather that most programmers worked this way in that era. By 1982, he was a theoretician with joint appointments at the university and with Burroughs. He spent most of his time in his study at home, doing theoretical computer science with pencil and paper. Tuesday afternoon he went to the university to talk to people.
With this background, it is easier to see why Dijkstra might have had little sympathy for the idea of using an interactive IDE for writing and debugging code.
One interesting quirk of Dijkstra is that he pretty much refused to actually use computers. Pretty much all of his writing is, well, written. Pen and paper, extremely neat handwriting. You could almost call him a luddite!