Python 3.0/Python 3000/Py3K is out. Why is it so special? Because it intentionally backward incompatible, which has been one of the most important property to protect for software developers. And that the community has been having hot debates about its future direction.
I personally think that the changes are for good. It is better to do away with the unwanted baggage than to punish the future because of it. Having said that, there are some changes that can raise blood pressure of some developers. For example, lists are being replaced with views and iterators for some APIs, which includes the popular
dict methods. Or that we cannot use
u prefix is irrelevant as all text is Unicode in Python 3.0. However, Django, a popular Python framework, has recently asked its users to start using the
u prefix. Things like these can cause frustration for developers. It will also be a challenge to port libraries that want to be backward compatible.
That is where tools like 2to3 will help in migration. It will also help you if you start following the developments in Python community. And if you are someone who wants to start learning the language, then please pick up Python 3.0 documentation. There might not be many books and documentation out there, but I am sure you will get a lot of pointers from the community.
However, with Python getting used almost everywhere, it will be extremely important that Python 3.0 gets popular with the developer community. If the tools and frameworks do not adopt it, it will create a PHP5 in the community. Let me start with my own code.