Earlier quoted context omitted.
One should always use a single kind of half-open range, i.e. with the start closed and the ending open. The whole point here is to use a single kind of range, without exceptions, in order to avoid the errors caused by using the wrong type of range for the context. For backwards iteration the right range is [-1,-1-n), i.e. none of those listed by you. Like for any such range, the number of accessed elements is the dif…
What would you do if your array is so large that it requires an unsigned int64 index?
The Manuscripts of Edsger W. Dijkstra
81–90 of 129 posts
Re: The Manuscripts of Edsger W. Dijkstra
#82The most important one in the context of 2025 is this one: On the foolishness of "natural language programming". https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667...
> when judging the relative merits of programming languages, some still seem to equate "the ease of programming" with the ease of making undetected mistakes. This hits so hard. cough dynamic typing enthusiasts and vibe coders cough
Re: The Manuscripts of Edsger W. Dijkstra
#83I really enjoyed the this one: Some meditations on Advanced Programming https://www.cs.utexas.edu/~EWD/transcriptions/EWD00xx/EWD32.... As I'm currently in a Functional Programming course in Haskell... This resonated. I know that we'll always need to write programs which directly interface with memory. However, when we don't need to do that... Maybe we shouldn't write programs in this style (i.e. imperative). Maybe w…
https://medium.com/@acidflask/this-guys-arrogance-takes-your...
Re: The Manuscripts of Edsger W. Dijkstra
#84Earlier quoted context omitted.
The proofs/programs (Howard/Curry) correspondance has been fairly well established I think.
It's the requirements discovery phase that always breaks every pure mathematical treatment of software development. (And also, like DW points, that software is way more complex. But on this case, it's the requirements discovery.)
Re: The Manuscripts of Edsger W. Dijkstra
#85the only meaningful contribution this guy made was his prose. certainly a talented constructor of sentences, i could never write as precisely as him. but as far as meaningful technical contributions, i struggle to find anything. his path search algorithm, no offence, is self-evident. for all the disdain he appears to have had for (what we now call) the 'move fast and break things' style of engineering/science, they w…
who had a fashion of calling every thing "odd" that was beyond his comprehension, and thus lived amid an absolute legion of "oddities." -- from "The Purloined Letter" by Edgar Allan Poe.
To dismiss you/your comment;
“Mediocrity knows nothing higher than Itself; but Talent instantly recognizes Genius.” -- from "The Valley of Fear" by Arthur Conan Doyle.
To deflate your claim of Dijkstra's Algorithm being "self-evident";
Students Struggle with Concepts in Dijkstra's Algorithm -- https://dl.acm.org/doi/fullHtml/10.1145/3632620.3671096
Edsger Dijkstra contributed to;
1) Algol60 language/compiler
2) THE Operating System
3) Graph Algorithms (shortest-path etc.)
4) Concurrent Algorithms (semaphores, CSP etc.)
5) Distributed Algorithms (dining philosophers etc.)
6) Fault-Tolerant Computing (which he called "Self-Stabilizing Systems")
7) Programming Language Design (GCL etc.)
8) Structured Programming Techniques.
9) Program Correctness Methodologies based on Predicate Calculus to derive Programs (weakest-precondition etc.)
10) Essays giving insights into "How to Think and Reason Systematically" using commonsense and mathematical Tools.Re: The Manuscripts of Edsger W. Dijkstra
#86Earlier quoted context omitted.
> when judging the relative merits of programming languages, some still seem to equate "the ease of programming" with the ease of making undetected mistakes. This hits so hard. cough dynamic typing enthusiasts and vibe coders cough
I’m not sure that is the focus of most serious dynamic language. For me, it’s the polymorphism and code re-use it enables that the popular static languages generally aren’t close to catching up to.
Most examples I can think of would be things like “this method M expects type X” but I can throw in type Y that happens to implement the same properties/fields/methods/whatever that M will use. And this is a really convenient thing for dynamic languages. A static language proponent would call this an obvious bug waiting to happen in production when the version of M gets updated and breaks the unspecified contract Y was trying to implement, though.
Re: The Manuscripts of Edsger W. Dijkstra
#87Earlier quoted context omitted.
If they use letters instead of numbers, note that letter "A" is the first alphabet, not zeroth alphabet.
When I'm counting letters it's more convenient to go "one, two, three." When I'm finding the offset between letters it's more convenient to go "zero, one, two." Neither of these methods is going to displace the other. Definitions are fine, and I agree that "A" is the first letter. But that's no use to people who need to think clearly about the offset between "A" and "C" right now. Should I tell them they're wrong, th…
Book chapters and page numbers are not offsets.
Re: The Manuscripts of Edsger W. Dijkstra
#88Earlier quoted context omitted.
It is not obviously correct. The unstated premise is that programming is - or should be - similar to writing mathematical proofs.
The proofs/programs (Howard/Curry) correspondance has been fairly well established I think.
Re: The Manuscripts of Edsger W. Dijkstra
#89Completely silly fact: knowing 0 about the guy except that he gave his name to the famous algorithm, I had somehow assumed he was Indian. Weird to see a white Dutchman in the picture.
Re: The Manuscripts of Edsger W. Dijkstra
#90The most important one in the context of 2025 is this one: On the foolishness of "natural language programming". https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667...
> when judging the relative merits of programming languages, some still seem to equate "the ease of programming" with the ease of making undetected mistakes. This hits so hard. cough dynamic typing enthusiasts and vibe coders cough