5 ms·
I see the sort of perspective pervasively, but I don’t really understand it. I would guess that most people wouldn’t consider expunging c89 from gcc to be prog
by cellularmitosis 4y ago
I see the sort of perspective pervasively, but I don’t really understand it. I would guess that most people wouldn’t consider expunging c89 from gcc to be progress, yet this is almost universally the attitude towards python2. What am I missing?
- dataflow 4y agoDepends whom you ask, I think. Some would see expunging C in its entirety as a massive progress, and some would say the same for C++, etc.
- dharmab 4y agopython2 code was not necessarily forwards compatible with python3. 3 was explicitly attempting to correct some regrettable choices in python2 and wasn't syntax compatible as a result. The effort for implementation and package maintainers to support both versions was considerable, resulting in some notable packages only supporting one or the other. In the words of the Python maintainers: We needed to sunset Python 2 so we can help Python users by improving Python faster. We released Python 2.0 in 2000. We realized a few years later that we needed to make big changes to improve Python. So in 2006, we started Python 3.0. Many people did not upgrade, and we did not want to hurt them. So, for many years, we have kept improving and publishing both Python 2 and Python 3. But this makes it hard to improve Python. There are improvements Python 2 can't handle. And we have less time to work on making Python 3 better and faster. And if many people keep using Python 2, then that makes it hard for the volunteers who use Python to make software. They can't use the good new things in Python 3 to improve the tools they make. https://www.python.org/doc/sunset-python-2/ https://www.python.org/doc/sunset-python-2/
- cellularmitosis 4y agoThanks for taking the time to explain that.
- jacquesm 4y agoAnd to add to that: the innumerable ways in which two python installations on the same machine can step on each others toes.
- erik_seaberg 4y agoSurvivorship bias. Teams whose projects were seriously derailed are more likely to have stopped using and relying on Python.
- jacquesm 4y agoThat is a very good point. I know of several such.
- t43562 4y agoToo bad for them. The rest of us get improvements. I'm way tired of being forced to use old C++ compilers because "upgrading is non revenue generating work". If you think rewriting your code in some other language is easier than upgrading to Python 3 then good luck to you.
- Attrecomet 4y agoAnd modern C++ is still being held back for deathly fear of breaking ABI despite clear improvements it makes impossible. People here seem to underestimate the cost of keeping backwards compatibility forever -- either you change very, very slowly (C) or your change is a clusterfuck of disparate requirements that keep blocking each other (C++). Of course, "We want this code to run forever the way it is" is a value option that a company can choose - just not with any language it wants. And somehow, people seem a bit reluctant to switch from Python to C to be able to keep running the same programs forever, guaranteed.
- codebje 4y agoYou don't need to expunge c89 from gcc for progress to have happened - we've got c99 and c11 and whatever c17 is or isn't already there. Effectively, however, python2 and python3 are different languages. Since they're interpreted, there's now a problem with '#!/usr/bin/env python' in your script: which python version is being invoked? Which language version are modules targeting? It's a mess. But the poster child for screwing up a language version upgrade is still Perl.