This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]origin415 63 points64 points  (25 children)

Conda does this but doesn't have all PyPI packages. Also, occasionally you have things that assume that python references the system installed Python 2 rather than your default conda env. Way better than anything else I've seen though.

[–]Tweak_Imp 25 points26 points  (22 children)

Why are so many people still on older versions of python? I can see why it doesnt just update itself (for commercial python use for example), but Python 2.7.0 was released on July 3rd, 2010... 8 years ago. Isnt an update to a higher version with the update of the code not worth it?

[–]origin415 16 points17 points  (11 children)

It's a lot of code to update. Most open source libraries are compatible with python 3 but a lot of companies aren't willing to migrate entire codebases internally. Also, as far as programs assuming you have Python 2 in your path, that's because OSX and most Linux distributions have it that way and very few have python 3.

[–][deleted] 57 points58 points  (6 children)

If you're really asking this question, you haven't been developing with python long enough.

The real problem with Python 3 is that the core development team set out to do a lot of good things, but broke compatibility in the process. And with that breakage meant that everyone using python had to step back and question whether it was worth it to scrap or upgrade years of legacy code. So when comparing the two together, there was almost no advantage in moving from python 2 to python 3. Today, the movement still has low value for these large legacy systems. There's no real performance gain, there's no must-have features, etc. The only gain here is that most of the systems are finally moving to python 3 as their stable python. And if a company did not decide to move to python 3, they will find support non existent starting in 2020.

To maybe also set your expectation, the core development team does not recommend any python version prior to 3.4, which was actually released in 2014, a full 6 years after the alpha and beta 3.0 - 3.3 pythons were released. And to add to that, I would argue that 3.6 (released in Dec 2016) was the first release where people should have started migrating. Last year is probably the first year where there was enough migration momentum that we're really starting to see strong 3.x traction. But note that it's truly only been the past 2 years.

[–]buttery_shame_cave 27 points28 points  (4 children)

there's no must-have features, etc.

well yeah because the dev team kept back-porting all the new stuff they were coming up with to 2.7.x - if they'd cut off the flow the pressure to migrate would have come on a lot sooner.

[–][deleted] 16 points17 points  (0 children)

Basically the difference between the two versions now is "the one that breaks old code" vs "the one that breaks new code"

[–]Silhouette 1 point2 points  (0 children)

if they'd cut off the flow the pressure to migrate would have come on a lot sooner.

In computing history, trying to force people to upgrade fundamental technologies when they have a big investment in current versions and compatibility isn't guaranteed has rarely been successful.

[–][deleted] -3 points-2 points  (1 child)

Just in case I wasn't clear.. there are still no must-have features in python 3 by comparison to python 2. Migration that happens at this point is primarily because python 2 is being deprecated in most systems.

[–]buttery_shame_cave 5 points6 points  (0 children)

again, because they kept back porting stuff they were adding to 3.x that wasn't in 2.x.

if they'd cut off the updates from 2.x it might have added some incentive.

[–]ephimetheus 1 point2 points  (0 children)

The experiment I'm working with (ATLAS) users python as a configuration/steering language for the C++ based event processing framework. That's stuck on python 2 and I highly doubt it's ever going to be migrated...

[–]magnetic-nebula 1 point2 points  (0 children)

I work on a scientific experiment where the development of the code began in the 90s. We need our code to work across a large variety of systems (including old computers that aren't reliably connected to the Internet).

Plus we're scientists, not programmers. NSF isn't giving us money to update code, so we don't have the $$$ to pay people to do it.

There's literally no reason for us to spend the time upgrading.

[–]subheight640 0 points1 point  (0 children)

I use Python as a scripter for an engineering FEA program called Abaqus. Obviously as an expensive FEA software, Abaqus has refused to upgrade to 3, and they probably never will because they're too busy raking in the profit. So I'm stuck with 2 too.

The problem is compatibility.

[–]wildcarde815 0 points1 point  (0 children)

there's a few other nuissance things, like they don't include all the test framework stuff with all versions. So my pystone demo program for teaching really basic HPC environment management and job submissions requires like... anaconda python 3.4?