3 ms·
Why didn't Dijkstra like this?! I get that APL is an acquired taste but these programs are beautiful. It pains me to read of such a visionary being so close-min
by sterlind 7y ago
Why didn't Dijkstra like this?! I get that APL is an acquired taste but these programs are beautiful. It pains me to read of such a visionary being so close-minded to a radical and succinct way of expressing algorithms.
- yiyus 7y agohttps://www.jsoftware.com/papers/Dijkstra_Letter.htm https://www.jsoftware.com/papers/Dijkstra_Letter.htm
- qznc 7y agoJ can be considered APL 2.0 and it fixes Dijkstras complaint since it is ASCII only.
- mlochbaum 7y agoThe character set is not Dijkstra's complaint. His preferred language, ALGOL 60, also uses characters like × ÷ ≤ ¬ ⊃. ASCII wasn't really the definitive standard it is now when Dijkstra wrote that APL was a "mistake" in 1975.
- qznc 7y agoThen 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.
- mlochbaum 7y agoBrace 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.
- qznc 7y agoFrom Iversons autobiography https://www.jsoftware.com/papers/autobio.htm 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?
- kick 7y agoMost people are misinformed about APL, but Dijkstra took this to a spectacular level.
- jejones3141 7y agoSee also the portion of "The Humble Programmer" starting with "The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague. In the case of a well-known conversational programming language..."
- mlochbaum 7y agohttps://aplwiki.com/wiki/Edsger_W._Dijkstra https://aplwiki.com/wiki/Edsger_W._Dijkstra Dijkstra seemed to think that it's a mistake to define operations directly on arrays, as opposed to on individual elements of arrays. Of course, this would also rule out nearly every modern language, since map/reduce/list comprehensions all fall into this category. Then again, Dijkstra hated almost every language out there. At least he's consistent.