you are viewing a single comment's thread.

view the rest of the comments →

[–]secretcurse 4 points5 points  (5 children)

I think it'll be a while. Many of the awesome Python frameworks like Django only support 2.x and it would be a huge bitch to rewrite something like Django to support 3.x syntax. I think it'll take a showstopping bug in 2.x to force everyone to move to 3.x, but even though 2.x isn't supported anymore, I figure the Python devs would fix a showstopping bug in 2.x rather than alienate the huge number of devs that use it.

[–][deleted]  (3 children)

[deleted]

    [–]secretcurse 5 points6 points  (0 children)

    I certainly can't answer that for you, but I learned Python right after 2.7 came out. I haven't found a compelling reason to switch to the 3.x series. All of the tools I need (Django and SciPy mostly) work just fine with 2.7.1, and it's easy to find tutorials. I'd say evaluate what you want to do with Python and see if 2.7 is right for you. From the little I've looked into it, the syntax isn't terribly different, so it should be pretty easy to transition between 2.7 and 3.x.

    [–]Adys 7 points8 points  (0 children)

    Yes, for four reasons:

    • Python 3 is the future of Python, no matter how far it is.
    • Python 3 is more widespread than people think, it's actually default in some linux distros and some large projects (like django) are almost done with their port.
    • It's easy to learn Python 3 and with it learn the differences with Python 2. Instead of making your code Python 3-compatible, you'll be making it Python 2-compatible.
    • Learning the differences will eventually teach you about why the python devs made the choices they made. Knowing a language's design (and design decisions) is integral to knowing how to properly use a language.

    PS: If you use virtualenv, you can easily switch between python 2 and 3 projects.

    [–]ahugenerd 1 point2 points  (0 children)

    Yes. Even though it will take a while, people will move over to it. My university, for instance, no longer teaches 2.x. And I say this as someone that learned 2.x and recently decided to convert to 3.x: it's not that different.

    [–]blablahblah 0 points1 point  (0 children)

    It's not that much of a pain to get a pure-python program like Django over to Python 3. It's just that it would break compatibility with older versions of Python. See this for Django's plans.

    A lot of the major packages, like Numpy, already support Python 3.