

Because memory bugs are an absolute bastard to investigate compared to logic bugs, Rust makes the tradeoff of making it harder to express the logic of a program in return for making memory bugs impossible. That Should™ make it easier to write code with no bugs, but can make it harder to write code with no easily-encountered bugs. The kind of bugs it’s really good at preventing are ones that go unnoticed for years or take years to link to their root cause, and those aren’t the kinds of bug everyone encounters every time they run a program.








Sometimes things look simple but have complex knock-on effects, and it takes an expert to notice that there’s anything that might be a problem. At least none times or of ten, there’s no problem and it looks like someone’s wasting their time, but it occasionally saves a much bigger headache later.