If I make a mistake in Python, C#, Java, Swift, Go, Ruby, Javascript, Haskell, D, Rust, et al I don&#x27;t leak arbitrary contents of memory, smash the stack, overrun a buffer, or otherwise provide huge gaping security holes that allow arbitrary code injection.<i></i><p>C is riddled with opportunities to do _just that_ with even the slightest mistake.<p>Yes, I can make a logic error in any of the above languages that performs some operation a user shouldn&#x27;t actually be allowed to perform. But I can&#x27;t accidentally let the user read or write arbitrary memory locations.<p><i></i> With the exception of unsafe blocks or similar mechanisms; being limited to these explicit scopes, most programmer&#x27;s natural laziness leads to avoiding unsafe behavior whenever possible. It also greatly limits the scope of potential bugs, as well as testing and code review required.