Hacker News new | past | comments | ask | show | jobs | submit login

Same is also starting to apply to Go runtime, standard library and even some minor fixes like the for loop variables lifetime.

All possible places for existing code to break, either via compiler errors, or changes in the expected runtime semantics.




Even in that case they did the behaviour change properly:

> To ensure backwards compatibility with existing code, the new semantics will only apply in packages contained in modules that declare go 1.22 or later in their go.mod files.

CMake and Rust and Android and lots of other systems have mechanisms like this that allow you to introduce opt-in breaking changes, but unsurprisingly Python doesn't. They just decided it was ok to start breaking backwards compatibility.


> Even in that case they did the behaviour change properly:

Not in fact. Go core team has admitted that Go toolchain 1.22.n versions break backward compatibility: https://github.com/golang/go/issues/66092

There is another breakage case: https://github.com/golang/go/issues/66070 and the team leader doesn't plan to fix it.


That doesn't apply to runtime and standard library changes.

Enough of them happened already, that a clarification post was needed,

https://go.dev/blog/compat


That's still among the strongest backwards compatibility guarantees in any major language. Maybe Java would be close? It's certainly better than C++ which is famed for backwards compatibility, and light years ahead of Python.


> That's still among the strongest backwards compatibility guarantees in any major language.

Not at all. See https://go101.org/blog/2024-03-01-for-loop-semantic-changes-... for reasons.


What reasons? You need to pass one flag to the compiler to specify the language version? That's still very very good.

Please tell me what flag I can pass to Python 3.12 so `distutils` still exists.


Reasons are in the article.

I'm not familiar with Python, so I don't understand what is the problem with Python. But I think the problem of Go is unrelated to Python.


Yet it isn't without zero issues, as claimed.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: