[ my public key: https://keybase.io/godelski; my proof: https://keybase.io/godelski/sigs/ITXd1PN0tKNiQYxLgpyMs4xX2HIQy0uyX-09Z4DbV48 ]
What would really help is for people to understand that that's the "spirit of the law" and the "letter of the law".
People don't want the letter of the law enforced, they want the spirit. Using the example from above, speed limits were made for safety. They were set at a time and surprise, cars got safer. So people feel safer driving faster. They're breaking the letter of the law but not the spirit.
I actually like to use law as an example of the limitations of natural languages. Because legalese is an attempt to formalize natural language, yet everyone seems to understand how hard it is to write good rules and how easy it is to find loopholes. But those are only possible if you enforce the letter of the law. Loopholes still exist but are much harder to circumvent with the spirit of the law. But it's also more ambiguous, so not without faults. You have to use some balance.
I think you think that because we don't agree that I have some grave misunderstanding of some, to be frank, basic facts. I assure you, I perfectly understand what you're bringing up here and in the last comment.
But I think you still haven't understood my point about trade-offs. At least you aren't responding as if these exist.
Our disagreement isn't due to lack of understanding the conditions, it is due to a difference in acceptable limitations. After all, perfection doesn't exist.
So you can't just solve problems like this by bringing up limitations in an opposing viewpoint. I assure you, I was already well aware of every single one you've mentioned...
You can have software behave differently while passing the same tests.
Idk man, this is pretty easy to demonstrate. Start with a trivial example: test is that input (2,2) -> 4. Function 1 does multiplication, function 2 does exponentiation. Both functions pass the test.
Sure, simple example but illustrative examples should be simple. But add more complexity and I'll add more examples of functions where the outputs are the same for a given set of inputs. (There's a whole area of mathematics dedicated to this!) It's simple, but you also confidently claimed something that was trivial to disprove.
Your claim is true if and only if your tests have complete coverage. So, your claim is only true if you've done formal verification of your code. Which was what I said in the beginning and is what Dijkstra claimed as well.
This project is an enhanced reader for Ycombinator Hacker News: https://news.ycombinator.com/.
The interface also allow to comment, post and interact with the original HN platform. Credentials are stored locally and are never sent to any server, you can check the source code here: https://github.com/GabrielePicco/hacker-news-rich.
For suggestions and features requests you can write me here: gabrielepicco.github.io