| ▲ | bryanlarsen 4 days ago | |||||||||||||||||||||||||
In other words, in production mode it makes your code faster and less safe; in debug mode it makes your code slower and more safe. That's a valid trade-off to make. But it's unexpected for a language that bills itself as "The Ergonomic, Safe and Familiar Evolution of C". Those pre/post-conditions are written by humans (or an LLM). Occasionally they're going to be wrong, and occasionally they're not going to be caught in testing. It's also unexpected for a feature that naive programmers would expect to make a program more safe. To be clear this sounds like a good feature, it's more about expectations management. A good example of that done well is Rust's unsafe keyword. | ||||||||||||||||||||||||||
| ▲ | MarsIronPI 4 days ago | parent [-] | |||||||||||||||||||||||||
> That's a valid trade-off to make. But it's unexpected for a language that bills itself as "The Ergonomic, Safe and Familiar Evolution of C". No, I think this is a very ergonomic feature. It fits nicely because it allows better compilers to use the constraints to optimize more confidently than equivalently-smart C compilers. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||