It’s sort of like blaming bad music on “bad note-playing.” After all, if the band had just played better notes, the music would have been good.
One reason blaming bad music on bad note-playing sounds weird is that we expect such blames / diagnoses to convey information about the process of fixing the problem.
When it takes an hour of sitting at the computer and doing “normal programming” to fix a program that wasn’t doing what you wanted, we call it a programming problem.
When getting the program to do what you want takes talking to the stakeholders, we call it a specification problem.
When it takes doing original research on speed and output quality, and maybe standing at a whiteboard doing math, we call it an algorithm problem.
Etc.
People doing research on algorithms would probably be similarly perplexed by the question “is a slow algorithm just bad programming?”
It’s sort of like blaming bad music on “bad note-playing.” After all, if the band had just played better notes, the music would have been good.
One reason blaming bad music on bad note-playing sounds weird is that we expect such blames / diagnoses to convey information about the process of fixing the problem.
When it takes an hour of sitting at the computer and doing “normal programming” to fix a program that wasn’t doing what you wanted, we call it a programming problem.
When getting the program to do what you want takes talking to the stakeholders, we call it a specification problem.
When it takes doing original research on speed and output quality, and maybe standing at a whiteboard doing math, we call it an algorithm problem.
Etc.
People doing research on algorithms would probably be similarly perplexed by the question “is a slow algorithm just bad programming?”