Python Creator Scripts Inside Google

Q&A: Python architect Guido van Rossum discusses what's so good about the programming language, what's in store for Version 2.5 and what they call him at Google.

The Python language, used for a growing range of utility and application development tasks, bears the personal stamp of language creator Guido van Rossum. On the eve of this years Python developer conference, eWEEK Technology Editor Peter Coffee spoke with van Rossum about the tools current state and future prospects.

Thanks for talking with us. We understand that at the end of last year, you joined the staff at Google in a role that devotes half your time to Python development. So, what do they call you there?

They call me Guido. I dont have a title, other than member of the technical staff. When people talk about Python informally, they may refer to me as GVR or BDFL, the joke title of Benevolent Dictator for Life that I have in the Python community.

How did you wind up at Google? Whats the affinity between Google and Python?

Google has made no secret of the fact they use Python a lot for a number of internal projects. Even knowing that, once I was an employee, I was amazed at how much Python code there actually is in the Google source code system.

/zimages/3/28571.gifA Microsoft-branded version of the IronPython programming language is moving full-speed ahead toward final delivery. Click here to read more.

That doesnt mean that when you are doing your Web search or Google News, or anything of that order, youre interacting with Web servers running Python programs—but a lot of the maintenance, a lot of the developer support and a lot of the back-office applications like advertising use an awful lot of Python. Inside Google, Python is the standard scripting language.

How do you feel about the label of "scripting language"? Some people feel it is becoming dated because of the growing use of incremental compilation and other dynamic technologies in mainstream development.

Within Google, its reasonable to talk about scripting as a category because the majority of applications are written in C++ and Java. In general, scripting languages gain programmer productivity by giving up program efficiency. There are other languages that do the same thing that clearly arent scripting languages: If you want to talk categories, its better to talk about very high-level languages that go beyond C++ or Java.

What makes Python an exemplar of a very high-level language?

Python does away with a lot of the endless bookkeeping that you find in C++ and Java—saying 10 times over that your variable is a list of integers, things like that. Built into the language are more data types with more operations, giving you a more expressive and concise notation for dealing with those things.

Do you feel there were any assumptions you made or preconceived notions you had that got baked into Python? If so, what would you go back and tell yourself—if you had a time machine available—not to do?

We were stuck for a long time in some choices that I made between machine integers and arbitrary-precision integers. Were slowly getting rid of that, but its a relatively painful process because, over time, the exact semantics of small integers and long integers had become slightly different. If you add two numbers, the result is pretty obvious, but, in some cases, such as bitwise operations there are some corner cases.

Once you have an installed base, and there are lines of code that are written and working, any change—no matter how well-intentioned—will break someones code, and you have to be careful about that.

Are there any particular milestones that developers should be expecting the Python development process to reach in the near future?

The currently active release is 2.4, actually 2.4.2, but the last digit is only relevant for bug fix tracking. Were working on 2.5 now, which will have a number of new language features. Weve selected those; some have not yet been implemented. At the [PyCon] conference [in Dallas at the end of February], well get a group together to implement the missing features and start a cycle of alpha releases, two betas, a release candidate, and a final release date of September or October.

Next Page: Whats next for Python?