3 ms·
While i am not one to condone Hagiography, your comment is pure Hubris. If you think solving problems by constant trial-and-error is the norm and Dijkstra's id
by rramadass 4y ago
While i am not one to condone Hagiography, your comment is pure Hubris.
If you think solving problems by constant trial-and-error is the norm and Dijkstra's idealized mathematically disciplined systematic approach methods can well be ignored, then i fear you have not understood the difference between Science, Engineering and Craftsmanship/Tradesmanship (without formal training).
>I'm not entirely sure when the last time was that Dijkstra actually typed a line of code into a computer ... coming from a non-practitioner.
This is laughable. By this logic every code monkey today (including myself) is better than Dijkstra because we simply have written a larger volume of code and that too in many different languages!
One needs to practice Humility when approaching the Words/Works of Masters and try to understand them instead of being dismissive. I keep the following quote by Arthur Conan Doyle from the novel The Valley of Fear in mind when studying the Greats;
Mediocrity knows nothing higher than itself, but Talent instantly recognizes Genius.
You might find the following two papers relevant :
1) This paper gives a retrospective on a earlier seminal paper by the author himself (what he got wrong and what he got right) : Retrospective: An Axiomatic Basis For Computer Programming by C.A.R. Hoare - https://cacm.acm.org/magazines/2009/10/42360-retrospective-an-axiomatic-basis-for-computer-programming/fulltext?mobile=false https://cacm.acm.org/magazines/2009/10/42360-retrospective-a...
2) A Rational Design Process: How and Why to Fake it by D. L. Parnas (pdf) - https://users.ece.utexas.edu/~perry/education/SE-Intro/fakeit.pdf https://users.ece.utexas.edu/~perry/education/SE-Intro/fakei...
- User23 4y ago> Dijkstra's idealized mathematically disciplined systematic approach This is what impresses me the most about Dijkstra's accomplishments. It's not that he was extremely smart, although he was. Or that he discovered many fundamentally important algorithms, although he did. It's that he chose to develop and share how he did what he did. It's that you can read through one of his papers and it makes you feel like you could have applied his methods and made the same discovery. Of course that's not necessarily true, but that it's even sometimes true is remarkable. And speaking of his papers, the EWD archive the submission is from is an absolute treasure-trove. While I'd recommend one of his books for someone interested in learning the methods he and his colleagues used, the more technical EWDs are very interesting. I personally enjoy the more polemical ones too, but I understand why many people are put off by them. Whenever someone gets around to writing the comprehensive multi-volume history of the development of Comput(er|ing) Science they will be an invaluable resource. Here's just one that I find notable[1]. [1] https://www.cs.utexas.edu/users/EWD/ewd06xx/EWD600.PDF https://www.cs.utexas.edu/users/EWD/ewd06xx/EWD600.PDF
- rramadass 4y ago>It's that he chose to develop and share how he did what he did. It's that you can read through one of his papers and it makes you feel like you could have applied his methods and made the same discovery. Of course that's not necessarily true, but that it's even sometimes true is remarkable. Exactly Right! This is the reason i worship at the "Altar of Dijkstra :-)" because he shows by example how to apply mathematical logic to develop a step-by-step solution to seemingly complicated problems. I am more interested in understanding the methodology of thinking involved in the problem-solving process (the essence of his genius which cannot be taught directly but can only be demonstrated via examples) than the details of the actual examples themselves. To borrow Dr. Watson's words about Sherlock Holmes (from the story "The Red-Headed League"); I trust that I am not more dense than my neighbors, but I was always oppressed with a sense of my own stupidity in my dealings with [Edsger Dijkstra]. Here I had heard what he had heard, I had seen what he had seen, and yet from his words it was evident that he saw clearly not only what had happened but what was about to happen, while to me the whole business was still confused and grotesque.
- microtherion 4y ago> If you think solving problems by constant trial-and-error is the norm News flash: It is. > Dijkstra's idealized mathematically disciplined systematic approach methods can well be ignored I never said that. I think they have their place, and I use them myself in some situations. It's Dijkstra and his acolytes who think iterative approaches can be ignored. > One needs to practice Humility when approaching the Words/Works of Masters and try to understand them instead of being dismissive. I've read a lot of Dijkstra's writings. They are not without merit. But he himself could have done with practicing some humility when engaging with computing as it is actually practiced in the physical world, as opposed to in his mathematical models. Knuth is not any less theoretically sound than Dijkstra. But he engaged with practical computing issues and wrote software that is still in wide use. Wirth is not any less disdainful of commercial computing hype than Dijkstra. But he built actual hardware and software systems. Those are the masters I look up to.
- rramadass 4y agoI don't think you have understood the nature of Dijkstra's work nor the genius behind it. It is different from the genius of Niklaus Wirth (simplicity of OS, Programming Language implementations) or Donald Knuth (efficiency of Algorithm implementations) in that it is at a more "meta level" bringing together the fields of Computation, Languages and Mathematics. I have already pointed out the laughable ridiculousness of your measuring Dijkstra's contributions by the amount of code written. He pioneered, defined and established great many aspects of the Computing Science field when it was still in its infancy. Here is a non-exhaustive list (from https://en.wikipedia.org/wiki/Edsger_W._Dijkstra https://en.wikipedia.org/wiki/Edsger_W._Dijkstra and other sources) 1) He designed/described an ISA/Assembly Language to interface with one of the first Computers ever built (his PhD thesis named "Communication with an Automatic Computer"). 2) He designed/wrote/headed one of the first OS ever written "THE multiprogramming system" - https://en.wikipedia.org/wiki/THE_multiprogramming_system https://en.wikipedia.org/wiki/THE_multiprogramming_system 3) He designed/co-wrote one of the very first Algol 60 compilers named the "Dijkstra-Zonneveld Algol 60 compiler" - https://en.wikipedia.org/wiki/ALGOL_60 https://en.wikipedia.org/wiki/ALGOL_60 4) Instrumental in establishing "Structured Programming" constructs in language design itself which we all take for granted today. 5) Instrumental in establishing Mathematical Rigour to Computer Programming via Mathematical Logic/Predicate Calculus akin to the writing of Mathematical Proofs to show "Correctness by Design and Construction". The importance of this cannot be overstated. 6) Instrumental in establishing aspects of Concurrent Programming (eg. CSP), Synchronization (eg. Mutex, Semaphores) etc. 7) Instrumental in devising several non-trivial algorithms for both "normal" vs. Concurrent programs eg. Shortest-Path, Dining Philosophers etc. As you should now be able to appreciate, Dijkstra did write a lot many "Programs" (in addition to other writings) all of which were path-breaking which few can claim about their own life's work. PS: https://inference-review.com/article/the-man-who-carried-computer-science-on-his-shoulders https://inference-review.com/article/the-man-who-carried-com...