It's mostly a question of manpower and the fact that Dropbox is still on Python 2.7 internally. If we can get more people on the team, we'd love to add support for Python 3.
AFAIK, a large chunk of Twisted is already working on Python 3. I don't know how long they have left to get 100% of it, but it's made substantial progress.
From what I gather, one of the things holding mercurial back is support for python 2.4, although the support of %-formatting for bytestrings will move the port of mercurial forward.
What does Python 3 offers in terms of : performance, or
improved libraries, safety, other major improvements to justify spending time switching production code to it, breaking library dependencies (could be transitive as well).
I don't see a company with a large Python code base justifying switching to Python 3. Yeah personal toy Github projects, sure, Python 3 is nice, but it is simply not enough rewards justifying all the downsides of switching for many projects.
Looking back, how Python 3 was handled was a mistake. There should not have been a Python 3 when it happened. It should have happened a lot earlier. But if it was going to happen, it should have offered some drastic benefits -- GIL is gone, LLVM JIT 30x numerical code crunching improvements, integration with PyPy, ... I don't know, awesome new built-in libraries like "requests", Flask integrated in. Things like that.
What do we have instead?, unicode improvements, generator code improvements, a Twisted-like async library (don't get me started on that). Iterator cleanups around dicts... That is just not enough, sorry.
Comments
I was really hoping that they would support Python 3. Unfortunately, Python 2.7 only.
Please. Python 3 is ready. :(
It's mostly a question of manpower and the fact that Dropbox is still on Python 2.7 internally. If we can get more people on the team, we'd love to add support for Python 3.
Python 3 is still very much not ready for a variety of complicated things, and some large stacks will likely take years of effort to be ported.
Mercurial is an example, I think twisted is another.
AFAIK, a large chunk of Twisted is already working on Python 3. I don't know how long they have left to get 100% of it, but it's made substantial progress.
From what I gather, one of the things holding mercurial back is support for python 2.4, although the support of %-formatting for bytestrings will move the port of mercurial forward.
Why?
What does Python 3 offers in terms of : performance, or improved libraries, safety, other major improvements to justify spending time switching production code to it, breaking library dependencies (could be transitive as well).
I don't see a company with a large Python code base justifying switching to Python 3. Yeah personal toy Github projects, sure, Python 3 is nice, but it is simply not enough rewards justifying all the downsides of switching for many projects.
Looking back, how Python 3 was handled was a mistake. There should not have been a Python 3 when it happened. It should have happened a lot earlier. But if it was going to happen, it should have offered some drastic benefits -- GIL is gone, LLVM JIT 30x numerical code crunching improvements, integration with PyPy, ... I don't know, awesome new built-in libraries like "requests", Flask integrated in. Things like that.
What do we have instead?, unicode improvements, generator code improvements, a Twisted-like async library (don't get me started on that). Iterator cleanups around dicts... That is just not enough, sorry.