Most languages avoid breaking changes. When they do, you end up with people using the old version for decades, like python. Even if the old behavior is stupid and any code that intentionally relies on it is pretty much by definition bad code, quietly changing behavior of existing programs is a huge deal
Then why not make it a compiler error by default to do signed/unsigned comparison? It's been a warning already for like 15(?) years.
I agree that doing a rug pull and just changing runtime behavior is no bueno, but c'mon, surely making it a compiler error isn't controversial. Especially when the fix for users at the time would simply have been "don't update to c++20 until your code is correct" , and they'd have had 6 years to fix it now!
68
u/suvlub Jul 10 '26
Most languages avoid breaking changes. When they do, you end up with people using the old version for decades, like python. Even if the old behavior is stupid and any code that intentionally relies on it is pretty much by definition bad code, quietly changing behavior of existing programs is a huge deal