4 ms·
There’s really not anything major in 3 that’s not easily available via back ports in 2.7. Or else why do you think people aren’t bothering to pay the price to s
by matt_wulfeck 9y ago
There’s really not anything major in 3 that’s not easily available via back ports in 2.7. Or else why do you think people aren’t bothering to pay the price to switch?
This is also the reason maintainers are bringing out sticks. They realize the carrots just aren’t that tasty.
- takluyver 9y agoFor any non-trivial project, most of the value of Python is the library ecosystem. So most of the 'carrots' are going to be libraries that are only available on Python 3. Like some future version of numpy, or pandas, or Django. It's not a stick. You can keep using the old version if you prefer. There will just be some nice new features for people on Python 3.
- shrimpx 9y agoGetting rid of the GIL is a big change. In py2.7 CPU-heavy threads are useless -- they lock up the process and starve other threads. py2.7 threads are only good for I/O heavy work. You can use multiprocessing in py2.7 but with a lot of caveats if you want to share state and file descriptors. IMO the GIL removal is the one thing "that's not easily available via back ports in 2.7".
- cname 9y agoGIL removal? Are you sure about that?
- dec0dedab0de 9y agoPython 3 still has the GIL
- user5994461 9y agoThe price to switch is too high. A codebase that took years to write will take years to migrate. To make the matter worse, it's impossible to support both python 2 and python 3 at the same time.
- ubernostrum 9y agoI have codebases that took me years to write and took a day or two to port.
- gigatexal 9y agoBack posting anything to 2.7 was a mistake. It shouldn’t have happened because it offered a crutch to stand on instead of spurring ports to 3. 3.x has been around for years now. There was no excuse to have started porting an application that would have taken 3 or four years to do, 3 or four years ago. What did everyone think that 3.x python was a fad and not going anywhere?
- pfranz 9y agoI think it was an all or nothing thing. If they could have packported everything (the whole point of 2.7 was to be a bridge) then everyone would have moved up like they do for every point release. Only backporting the fun stuff left only the not-fun stuff when migrating your code.
- pfranz 9y ago> maintainers are bringing out sticks Library maintainers? Why do they care what Python you use? They're dropping 2.x support because it's a burden to them. I'm still using Python2, but the things I know I'd use that aren't back ported are; well, having to download something to backport functionality (batteries included is a selling point for Python), native namespace packages, nested exceptions, function annotation, and not having to treat unicode differently when dealing with external libraries like Qt or databases. I often backport lru cache, pathlib, and terminal size came up for me last week. The other new things look interesting, but since I'm not using Python3 I can't really evaluate them.
- int_19h 9y agoHow about all the language changes other than Unicode stuff? async/await alone is a pretty big deal.
- matt_wulfeck 9y agoasync/await is available as a backport, so it can be introduced into legacy code bases. Writing new projects in python 3 is great. Backporting old legacy codebases is a pain. It really depends so much on the library, and whose manager wants to dedicate the time to it?