Python DevCenter
oreilly.comSafari Books Online.Conferences.


An Interview with Guido van Rossum
Pages: 1, 2

Stewart: Has the Python community coped well with the influx of newbies attracted by Zope?

van Rossum: I'm not sure that they were all attracted by Zope -- there are lots of other reasons for less experienced people to want to check out Python. For example, a growing number of schools and colleges are using Python in their Introduction to Programming courses.

I think the community is coping well -- I see more experienced developers showing up too, so that there's more help available for the beginners. And there are more developers helping out with moving the language forward.

Stewart: What's your personal style of project leadership?

van Rossum: You'd have to ask the people who work with me to get an honest answer.

I usually don't like to tell people what to do or how to do it. I prefer to lead more by example. If I have to make a decision, I usually do it only after gathering plenty of feedback. That doesn't mean I always follow the recommendations though. If I have a strong intuition about what's right, and the arguments to the contrary don't sound convincing, I'll do it my way rather than deferring to "democracy." But if good new arguments are brought forward later, I can change my mind.

Another aspect of my leadership style is that I don't like conflict. Most of the time my attitude is, "Why can't we all get along?" I guess psychologists would call me a fuser. This may be why it is so hard for me to accept that there are some people (maybe only two!) in the community who appear to be bearing a personal grudge to me. I have to work really hard to rationalize this and accept that I can't please everyone.

Stewart: What do you think is the most important part of an open source project?

van Rossum: There's no single important piece, it all needs to fit together. The project must fulfill a need or fit a niche; the project leader must have decent leadership skills and good technical skills, but also be able to defer to others with more specialized knowledge; someone must have a bit of a knack for public relations; and so on. I guess it's much the same as what makes a successful business.

In the case of Python, I think one technical aspect that it shares with many other successful open source projects is that the software has more than one level of extensibility. On the one hand, this allows end users of different skill levels to adapt the software to "scratch their own itch."

Beginners write Python modules, advanced developers can write extensions in C or C++ to make Python do things that it can't do out of the box, and because it's open source, there's always the ability to modify the interpreter itself if you really want to.

The other equally positive side of this coin is that it keeps the key developers free from having to solve every end user's problem. I get very few requests to change the language to meet an end user's needs, and when I do, I can usually explain how they can write an extension that does what they want without having to change the language.

Stewart: Do you think there are any lessons from the success of the open source Python project that could be applied to commercial software development?

van Rossum: This is an important question, though hard for me to answer. Before my current employer, Zope Corporation, I never worked in a commercial software shop. I've always worked in an academic setting. Zope Corporation applies many of the open source lessons, as we use a distributed, open development process that deeply involves customers and non-employee developers around the world. We also practice Extreme Programming a lot.

Our CTO, Jim Fulton, has introduced a very interesting innovation called a "sprint." A number of programmers, some more experienced, some less, get together for a few days for an intensive programming session, typically using pair-programming, Extreme-Programming style.

Sprint participants are both company employees and non-employees interested in participating in the development of the open source Zope codebase. At the end of the sprint, we usually have a significant new piece of working code with unit tests, the less experienced programmers have learned a lot, and we have a few new contributors to the Zope project. This process has really reinvigorated the Zope development process.

Which brings me to another lesson from open source, from my colleague Tim Peters. Tim says this is so important to him now that he'll never go back to working for a closed-source company. The lesson is that an open source development process breeds very loyal employees.

In a typical closed-source company, programmers often develop large amounts of code to which they develop personal attachment. But when projects get canceled, companies are restructured, and management changes, they often lose access to their own code, which is de-motivating. Having your source code out there in the open is a real motivator to have pride in your code and keep improving it.

Stewart: Are you sick of Monty Python yet?

van Rossum: I almost never watch Monty Python shows, but when I do, I still get a kick out of them. Some of the Pythons' later movies (Meaning of Life, Brazil) are among my all-time favorites.

Stewart: What gives you the most fun these days?

van Rossum: Playing with my son Orlijn. He's 7 months old now, and is already developing a great personality. He's got a real sense of humor, and it's fun to watch him make progress in his discovery of the world.

Stewart: What will you be talking about at O'Reilly's upcoming Open Source Convention (OSCON)?

van Rossum: I'm a last-minute kind of guy (you can interpret that as you will), so I can't tell you yet. The many lessons I've learned over the past year will play an important role, though.

Editor's Note: We actually have some idea. Guido will present a session at OSCON on the State of the Python Union, which will cover the latest Python releases, new technologies, and future Python plans.

Bruce Stewart is a freelance technology writer and editor.

Return to Python DevCenter.

Sponsored by: