"Considered harmful" in the context of programming is idiomatic to Dijkstra.
The source context was product safety pamphlets, which Dijkstra applied ironically to a matter of programming pedagogy to raise awareness about the need for production principles software development
Dijkstra was commenting at the time the PC revolution made BASIC a popular teaching language, with its control structures being simple wrappers for assembly code: IF, LOOP and GOTO with the freedom to jump anywhere in code including code for a subroutine reached without making a call.
(In the BASIC era, personal computer software was routinely distributed in print and installed by typing it in to RAM. A cassette tape recorder afforded the novelty of saving a typed program, and was celebrated as amazing affordable progress over TeleType paper tape.)
At the same time, there was a generational reckoning of confusion and disdain for maintenance of zillions of lines of industrial spaghetti written during the 60s mainframe bubble.
Dijkstra's reputation as an intellectual and a teacher caused his idiom to became emblematic of a pompous pedagogical righteousness as seen from the Randian wild west of silicon valley, and "considered harmful" subsequently parroted to the point of aristocratic classist irony by the feudal lords of the early web.
Yet with another generational crossing, the context of the class irony was forgotten and the idiom became a simulacra (lore), and is now manifesting a backlash against such lore by AI wizards, perverting the original irony of comparing programming to medicine, and relegating Dijkstra's warning about the hazards of sorcery in programming to the dustbins of silicon-alchemical history.
In December 2002, I had studied programming for one semester. I was experienced enough to have read and mostly understood Dijkstra's original essay (and probably had), but not to fully grasp its import. That's all to say, there's probably a lot of context I don't have regarding what this essay was reacting to. So I'm going to respond to this essay from 2026, ignoring whatever may have prompted it. Its basic thesis is that "considered harmful" essays are needlessly inflammatory and we should instead engage in more balanced critiques. My response is:
1) of course balanced critiques are necessary, but
2) sometimes you can come to a conclusion after considering all the pros and cons, and in those cases, you should definitely say so and not equivocate.
IMO that's obviously what Dijkstra did. I don't think he just had some axe to grind against `goto` for his own personal reasons. During my career I've encountered my own share of practices that I think are overused and misunderstood, and I don't need to say what they are (and thus hopefully I'll avoid a flame war), but if you've been at it for more than a few years, then I'm guessing you have some similar opinions.
I actually have nothing against "considered harmful" essays as a whole, and I often learn something from them. That said, of course you shouldn't overstate your position, which would be intellectually dishonest. For most of the problematic practices I've encountered during my career, there are some valid use cases, and it's more that they're misunderstood and misapplied that would warrant calling them out.
"Considered harmful" in the context of programming is idiomatic to Dijkstra.
The source context was product safety pamphlets, which Dijkstra applied ironically to a matter of programming pedagogy to raise awareness about the need for production principles software development
Dijkstra was commenting at the time the PC revolution made BASIC a popular teaching language, with its control structures being simple wrappers for assembly code: IF, LOOP and GOTO with the freedom to jump anywhere in code including code for a subroutine reached without making a call.
(In the BASIC era, personal computer software was routinely distributed in print and installed by typing it in to RAM. A cassette tape recorder afforded the novelty of saving a typed program, and was celebrated as amazing affordable progress over TeleType paper tape.)
At the same time, there was a generational reckoning of confusion and disdain for maintenance of zillions of lines of industrial spaghetti written during the 60s mainframe bubble.
Dijkstra's reputation as an intellectual and a teacher caused his idiom to became emblematic of a pompous pedagogical righteousness as seen from the Randian wild west of silicon valley, and "considered harmful" subsequently parroted to the point of aristocratic classist irony by the feudal lords of the early web.
Yet with another generational crossing, the context of the class irony was forgotten and the idiom became a simulacra (lore), and is now manifesting a backlash against such lore by AI wizards, perverting the original irony of comparing programming to medicine, and relegating Dijkstra's warning about the hazards of sorcery in programming to the dustbins of silicon-alchemical history.
...Until...
In December 2002, I had studied programming for one semester. I was experienced enough to have read and mostly understood Dijkstra's original essay (and probably had), but not to fully grasp its import. That's all to say, there's probably a lot of context I don't have regarding what this essay was reacting to. So I'm going to respond to this essay from 2026, ignoring whatever may have prompted it. Its basic thesis is that "considered harmful" essays are needlessly inflammatory and we should instead engage in more balanced critiques. My response is:
1) of course balanced critiques are necessary, but
2) sometimes you can come to a conclusion after considering all the pros and cons, and in those cases, you should definitely say so and not equivocate.
IMO that's obviously what Dijkstra did. I don't think he just had some axe to grind against `goto` for his own personal reasons. During my career I've encountered my own share of practices that I think are overused and misunderstood, and I don't need to say what they are (and thus hopefully I'll avoid a flame war), but if you've been at it for more than a few years, then I'm guessing you have some similar opinions.
I actually have nothing against "considered harmful" essays as a whole, and I often learn something from them. That said, of course you shouldn't overstate your position, which would be intellectually dishonest. For most of the problematic practices I've encountered during my career, there are some valid use cases, and it's more that they're misunderstood and misapplied that would warrant calling them out.
Anyway, I hope I've made my point.