2011-01-22

My semi-regular reminder that Python 3 is on schedule

It seems to me that there has been an uptick in the past week or so online about people going on about how Python 3 is having adoption problems, etc. Probably the biggest thing that has recently set this off is people misunderstanding a blog post by Armin Ronacher. If you don't pay attention to what the blog post says it can come off as anti-Python 3 as Armin says to continue to create Web projects in Python 2.

But if you pay attention to what Armin wrote, you will notice that he is not being negative on Python 3 at all but simply telling people to continue to start projects in Python 2 while being forward-compatible with Python 3 for ease of development today with an eye to porting in the future (you can read his comments on Y Combinator to know I am not misrepresenting Armin). That's totally reasonable advice that I personally do not view as negative on Python 3 but instead as being positive. Armin even wrote a follow-up post giving advice on how to be forwards-compatible.

In actuality Python 3 adoption is doing quite well. Numpy supports Python 3. The next version of SciPy (which in beta) will support Python 3. Django should have support by the end of the summer. Other projects are working on Python 3 support without a specific timeline, like PIL or Armin's own projects like Flask. And specifically for the Web world, PEP 3333 was accepted so that should help move things along in that community.

Something that ALL the Python 3 naysayers forget when they complain about library support is that python-dev has said from the beginning that the timeline for solid Python 3 adoption is 5 YEARS! Python 3.0 was released December 3rd, 2008. That puts us at 2 years and a little bit today. We are not even half way through the timeline python-dev set out for solid adoption! Heck, the absolute earliest I ever remember people saying base libraries everyone relies upon being ported was 3 years. We already have two of the major scientific libraries already ported or on their way and one of the major Web frameworks aiming for this year. And all of this is before even our earliest hope of gaining traction! I would say we are totally on schedule without issues.

My point in all of this is that Python 3 is not a failure. It is not going anywhere and it is not about to suddenly become irrelevant and unused. The community is moving forward and embracing Python 3 at a rate that python-dev expected Python 3 support to move at. In other words, it's all going according to plan.