C compilers: we gave you a 30 year grace period to fix your invalid code, and now finally it's erroring out.
Python: version N says "use method foo", version N+0.01 says "no, foo is gone, now it's called fooo because that's a more correct spelling".
Like seriously, if you're making a programming language for wide mainstream general purpose use, any program written *correctly, to the spec* in year Y should still run unmodified in year Y+25. If you can't guarantee that, your language is a joke.
@dalias C and C++ solve this by littering the spec with so many landmines that no one can write a “correct to the spec” program. Newer languages solve it by simply not having a spec.
Fortran and COBOL remain undefeated as the only widely-used serious languages.
@steve This is kinda true but an exaggeration. C is a fairly simple language without too many footguns, and if you're not trying to show off living on the edge of the rules, they're not hard to avoid.
C code which hits them is mostly written by smartasses trying to do "portable asm", premature optimization, etc.
@dalias yes, I’m exaggerating, it is _possible_ to write conforming C programs. But still we live in a world where only a very small fraction of the C code written actually is strictly conforming.
@steve It's still worth something that the degree to which you might have to fix stuff is proportional to how nonconforming your code accidentally was. As opposed to being at random whim of someone who thought changing the name of something would make the language prettier.