It's pretty funny that the article starts with "[an error occurred while processing this directive]" repeated three times. Maybe the language isn't the only cause of mistakes.<p>More seriously, the author makes the pretty decent point that certain classes of errors should be caught automatically. He uses buffer overflows as an example (near the bottom). I agree with his conclusion, but call out a hidden assumption. Does "automatically" include only the compiler? Of course not! We also have static analyzers, automatic test generators, and other kinds of programs that can help with this. We can and should use those, to improve correctness without either cluttering up the language or adding performance-robbing artifacts in the executable code. While it's true that C and C++ make it harder than it should be to write and use such tools, the languages and the tools need only a small nudge to improve that situation dramatically. They don't need to change their essential natures.<p>This "unbundling" of other language-related functionality from the compiler toolchain is an important possibility that should not be overlooked. "Do one thing and do it well" and let the user decide which things to do in which order. There are plenty of other good reasons to develop or prefer other higher-level languages. The kinds of problems the author cites are almost irrelevant.