Logic bugs are another class of bugs. Formal methods can help you with those though.
Logic bugs are another class of bugs. Formal methods can help you with those though.
> It may not do precisely what you want but it will run and not crash.
To me, that's a bad thing. I'd rather my software fail entirely than give incorrect results.
So what did I read wrong?
Erlang is my go-to language when I have the freedom to choose, and it is explicitly designed to crash when there's a mismatch between the expected and current state.
So, I was indeed missing the point of the statement.
It's not saying that it will provide wrong results in cases where it would crash otherwise due to memory errors.
Crashing is a useful tool when using the right language.
Unless you use a plethora of tooling that patches over these shortcomings, wrong C code doesn't crash reliably (and even then it's not finding everything, only most bugs).
Memory errors and threading bugs are never ever something you want.