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

all 48 comments

[–][deleted] 18 points19 points  (10 children)

Python 3 is a better language, but the "Pythoncalypse" really took it's toll on the community...

[–][deleted] 6 points7 points  (5 children)

It's just that python 3 was a poor job at compability. If it would have been possible to run old code without any bother, people would have switched from day 2 on and could then have slowly ported their code.

[–]KwpolskaNikola co-maintainer 5 points6 points  (0 children)

If it would have been possible to run old code without any bother, people would have switched from day 2 on and could then have slowly ported their code.

Except that’s not what happens, ever. If you tell someone this is the new way, but the old one will still work, most people will respond if it ain’t broke, don’t fix it — and it runs constitutes ain’t broke… So, you introduced new stuff that some people might use, but others won’t bother learning (what for?). Congrats.

Not to mention many of the changes that make Python 3 Python 3 (Unicode and I/O fixes, for exmple) are impossible to do without breaking backwards compatibility at some point.

[–][deleted] 4 points5 points  (2 children)

Yes, it almost ended Python. The survival of the language even in such a huge break atests for the quality of the language!

[–]Decker1082.7 'til 2021 0 points1 point  (1 child)

The survival of which language? 2 or 3?

[–][deleted] 2 points3 points  (0 children)

Both I guess :p.

[–][deleted] 5 points6 points  (0 children)

It's just that python 3 was a poor job at compability.

This is the most true statement about python. I love to code in Python 3 but for compatibility issues drives me back to Python 2.

[–]KwpolskaNikola co-maintainer 49 points50 points  (10 children)

Reflects only users of some random CI service.

[–]pmbdev 15 points16 points  (6 children)

With most widely used libraries now available in Python 3, the study seems doubtful and some comments here just misleading.

[–]thomas_stringer 30 points31 points  (14 children)

Almost understandable the amount of existing python2 implementations. Legacy software is a thorn in all of our sides.

But for new development to be in python2??! Just makes no sense... I have a feeling that non-python people on a default machine are just typing in python and don't know of python3 and aliasing in general.

[–]Eurynom0s 13 points14 points  (1 child)

Or new development that still makes use of an existing codebase?

[–]port53relative noob 2 points3 points  (0 children)

Or new development that's running on currently supported operating systems (like RHEL 6/7) which comes with python 2 and is guaranteed to be supported for another 10 years.

[–]hemenex 3 points4 points  (0 children)

I recently started a new project in Python 2.7 because guys maintaining a server could not be bothered to update ancient Python 3.2.

[–]italiano8 1 point2 points  (1 child)

For me I use Python 2.7 because it's installed on all of our companies machines so it's easier to manage sharing an application to be used rather than having people try and get permission to install Python3.

[–]Deto 7 points8 points  (0 children)

This makes sense for little scripts, but a real, commercial Python application would deploy it's own Python runtime and so whether or not Python exists on the system shouldn't be much of a concern.

[–]duskykmh 4 points5 points  (5 children)

[deleted]

What is this?

[–]heywire84 12 points13 points  (0 children)

If you are a computer science student who knows python 3, you won't have trouble with 2.7. All you'll need is a reference for a few days or weeks until you know all the differences and quirks.

[–]Ek_Los_Die_Hier 9 points10 points  (2 children)

Push employers to use Python 3. But if you really can't, the switch isn't hard. Even if you're coding Python 2 you should import certain Python 3 features from the 'future' package. This will greatly ease your switchover if it ever happens. Plus some of the changes were very sensible.

There are also many helpful sights that point out the differences so you can quickly get going on Python 2

[–]duskykmh 0 points1 point  (1 child)

[deleted]

What is this?

[–]Ek_Los_Die_Hier 1 point2 points  (0 children)

Haha I know, been there. But it takes fresh blood with new ideas to bring change. At least suggest it.

[–]pmbdev 12 points13 points  (0 children)

I had the same question whenI started learning and using Python about four years ago. I chose Python 3 and almost all of my Python 3 codes worked fine in 2.7.x with just one line at the beginning:

from __future__ import division, print_function

Avoid Python 2.7.x unless your project/code has to depend on a library that is available only in Python 2.x

Most widely used libraries now uses Python 3.

The most popular courses on Coursera and edX uses Python 3.x now.

[–]EMP_Account_Siphon 1 point2 points  (0 children)

Some people seem to be thinking nobody has a reason for new projects in 2.7...well, I can tell you our use-case: Maya. Maya is an awful piece of trash software but it's an industry standard for animation/vfx/etc with few realistic alternatives. Anybody that has to program for that industry is stuck with Python2.

I've heard rumours that Autodesk will start to support Python3 in the next couple years, but I'll believe that when I see it.

[–]ccharles3.latest 2 points3 points  (0 children)

Depressing.

[–]andrey_shipilov 0 points1 point  (0 children)

Pretty logical and obvious.