66% or better

Python 3000 officially released

python3k

Python 3000 has officially been released. The final bug, Issue2306, “Update What’s new in 3.0″ has been closed. Python 3000, py3k, Python 3.0, is a major release for the community. [Jeremy Hylton] pegs the earliest mention of the beast to January 2000. The new release has grown from PEP 3000, opened April 2006.

Py3k breaks backwards compatibility with previous releases in order to reduce feature duplication and promote one obvious way of getting things done. The first major change is that print is now a builtin function and not a statement. int and long have been unified, and integer division now returns a float. Py3k uses concepts of “text” and “data” instead of “Unicode strings” and “8-bit strings”. You can read about many of the changes in What’s New In Python 3.0. Some new features have been backported to Python 2.6 so you can start implementing them in your current code to ease the transition. 2.6 also has the -3 command line switch to warn you about features that are being removed or changed. Finally, the tool 2to3 is a source-to-source translator that should automate a lot of the changes.

Documentation for the new release is online. Source packages and binaries are available now.

[via johl]

Comments

  1. pascal says:

    “Py3k breaks backwards compatibility” — ah, I loves me some non-backwards compatible releases :D ’cause remember people, backwards compatibility lead to what’s today known as microsoft.

  2. joey says:

    Backward compatibilty isn’t an issue as more than one instance of python can exist at the same time.

    I just makes the newer apps more performant that way.

  3. Tom says:

    “backwards compatibility lead to what’s today known as microsoft.”

    Huh? Have you tried Office 2007?

  4. 1) I agree wholeheartedly with Pascal, it’s great that we can break version compatibility between releases. (NB “We” is just “the community”, I am not involved with Python or anyone you know about).. Of course, Microsoft is compelled to keep it compatible to some extent so that we don’t cry and swtich to Linux or Mac – enough of our programs break for a new version of Windows as it is!

    Python can break compatibility between releases because it is MORE AWESOME than Windows (and not an operating system)

    2) I’m glad that it’s finally here!! Not that I write python (debug/hack/monkey patch maybe, actually write no) but it’s always seemed like a step forward and it’s great that they completed it!

  5. Deggs says:

    backwards compatibility lead to what’s today known as microsoft.

    have a look over at Apple’s stable if you want to talk about orphaned applications. MS isn’t even close to bad.

  6. chucklefromthecrowd says:

    Tom, have you tried OpenOffice?

    Can we do emacs vs. nano next? (I’ll throw in for kwrite.)

  7. DerAxeman says:

    I heard that Python 3.0 was a lot slower too. That combined with loss of backward compatibility is a big black eye

  8. cas says:

    http://docs.python.org/dev/3.0/whatsnew/3.0.html#performance

    10% slower than 2.5 according to that. when you take into account the major internal changes, performance was not the main objective of this release.

  9. MC screwdriver says:

    Keep your hands off my print statements!
    Now – all print statements have to be
    changed to print()!?! Why? This is typically hundreds of lines in a program… What a waste of time, for no good reason whatsoever.

  10. jproach says:

    screwdriver: who exactly is forcing you to upgrade?

    Also I’m sure you can find a way to automate this procedure.

  11. Marco says:

    And still no way to enforce variable/function declarations? Come on, even perl has a strict pragma.

  12. bugloaf says:

    Hooray for purity! I’m glad they’re breaking backwards compatibility. If you want print statements go back to BASIC.

    marco, what the hell are you talking about?

  13. MC screwdriver says:

    jproach: In a few years, you wil HAVE to upgrade,
    because 2.x will not be supported (or available) anymore. Then,
    you have to modify your old code… Very
    annoying.
    bugloaf: if you want print(), maybe you should go back to C… Why was print acceptable up to now, and suddenly it is not? “Me thinks” someone
    just far**d this one out when they fell on a
    keyboard.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s