Googlers and Py3K

Tuesday, February 10, 2009

December 3, 2008 was an historic day for the Python community: Python 3.0 was released. Under serious development since 2006, Python 3.0 (also playfully known as Python 3000 or Py3K as the year 3000 was the original target release date) represents a major step of the Python programming language. The development team set a goal to undo early mistakes from Python's 19 year history and to make features that have been added more pervasive. I think we managed to meet both goals beautifully.

And Google played a big part in making Python 3.0 happen. Since the company is such a huge user of Python, several developers of the language have gravitated toward the company and become Googlers. They spent their 20% time or actual company time over Python 3.0's development cycle working on the language in various capacities. Anthony Baxter pushed for and developed the Py3kWarning system used to help transition code from Python 2.6 to 3.0. Collin Winter helped finish the code transition toolchain by co-authoring with Guido van Rossum the 2to3 tool while also working on function annotations (PEP 3017), extending how exceptions work (PEPs 3109 , 3110 , and 3134), and class decorators (PEP 3129). Gregory Smith fixed various issues with an emphasis on 32-bit/64-bit compatibility. Jeffrey Yasskin helped organize the various types of numbers that Python supports (PEP 3141) as well as some optimizations. Jeremy Hylton merged urllib, urllib2, urlparse, and robotparser into the more coherent urllib package . Josiah Carlson greatly improved the asyncore and asynchat modules. Neal Norwitz managed to change range into what xrange is in Python 2.6 and handle the renaming of it. Talin wrote the proposals for the new string formatting mechanism and keyword-only arguments (PEPs 3101 and 3102 , respectively) along with some help with proposal for abstract base classes and writing the proposal for how to change metaclasses (PEP 3115). As for myself, I did various things including managing the reorganization of Python's standard library (PEP 3108). And of course Guido designed the language.

The hope of the development team has always been that version 3.0 of Python would not only help improve the language for ourselves, but for our users as well. While we continue to happily work on and support the 2.x series of Python (and plan to do so for several years), we all hope that the community is as happy with the outcome of Python 3.0 as the development team is and, over time, embrace it as we all have. And we thank Google for allowing us to work on our favorite language on the company's dime.

Members of the Py3K team pictured clockwise from the top left:
Guido van Rossum & Brett Cannon; Collin Winter, Neal Norwitz, Talin, Jeremy Hylton, Jeffrey Yasskin & Gregory Smith; Josiah Carlson; Anthony Baxter