r/Python • • May 26 '14

Python 3 is killing Python

https://medium.com/@deliciousrobots/5d2ad703365d/
0 Upvotes

147 comments sorted by

View all comments

73

u/252003 May 26 '14

In the time it took to write that article he could have ported a hundreds of lines of python 2 to python 3. If people spent as much time upgrading as they spent time complaining about having to upgrade we would have made a lot of progress. Is creating a third version of python that is worse than the current one but can use old libraries a good way or is working on moving forward and developing the newest versions of our language the best way.

46

u/mitsuhiko Flask Creator May 26 '14

If people spent as much time upgrading as they spent time complaining about having to upgrade we would have made a lot of progress.

That's a pretty pointless argument for a variety of reasons. The biggest one is that there is no reason to upgrade because Python 3 does not have a business benefit for lots of people.

As a person maintaining open source code Python 3 for me doubles my work for zero benefit as I'm not using Python 3 myself.

As a person working in a company upgrading to Python 3 means that I lose compatibility to the ecosystem and PyPy. If I support both, then why not just continue using Python 2?

Aside of that, there is so much stuff in Python 3 that is barely reviewed because there are no users that it's really damn hard to argue that it's unconditionally a better language.

//EDIT: arguing with "if people" is not useful in general anyways because a system would obviously be most efficient if all actors in it, would share the same ideals. But that's not how the world works. You could use the same argument to ask for why we don't have world peace.

0

u/[deleted] May 26 '14

[deleted]

11

u/twotime May 26 '14

The business case here is that languages which cannot keep b/w compatibility at reasonable level should not be used for any future projects... Existing projects are either to be mothballed or rewritten in another language..

Welcome to the real world.

0

u/[deleted] May 26 '14

[deleted]

4

u/twotime May 26 '14

Such breakage is tolerable for a language which is just starting. It's a suicidal mistake for a language with massive deployed code base.

Two more observations.

A. it's not a binary choice, breaking changes could have been introduced with deprecations/future imports/etc which would have been slower (but then it might still be faster than what we've got with python3 ;-)

B. given that the cost of b/w compatibility breakage is so high, it only should be broken for clear improvements. Python 3 does not meet this requirement IMHO:

B1. print function vs print statement. A wash.

B2. unicode by default. A mess. (as in: it has broken about as many things as it has fixed)

B3. dictionary interface changes. (.keys() is now an iterator). A minor improvement

etc, etc, etc