4 ms·
Having worked in python for about a decade, first in python2 and lately in python3, and having seen projects convert, I find this article baffling. I found Six
by rossdavidh 7y ago
Having worked in python for about a decade, first in python2 and lately in python3, and having seen projects convert, I find this article baffling. I found Six to work pretty well, and where it didn't it wasn't hard to change.
I think the core error here was in NOT doing what he calls a "flag day" conversion. Sometimes it is easier to do something quickly, than to live with it happening slowly. I've done "flag day" conversions, and they were pretty painless, if stressful at the time.
- klodolph 7y agoI think Six works pretty well for a certain percentage of projects, and then completely blows up for others. Same thing applies to using Mypy. Some modules are easy to add annotations for, other modules have insanely complicated types.
- the_mitsuhiko 7y ago> Having worked in python for about a decade, first in python2 and lately in python3, and having seen projects convert, I find this article baffling. I found Six to work pretty well, and where it didn't it wasn't hard to change. It matters a lot where you work. If you are in high level land Python 3 is not much of a chance. If you work at the boundary (wire protocols, OS interop, text transformation) then Python 3 is a significant step back, especially before 3.6. A lot of the mud that Mercurial stepped through is also where I went through with my libraries. The day I managed to get the PEP through that reintroduced the u prefix on strings was also the last time I voluntarily participated in a language summit. The atmosphere was awful and not evidence based.
- Jasper_ 7y agoYeah, I was around for the sidelines of PEP-461, reintroducing % onto the bytes type, trying to get things done behind the scenes, and it was just a miserable experience all around. I don't think anybody cared to understand our concerns about why we should bother making the bytes type useful. At times it seemed like they believed leaving in the concatenation on the bytes type was a mistake. Read through the receipts here: https://bugs.python.org/issue3982 https://bugs.python.org/issue3982
- the_mitsuhiko 7y agoA lot of present day Python 3 programmers also have not been part of the very emotional conversations about getting some of these things back in the early days of Python 3.
- CJefferson 7y agoMercurial still can't have a "flag day" as Macs are still distributed with Python 2, and not 3. Therefore it would make Mercurial significantly worse for mac users if it didn't support Python 2.
- McP 7y agoLast time I used Mercurial (it's been a while) it shipped with its own python executable
- pseudalopex 7y agoYou can install it with pip.
- krupan 7y agoI love mercurial to death, but let's be honest, how many Mac/mercurial users are there? Very few, I would guess. Now, how many of those users don't install a version of python not included with the OS? I'd guess we are getting pretty darn close to zero there.
- eesmith 7y ago"how many Mac/mercurial users are there?" - Hi! I'm one! "how many of those users don't install a version of python not included with the OS". FWIW: % which hg /usr/local/bin/hg % ls -l /usr/local/bin/hg lrwxr-xr-x 1 eesmith admin 30 May 23 2019 /usr/local/bin/hg -> ../Cellar/mercurial/5.0/bin/hg
- CJefferson 7y agoI work with 2 such people (academics, prefer mercurial, use R rather than Python so I can't imagine would have had any reason to install Python 3). Lots of people use version control without being "developers", so not needing a more up to date Python (or, at just happy with Python 2).