
Well, don't look for pointers to language design from the couple of jokers portrayed in that pdf.
I find it actually insulting to the good sense the real Dijkstra always showed; and insulting to Haskellers -- what's with all this gratuitous imputing of emotion? What's with just getting Haskell wrong? It's easy to check those claims; it's easy to get the (alleged) 'thought' peer-reviewed from the Haskell community.
Who is insulting and emotional here? I really don't get why you're so upset about this harmless opinionated piece that, in a humorous and obviously exaggerated way, applies some of Dijkstra's ideas about programming language syntax to Haskell ("notational conventions" is just an informal synonym for syntax.) Putting these words into Dijkstra's mouth is just an artist's freedom, and in fact it gave me pause to think about the issues raised. (That was along time ago, BTW). Despite your endless ranting the authors quite obviously do understand EWD1300. Their use of the word "first-class" may drive the rhetoric a bit over the top but that's pretty superficial IMO. The main point is that in a language like Haskell whitespace is overloaded: it can mean application or it can be a mere separator; which it is depends on the context. If Haskell /required/ the use of an explicit built-in infix operator for application then this context-dependency would disappear and white space would become only a separator. It is valid to argue that this would make the language esier to read. This has nothing to do with the fact that in Haskell you onbviously /can/ define infix application operator. (The argument about the type of application is bogus, though, I agree with you on that one.) I also don't see how this has anything to do with Dijkstra promoting Haskell for teaching. In fact, I find it much less insulting to suggest that Dijkstra would have things to criticise about Haskell (he /was/ very much a perfectionist and if I can enumerate several shortcomings in Haskell off the top of my head, then so I guess he could have), than to suggest that this would be a reason for him to oppose using Haskell for teaching! I would venture that Dijkstra was realist enough to prefer something imperfect when it clearly trumps the competition. That said, he did write in one of his EWDs that beginners(!) should be tought programming with a language that does /not/ have an implementation available, in order to enourage thinking denotationally about programs rather than operationally, right from the start. The reason he preferred an imperative language for such a beginner's course (and also for communicating algorithms) is that recursion has a more complicated semantics (in terms of weakest preconditions) than his 'do' loop construct. This is important if, like Dijkstra did, you introduce every language construct by formally stating its denotational semantics, playing down the operational aspect as much as possible. Cheers Ben