A schedule was first published around a year ago; we were aiming for a first 3.0 alpha release by the end of the first half of 2007, with a final 3.0 release a year later. (Python 3.0 will be the version when it is released; “Python 3000″ or “Py3k” is the project’s code name.)
This schedule has slipped a bit; we’re now looking at a first alpha by the end of August, and the final release is moved up by the same amount.
Also Python 2.6, a minor upgrade to 2.5, will be released a few months before Python 3.0, so two Python versions will exist in parallel. It is somehow necessary because of the amount of incompatibility in Python 3.0. For example,
- A strings are now unicode strings, and
b'...'is now used to denote 8bit byte literals.
'...' % argformatter becomes
'...'.format(arg)method on string objects. There also seems to be a small but useful template syntax for string formatting.
- Class decorators, function/method annotation, meta-class syntax change, and more.
- Generic functions as per PEP 3124.
- Updates on integers, iterators and exceptions.
- Set literal.
- No more
reduce(), no more
A very interesting update for the better of Python I guess. As of backward compatibility, it is always going to be an issue with upgrading big legacy apps to the latest version of the language, but hopefully the changes will benefit the new projects.