3 ms·
I'd agree if the Python core devs were still interested in evolving Python 2.x. But they aren't, so now no one else gets to do Python 2.8, either. It would be t
by hsivonen 7y ago
I'd agree if the Python core devs were still interested in evolving Python 2.x. But they aren't, so now no one else gets to do Python 2.8, either. It would be the best if the PSF provided a venue for Python 2.x development even if the folks who went on to do Python 3 weren't the people working on it.
Anyway, the core problem is a top-down effort to try to make a programming language of Python 2.x’s level of usage stop to the extent it’s stoppable under its license, because its creators wanted to do something else, as opposed to facilitating its user community to pool resources to continue its development. Does the PSF have a legal obligation to do such facilitation? No. Is the lack of such facilitation bad for parties who bought into Python when it was Python 2? Yes.
- joshuamorton 7y ago> core devs were still interested in evolving Python 2.x. They absolutely are. In fact, python 3.9 is in the works right now, which has many new evolutions beyond 2.7. You're arguing that the psf should treat python2 and 3 as different languages. In their (any my) opinion, this is harmful. It bifurcates python into two incompatible languages. That's bad long term (Perl). In other words, what's best for python the language, and what's best for python2 the language are not the same. And for the psf, python is more important.
- hsivonen 7y ago> They absolutely are. In fact, python 3.9 is in the works right now, which has many new evolutions beyond 2.7. I meant compatible (in the sense that old programs keep running and you can add new stuff to old programs using the new features) evolutions. > You're arguing that the psf should treat python2 and 3 as different languages. For practical purposes, they are different languages and the PSF has been treating them as distinct things. > In their (any my) opinion, this is harmful. It bifurcates python into two incompatible languages. That's bad long term (Perl). It indeed is bad. I hope that every other programming language community and designer takes a close look at what happened and makes sure never to do a Python 3 analog of their language. > In other words, what's best for python the language, and what's best for python2 the language are not the same. And for the psf, python is more important. That's the core problem from the perspective of Python 2 users. The organization that was the steward of the language that they invested in (in the form of writing code in the language) decided not only that a different programming language is more important for the org but that the old language needed to be shut down in order to benefit their new thing. It's OK for people to get bored with a project and move onto something else, but with the level of usage that Python 2 had and has, it's very problematic for the language steward organization to turn around and seek to shut the language down instead of continuing to evolve it in a way that's respectful of the language users' investment in the language.
- joshuamorton 7y ago> a way that's respectful You had like 10 years of warning and it's "disrespectful"? I don't think there's a chance of productivity if you're starting from that baseline level of entitlement. Sure, mandates are annoying. But I just can't fathom that.
- hsivonen 7y agoIt's not about how many years of warning there was. It's about making users of the language to rewrite by mandate as opposed to the new features being incrementally adoptable into existing code bases. Sure, that means there are some language changes you never get to make. Java, JavaScript, C, and C++, for example don't break investment in old code like Python 3 did. They form a reasonable baseline.
- joshuamorton 7y agoAnd we have kotlin, typescript, and rust due to those languages unwillingness to make breaking changes. The cpp committees unwillingness to remove old garbage from the language is iirc the most cited issue with the language by longtime users. There are tradeoffs.
- hsivonen 7y agoYou can add Kotlin to you app without rewriting all Java. You can add TypeScript to your app without rewriting all JavaScript. You can add Rust to your app with with rewriting all C++. Seems reasonable. That Python 2 and 3 can't co-exist in an app is pretty bad in comparison.
- joshuamorton 7y ago> That Python 2 and 3 can't co-exist in an app is pretty bad in comparison. You're mistaken. I have python3 binaries and python2 binaries that share dependencies. You're correct that fully automatic transpilation is impossible, but that doesn't mean that there can't be shared source. It does however mean that things like per-file flags or whatnot aren't possible. Python became a better language with text vs. bytes support, but that support couldn't be done in a backwards compatible way. Oh well. > You can add Rust to your app with with rewriting all C++. It's not as good as you seem to think. It's a nonstarter for a lot of people otherwise interested in adopting rust into existing codebases. Certainly not better than the py2/3 situation. Kotlin interop also is troublesome, although granted better than rust/cpp or py2/3. > That Python 2 and 3 can't co-exist in an app is pretty bad in comparison. That python didn't get replaced by a different language is an incredible testament to the foresight of the python language stewards.
- gjulianm 7y ago> as opposed to facilitating its user community to pool resources to continue its development How does reusing the name facilitate the development? Every time there is a fork of an open-source project the name changes, precisely to avoid confusions. Reusing the Python name in a fork that is not just a redistribution, but a new version with new features and syntax, is just confusing, unusual and does not help anyone.