Hacker News new | past | comments | ask | show | jobs | submit login

Then what does Dijkstra criticize?

> 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.




Brace yourself. Dijkstra was complaining about the fact that APLers wanted a computer available in order to write programs! He thought the only sufficient way to develop programs was to first conceive a mathematical proof of the program's correctness, then write the proof and the code together. I think this is part of what he means when he talks about the future of computer science, although it's not clear whether he actually thought this methodology would become common. I probably have more sympathy for this viewpoint than most, but I think it's obvious that it has not held up well.

Like many of Dijsktra's complaints about APL, this one is ironic because APL today is one of the best embodiments of the idea that code should be communicable without a computer. APLers will gladly discuss ideas with each other by writing APL on paper or a blackboard, or even by speaking it out loud. A few people have remarked that this is a unique feature of array languages: other programmers will write things down, but only array programmers use their own language to do so.


From Iversons autobiography https://www.jsoftware.com/papers/autobio.htm

"To our surprise, the two teachers worked at the blackboard in their accustomed manner, except that they used a mixture of APL and conventional notation. Only when they and the class had worked out a program for some matter in the text would they call on some (eager) volunteer to use the terminal. The printed result was then examined; if it did not give the expected result, they returned to the blackboard to refine it."

"... the initial motive for developing APL was to provide a tool for writing and teaching. Although APL has been exploited mostly in commercial programming, I continue to believe that its most important use remains to be exploited: as a simple, precise, executable notation for the teaching of a wide range of subjects."

The antipathy between Dijkstra and Iverson makes no sense to me. Was Dijkstra just misinformed about APL?


Most people are misinformed about APL, but Dijkstra took this to a spectacular level.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: