upvote
The thing is you can actually write quite good C code (see OpenBSD project). The power of C is that it's pragmatic. It lets you write code with you taking the full responsibility of being a responsible person. To err is human, but we developed a set of practices to handle this (by making sure the gun is unloaded and the safety is on before storing it to avoid putting holes in feet).

I like type checking and other compile time checks, but sometimes they feel very ceremonial. And all of them are inference based, so they still relies on the axiom being right and that the chain of rules is not broken somewhere. And in the end they are annotations, not the runtime algorithm.

reply
> To err is human

Yes, which is precisely why I write in Rust, because the compiler errs less than I do.

reply
It may, but it still requires careful annotations. So you should hope that you have not made an error there and described the wrong structure for the code.
reply