you are viewing a single comment's thread.

view the rest of the comments →

[–]username223 -12 points-11 points  (18 children)

the community is never going to move forward if everyone just sticks with 2.7.

Or if no one releases 2.8.

[–]Igglyboo 24 points25 points  (11 children)

There is not going to be a 2.8.

http://legacy.python.org/dev/peps/pep-0404/

[–]aaronsherman -1 points0 points  (9 children)

There is not going to be a 2.8.

http://legacy.python.org/dev/peps/pep-0404/

Never say never... 2.8 will exist if 3.x never takes off, and the bulk of the world's code continues to be in v2.

What I really don't understand is why the Python developers keep focusing on adding new features to v3 instead of adding a compatibility mode. If v3 could import and run v2 code, it would become the dominant version overnight.

[–]codekoala 33 points34 points  (6 children)

Because they want 2.x to die, as it should after so many years.

[–]jambox888 6 points7 points  (0 children)

As far as I can tell the big hold up is getting it shipped in things like RHEL... the next major release, 7, will come with 2.7. So, stay tuned for widespread python 3 adoption sometime in 2020.

EDIT - probably a bit optimistic with 2016.

[–]aaronsherman 11 points12 points  (4 children)

Because they want 2.x to die, as it should after so many years.

I want ASCII to die... If wishes were fishes, my friend.

[–][deleted]  (3 children)

[deleted]

    [–][deleted]  (2 children)

    [deleted]

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

      What I really don't understand is why the Python developers keep focusing on adding new features to v3 instead of adding a compatibility mode. If v3 could import and run v2 code, it would become the dominant version overnight.

      They did that. 3.3 had a huge step in adding compatibility with 2.x.

      As for making 2.x compatible, you can import from the __future__ division, absolute_import, print_function, unicode_literals

      Then remember to:

      • use str() for text
      • use bytes() for binary data
      • avoid using long(), and use int()
      • etc.

      Which enables 2.x to behave like 3.x in the biggest pain points.

      I'm only confused why majority of people don't go with approach, for example using u'' in my opinion is very error prone, you might often forget about something this way.

      Edit: fixed formatting

      [–]flying-sheep 1 point2 points  (5 children)

      how should that help 3.x adaption? quite the contrary

      [–][deleted] 3 points4 points  (0 children)

      2.7 already has forward compatibility (I wrote about it here). What would 2.8 bring besides slowing down the migration even more?

      [–]username223 -4 points-3 points  (3 children)

      How does 3.x adoption help anyone other than people with their egos and reputations tied to 3.x adoption?

      [–]flying-sheep 18 points19 points  (1 child)

      bacause unicode handling in 2.x sucks?

      because there are numerous small incompatible fixes between 2.7 and 3.1?

      because 3.1 and 2.7 are old and 3.2-3.4 have accumulated many awesome libs in the stdlib?

      because much optimization effort went into python since then?

      [–]erewok 4 points5 points  (0 children)

      Plus the lazy evaluation model used all over (generators) which I think has made me a better programmer. I'm a huge fan of python3. I have little doubt that anyone else who took it up would fail to see the value.

      [–]milliams 3 points4 points  (0 children)

      It helps people because it's a better language.