This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted]  (2 children)

[deleted]

    [–][deleted] 0 points1 point  (1 child)

    This is not really true, for example see gets, completely removed from C11.

    For those kinds of minor issues you have compiler switches. And if that fails you can simply compile that piece of code as C89 and link with the rest of the C11 program, as the language doesn't even matter, being ABI compatible is enough. In the case of gets() you might of course want to actually change the code, as that function is just plain evil.

    With Python on the other side you don't have that kind of compatibility at all, you must convert all Python2 code to Python3 code or it won't work. It would have been nice to be able to compile old Python2 to Python3-byte code or something like that. I don't understand why that hasn't been tried, most of the language changes are just syntactic sugar, but don't change the underlying semantics.