Dijkstra will go down in history as one of the great algorithm designers, but this will always be a black mark on his legacy, possibly overshading his contributions. There's a lesson here about not pontificating outside of your field.
Dijkstra will go down in history as one of the great algorithm designers, but this will always be a black mark on his legacy, possibly overshading his contributions. There's a lesson here about not pontificating outside of your field.
Using a language that supported structured programming would get rid of such scaffolding code that hid the logic of the actual program.
Many languages also allowed code to jump out of and into loops, and programmers (ab)used that to cram their code into the small amounts of memory they had at their disposal. The resulting code could be quite hard to understand.
> There's a lesson here about not pontificating outside of your field.
How was that outside of his field, which was about thinking logically about programming?
> How was that outside of his field, which was about thinking logically about programming?
Language design falls under human-machine interfaces, and while basically everyone in that era dabbled in that field, it wasn't really his forte.
I am begging of you, please do a little bit of investigation into the historical context in which Dijkstra wrote that memo.
By and large the ancients couldn't have been all that concerned about optimizations. Take a look at their "Example 6" in which the authors were able to significantly improve an inner loop thru such advanced techniques as "use 0.0 instead of 0 if you want a REAL" and "don't make extra assignments".
The paper that I linked?
> In that case, why not buy a smaller machine?
Because they needed to support an entire department or university worth of users, many of them at the same time.
> It sounds completely fantastical/fabricated to me.
Have you ever done serious work on a time-shared system? The kind where you type `w` and see a bunch of people who aren't you?
Nowadays everybody gets their own workstation and can use as much or as little of it as they see fit, but on a shared system trying to use the whole thing is a great way to get people mad at you, because you're taking away resources they need for their own work.
Not that you'd necessarily be allowed to use all that much in the first place, that's why things like `ulimit` exist.