Python has become one of the open source community's most popular scripting languages. Guido van Rossum, Python's creator, shares his thoughts on where it's going.
Python was born in 1989 as the pet project of an unknown programmer at a Dutch research institute who was looking for a language to make his Unix sysadmin programming a little easier. Guido van Rossum, who was in a “very goofy period” at the time, thought the name Python (as in the British comedy troupe Monty Python) was irreverent and catchy enough to work. Over the next decade, Python proved to be far catchier than van Rossum ever imagined. Today, it is one of the most popular scripting languages around, appealing to an estimated half-million developers. The 45 year-old van Rossum now lives in America, working for the company that develops Python’s killer app, the Zope content management platform. Linux Magazine’s Robert McMillan, John Freed, and Chris Somerville caught up with van Rossum recently in San Francisco.
LINUX MAGAZINE: What made you decide to write Python?
Guido van Rossum: I needed a higher level language; porting an existing language wasn’t really possible, so I had to start from scratch. I was actually working as a developer for CWI [the Centrum voor Wiskunde en Informatica]; it’s a government-funded research lab for computer science and math in Amsterdam.
LM: And you needed a language?
GvR: Yes, I had worked on other languages there. I worked on a large implementation of an interpreted language before. It was called ABC. That project didn’t really go anywhere, but the ideas that developed during that time were still in my head.
LM: What were these ideas? What did you want to achieve?
GvR: Well, I just wanted something I could use myself for system administration-style programming tasks — the Bourne shell wasn’t powerful enough. One interesting thing was that my design goals were very different from that earlier language project. ABC was an educational language that made absolutely no compromise to the reality of computers.
Because ABC’s goals were so pure, they made it almost impossible to interact with other applications. It was an island unto itself. Python was sort of a response to that. It had a bunch of good things that ABC had. It was interactive, had a very clean, simple, elegant syntax, and a very small number of powerful data structures. I liked all those ideas. I also had some different ideas on how to implement all of that as a sort of language parser and compiler, but I chose extensibility as the focus of my implementation, and that brought me automatically to object orientation.
LM: So were you influenced by other languages?
GvR: Well, since C was the implementation language, I decided that for any aspect of the language where I didn’t think I could make a particular innovation, I would be very conservative and pick the same things that C had.
Except I didn’t like the curly braces thing. C, like Java, uses curly braces for statement grouping. Python doesn’t do that. It uses pure indentation, and that’s a trick I really liked in ABC; it’s something people still joke about.
COMMUNITY LEADER, COMPANY MAN
LM: Now that you work for a company whose interests are aligned with Python, is the community concerned that you’ll make changes to the language just to serve Zope’s needs?
GvR: This is a concern. And we’ve been very clear, right from the start, that people shouldn’t be worried.
LM: Why not?
GvR: Zope [formerly known as Digital Creations -Ed.] has said, “We are not interested in monetizing Python. We are not going to sell Python.” They said, “We’ll keep the Python developers at an arm’s length from the core of the company.” And we, the Python developers at Zope, have said, “We’re working for Zope, but we’ll make sure we represent the needs of all the users, and not just of the company that’s paying our salary.”
Then it’s just a matter of what you say to the community. When I repeatedly tell them something like this, and when Zope issues press releases emphasizing this, and when users see from our actions that we are not suddenly adding Zope-specific features to the language, they trust and believe us.
LM: So no one’s accused you of doing that?
GvR: People have accused me of all sorts of things, but not of selling out to corporate America.
LM: What happens if Zope goes out of business? Would Python development come to a crashing halt?
GvR: It wouldn’t mean anything to Python directly. What would happen to the project would depend on what kind of jobs the various Python developers ended up getting. I mean, if we all ended up being Visual Basic programmers or Java programmers, that would not be good for Python — although there are lots of other people who would be able to take over.
That’s effectively what happened to Tcl; now there’s a large group of volunteers who have been developing Tcl 9.0 ever since Scriptics [A company founded by Tcl's creator, Jon Ousterhout, to maintain and commercialize the Tcl scripting language -Ed.] was absorbed by Interwoven. I’m not worried that this will happen to Python anytime soon. And I think it is big enough to survive.
LM: Did you learn anything from watching Scriptics be acquired by Interwoven?
GvR: Well, it reduced my enthusiasm for creating my own company.
LM: Had you been thinking of that?
GvR: Only toying — I’m not really much of a businessman, so I would need a partnership, and I think what I have with Zope Corp. is the perfect partnership.
LM: What do you do at Zope?
GvR: Basically, I just sit there and read e-mail. We do lots of different things. We spend about half of our time managing the Python project. That is, writing code, discussing and designing future features of the language, deciding which things are important.
We also do a lot of community interaction. We review most community contributions, so there is a lot of code review that goes on. I’m not kidding when I say I spend a lot of my time reading e-mail. That’s all community interaction. We have a lot of people who contribute to Python. Not everyone who contributes knows what they are doing, so there is some weeding process.
The other half of our time…part of it is just the brand recognition of Python. I mean, if Python were to fail and become a less and less important language, that would be a difficult position for Zope to be in. But we are also taking responsibility for many parts of the core architecture of Zope — especially lower in the system architecture. We don’t often work at the highest level, where they are dealing with content management. That’s where the people who’ve worked for years at Zope are best. We work sort of as an extension of Jim Fulton [Zope Corp's CTO], who used to be the only person who did really low-level stuff — especially ZODB [Z Object Database], the object database, which is really solid code, but still needs maintenance.
LM: What will be Python’s next Zope?
GvR: I don’t know. I’m really excited about using Python as an application development language for handheld platforms — things like Pippy [Endeavors Technology's port of Python to the Palm -Ed.]. That was very exciting for me. I wanted to do that myself, but every time I looked at it? I mean, I bought a book about developing for the Palm, downloaded all the development tools, looked at it, and I thought, “Oh my God. This is going to be so painful.” I think that was when I was dating my wife, so I had better things to do with my time.
LM: Are there any tools that have caught your eye?
GvR: It’s too early to say, but I think Python will be able to position itself as a sort of Visual Basic-like language in the embedded space where applications are developed only to be used in-house — maybe at a company having 20 to a couple of hundred handheld devices. I think Python would be a great language for this kind of vertical market, because you don’t need very sophisticated developers, and Python has all the necessary tools.
LM: What do you really think about Microsoft?
GvR: You’ve got to realize that this is an area that I’m not very good at. I’m not particularly opinionated. I’m more of a “Let’s all live together” guy than an “our approach is better than your approach” person. I don’t necessarily see Microsoft as the big bad company that we should all avoid. Python works very well on Microsoft platforms. I also don’t think Microsoft is the solution to all software problems.
LM: Do you think that some of the tools they’re talking about creating for .NET will have an impact on Python?
GvR: Well, Python already has a translator for .NET developed by ActiveState. At the moment it’s very much a prototype, but as the need arises, I’m sure it will be improved. Jython [an implementation of Python written in Java -Ed.] was originally developed as a safety net when all the Java hype was at its maximum. We thought, “Well, it looks like a lot of hype, but it could be that there’s more behind it; what if in five years C is dead and Java is the only language left?” Then having a Python implementation that works with Java rather than trying to compete with it makes a lot of sense.
It doesn’t look like Java is going to conquer the world, but it’s still a very big market; in that market, Jython can play a good role as, for example, a testing language — and also a rapid prototyping language for Java applications. I think the same thing is the case with .NET. I don’t know where it’s going to go. It could take off or it could turn out to be a big hype bubble.
My feeling is that, in general, when someone tries to propose a new solution that will solve the problem of everyone talking a different language, the outcome is that we have yet another language to choose from, and not that everybody is using that proposed language. I’ve seen it in different kinds of solutions. I don’t think Linux will replace Windows. I don’t think Java will replace all the other languages. It’s just another platform, and I think the same will happen with .NET.
LM: Is there anything about .NET that you think is particularly interesting?
GvR: Well, there might be, but I have not studied it enough. Maybe things like Web Services, which are higher-level parts of the .NET layer cake, are where the interesting action is.
If I’ve done my job as a language designer well, the language won’t need to be changed in order to adapt to a new platform. What may need to adapt is the environment in which the language is being used. Maybe emacs is going to be less important and GUIs are going to be more important, so we need to have a GUI interface ready. I think it’s more the environment of things around the language itself that need to change to adapt to new target platforms.
LM: Is that a matter of the users changing or is it that the actual applications have changed?
GvR: I think neither. It’s a matter of the world changing. I mean, 10 years ago we were using GUIs only for end-user stuff and much less for developer work. Now we see GUIs coming up for system administration. And, there are GUIs for configuring your Apache Web server. There are developments that just happen.
I mean, the development of handheld devices is going to be huge, just because you can now put a decent amount of CPU power in a machine that’s smaller than your Walkman. For many people, that’s going to be the right form-factor for the only computer they have with them at all times. That’s going to change the world completely for people who are developing GUIs. This means that the tools that are used for developing GUIs will have to be changed. The whole paradigm for how you write a GUI probably has to be changed.
If you want me to say anything bad about Microsoft, I would say that Windows CE didn’t succeed because it was trying to remain too true to the original Windows graphical user interface, not admitting that on such a small screen with a very different input device, your user interface also needs to be different. The Palm folks totally understood that.
Microsoft made the mistake of thinking that, for the users, compatibility with Windows was an important thing, and that user portability would be helped by giving them the same metaphors as on the desktop.
OPEN STRESS INITIATIVE
LM: You’re on the board of directors of the Open Source Initiative. What’s the relationship with the Free Software Foundation like these days?
GvR: It’s still kind of stressful. I mean, we both want to change the world, and our end-goals are very similar, but their views on how we should go about making those changes and convincing people that those changes are right is very different from ours. So I would say our tactics, and even our strategies, are very different.
LM: It seems very unfortunate that there is that degree of friction.
GvR: Oh yeah. It is very unfortunate, but Richard Stallman is who he is. I will never be on a panel discussion with him again.
LM: What happened?
GvR: I forget whether it was two or three years ago. There was a big panel at LinuxWorld. I think Eric Raymond moderated the panel, and he had invited Linus [Torvalds], Richard Stallman, Larry Wall, and me to discuss how we ran our communities, because he thought that we were all good examples of open source software leaders who had good relationships with their communities. And the whole panel just became the Richard Stallman show.
LM: Did he not like the other software licenses?
GvR: He didn’t go after any of the other people for licensing. It was just the ranting about his own point of view while completely ignoring anything that anyone else wanted to bring in. There is no reasonable discussion possible, because he has his position, and he will explain it any number of times. But his mind is made up and he won’t listen to other people’s positions. So it’s fairly useless to have that discussion, in my view.
LM: It’s a moral issue for him.
GvR: Yeah, but there are different ways to discuss moral issues.
LM: Where does the morality of access to software fit into your worldview?
GvR: I’m not a very moral person in the sense that I don’t have very strong views. I’m not religious. I tend to see the value of everybody’s point of view. I like to listen to different people and say, “Well yes, that’s a reasonable position. That’s also a reasonable position.” Or, “Yeah, I can understand where you’re coming from and why you think this way about it and why you think that way about it.” So I don’t have absolute morals. I probably have some, but it’s pretty difficult to tease them out of me, and I haven’t succeeded myself.
I don’t think it’s immoral to want to make money.
Robert McMillan is editor at large with Linux Magazine. He can be reached at firstname.lastname@example.org.