3 ms·
Edsger Dijkstra: "The first moral of the story is that program testing can be used very effectively to show the presence of bugs but never to show their absence
by edejong 8y ago
Edsger Dijkstra: "The first moral of the story is that program testing can be used very effectively to show the presence of bugs but never to show their absence." [1]
"I suggest that the programmer should continue to understand what he is doing, that his growing product remains firmly within his intellectual grip." [1]
[1] E.W. Dijkstra: https://www.cs.utexas.edu/users/EWD/transcriptions/EWD03xx/EWD303.html https://www.cs.utexas.edu/users/EWD/transcriptions/EWD03xx/E...
- nradov 8y agoThe trouble is that advice isn't really actionable. In the real world of commercial software often the only way to satisfy customer requirements is to build a product more complex than the programmer can really understand. Most customers would rather have buggy software (which eventually gets fixed) rather than no software at all.
- edejong 8y agoBut it is actionable. Each and every time you chose a certain technology (FP over OOP, immutable vs. mutable state, static typing vs. dynamic typing, shared vs. specific terminology), we make a choice. These choices together drive our community towards a certain mode of programming. So, your argument is true for individuals, but for the community it is void. Together we should focus on identifying correct, effective, simple and reliable building blocks on which we can build our larger systems. Perhaps you haven't seen "Simple made easy" by Rich Hickey, which illustrates this concept rather well.
- nradov 8y agoThose technology choices all carry trade-offs. Optimizing for correctness doesn't always maximize business value. And in my experience most of the defects which aren't caught by our quality control process wouldn't have been prevented by switching from OOP to FP, or from mutable to immutable state, or anything like that. So I'm not convinced.