5 ms·
I don't really understand all the grumpiness around Python releases. There are lots of programming languages that depend on interpreters or VMs (Java, Erlang /
by aeturnum 6y ago
I don't really understand all the grumpiness around Python releases. There are lots of programming languages that depend on interpreters or VMs (Java, Erlang / Elixir, Go [kinda]). Those languages have versions which are no longer supported and, as far as I know, that's not controversial.
The old versions exist. They are not supported. You can choose to use them if you wish or use the latest. I don't see many complaints about the fact that Java SE 6 (or whatever) isn't getting updates anymore.
I think the Python team fucked up the 2->3 transition, but that was 12 years ago! Do other people have explanations as to why old versions of the Python interpreter are associated with so much emotional investment?
- jeffrallen 6y agoGo 1.15 can compile Go 1.0 programs. That's why I'm grumpy with the Python team but not grumpy with the Go team. There's simply no more to be said about the situation than that.
- mixmastamyk 6y agoGo does a lot less language wise, and is a lot newer. Didn’t have to change 1991 design choices. Unicode was a big shift.
- t-writescode 6y agoIt's also "Go one point ten" and "Go one point fifteen". That's a minor version update. Backwards compatibility is common between minor version updates - in fact, it's part of a major version update that backwards compatibility breaks.
- jeffrallen 6y agoIt is minor because the Go team understands their responsibility not to make major changes. Which they learned in part from watching Python screw it up.
- t-writescode 6y agoPython didn't screw up. They ticked the "major" version number. That's what the 3 in the number is: major.minor.revision: https://semver.org/ https://semver.org/ They ticked the version at the right spot, which means it's (edit: not) backwards compatible.
- jeffrallen 6y agoThey screwed up because it turned out enough of their users didn't want a new major version that it split their community for years.
- samatman 6y agoIt helps that UTF-8 was a 1992 design choice... made by Rob Pike and Ken Thompson!
- Yizahi 6y agoPython 3.8 can run 3.3 code too (same 8 year difference).
- toast0 6y agoI haven't spent a lot of time with Java, but you can generally compile old java source with new compilers as well as run old java bytecode with new runtimes. Old and new code can interact with reasonable limits. You may be limited by the available runtime depending on where you need to run code, of course. The same is true for Erlang/BEAM/OTP. You can even dist connect old and new VMs as long as you're careful not to send things the old VM won't understand (like Maps to a BEAM from before Maps). Erlang does tend to actually remove deprecated things after a few releases, unlike Java though, so it can be difficult to support more than two or three releases. In both Java and Erlang, you can upgrade before your dependencies, at least most of the time, but that doesn't seem to be the case for python 2 -> 3, which means people are stuck on 2 when they want to use 3, until their dependencies update or they take over or abandon them. That's not a quick process which is why people are still upset.
- lenkite 6y agoJava code written in 1996 works today.