3 ms·
> That's not really a problem because the Python maintainers conveniently provided a package to do trivial 2-to-3 migrations. That's not the point. For exampl
by skohan 5y ago
> That's not really a problem because the Python maintainers conveniently provided a package to do trivial 2-to-3 migrations.
That's not the point. For example, when ubuntu dropped python 2.x as the default, some of my workflows got broken because of scripts which I didn't write and didn't even know about. There's plenty of old code which people still depend on. System upgrades should not break your projects, or require you to go in and do surgery on scripts you didn't write.
> There were explicit backporting libraries created to manage the transition. Django depended on these for many years to succesfully support both Python 2 and Python 3 packages.
That's a workaround. A solution would have allowed python 2 & 3 to coexist with no additional effort.
> If you're executing a script, Python supports shebang notation to determine your executable.
Again, you're depending on the people who wrote the python code you depend on to handle this in the correct way. It's not something which is built into the ecosystem.
I'm sorry, but all your arguments seem to boil down to the fact that there are ways to make python usable despite the extreme fragility of the toolset.
- Daishiman 5y ago> There's plenty of old code which people still depend on. System upgrades should not break your projects, or require you to go in and do surgery on scripts you didn't write. On Linux land projects that depend on system libraries and `*-dev` packages break constantly across major versions. > That's a workaround. A solution would have allowed python 2 & 3 to coexist with no additional effort. You can do that if you make your python interpreter version explicit in your shebang. > I'm sorry, but all your arguments seem to boil down to the fact that there are ways to make python usable despite the extreme fragility of the toolset. A toolset that gave you a decade to upgrade with ample warnings is the opposite of fragile.
- dragonwriter 5y ago> For example, when ubuntu dropped python 2.x as the default, some of my workflows got broken because of scripts which I didn't write and didn't even know about. The only solution to that is neve breaking backward compatibility because either someone might prematurely upgrade (not what happened woth Ubuntu) or someone might not maintain software (what seems to have happened with the third party tools in question, whether it was the original maintainer or some packager or...) and might also not vendor dependencies, on the assumption that external environments will never change. > A solution would have allowed python 2 & 3 to coexist with no additional effort. PEP394 allows that, if you depend on a particular python major version use “python2” and “python3” to refer to it: both side by aide installation and continuity of operation over the time “python” switches from 2 to 3 is provided. While some linux distros broke the recommendation on when to switch “python” targets, that would be transparent to anyone following the recommendation.