3 ms·
Indeed. Dijkstra was frequently wrong, especially when he made grand sweeping statements. GOTO is a good example, 'GOTO considered harmful' is practically bibli
by username42 13y ago
Indeed. Dijkstra was frequently wrong, especially when he made grand sweeping statements.
GOTO is a good example, 'GOTO considered harmful' is practically biblical law amongst many programmers, but it's worth remembering that he made that statement in the context of an argument with Donald Knuth. Knuth won: (http://pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf http://pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pd...)
http://web.archive.org/web/20070927094626/http://pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf http://web.archive.org/web/20070927094626/http://pplab.snu.a...
See also http://kerneltrap.org/node/553/2131 http://kerneltrap.org/node/553/2131 about goto
http://web.archive.org/web/20051128093253/http://kerneltrap.org/node/553/2131 http://web.archive.org/web/20051128093253/http://kerneltrap....
- rdtsc 13y agoHow do you mean "Knuth won"? Can you paraphrase the paper? I couldn't find a one phrase or proof of this "winning". Here is what Dijkstra said: > "The go to statement as it stands is just too primitive; it is too much an invitation to make a mess of one's program. " How does Knuth win that? In any case, I think there is a popular understanding of that phrase. It entered folklore to mean something else and regardless if that something else is different, it does make sense. Excessive GOTOs complicate code and create a spaghetti mess. Today we don't need scientific papers on it. That is how I understand it. The general idea is that there are better construct and better paradigms out there. Not all programming construct are strictly equal in practice. Yes all languages that are Turing complete can do the same kind of things. We know the theory. But it turns out some paradigms are better than others. OO programming, despite it being hated and derided today, was a better idea that writing lots of GOTOs. Functional programming with immutable data-structures does make sense in a distributed and concurrent environment. STMs compose better than locks and mutexes and so on.