The A-Z of Programming Languages: Python

Our series on the most popular programming languages continues as we chat to Van Rossum, the man behind Python.

Given that the language was developed in the 1980s, what made you publish it in 1991?

I actually didn't start until the very end of 1989. It took just a bit over a year to reach a publishable stage.

Were there any particularly difficult or frustrating problems you had to overcome in the development of the language?

I can't remember anything particularly frustrating or difficult, certainly not during the first few years. Even management (usually the killer of all really interesting-but-out-of-left-field projects) indulged my spending an inordinary amount of my time on what was considered mostly a hobby project at the time.

Would you do anything differently if you had the chance?

Perhaps I would pay more attention to quality of the standard library modules. Python has an amazingly rich and powerful standard library, containing modules or packages that handle such diverse tasks as downloading web pages, using low-level Internet protocols, accessing databases, or writing graphical user interfaces. But there are also a lot of modules that aren't particularly well thought-out, or serve only a very small specialized audience, or don't work well with other modules.

We're cleaning up the worst excesses in Python 3.0, but for many reasons it's much harder to remove modules than to add new ones -- there's always *someone* who will miss it. I probably should have set the bar for standard library modules higher than I did (especially in the early days, when I accepted pretty much anything anyone was willing to contribute).

A lot of current software is about writing for the web, and there are many frameworks such as Django and Zope. What do you think about current web frameworks based on Python?

For a few years there were definitely way too many web frameworks. While new web frameworks still occasionally crop up, the bar has been set much higher now, and many of the lesser-known frameworks are disappearing. There's also the merger between TurboGears and Pylons.

No matter what people say, Django is still my favorite -- not only is it a pretty darn good web framework that matches my style of developing, it is also an exemplary example of a good open source project, run by people who really understand community involvement.

What do you think about Ruby on Rails?

I've never used it. Obviously it's a very successful web framework, but I believe (based on what users have told me) that Django is a close match.

We've all heard about how Python is heavily used by Google currently. How do you feel about this? Has this exceeded your expectations for the language?

I never had any specific expectations for Python, I've just always been happy to see the user community grow slowly but steadily. It's been a great ride.

Why has the language not been formally specified?

Very few open source languages have been formally specified. Formal language specifications seem to be particularly attractive when there is a company that wants to exercise control over the a language (such as for Java and JavaScript), or when there are competing companies that worry about incompatible implementations (such as for C++ or SQL).

What's the most interesting program you've seen written with Python?

In terms of creative use of the language in a new environment, I think that would be MobilLenin, an art projects for Nokia phones written by Jurgen Scheible.

Have you ever seen the language used in a way that wasn't originally intended?

Well, *originally* I had a pretty narrow view on Python's niche, and a lot of what people were doing with it was completely unexpected. I hadn't expected it to be used for writing expert systems, for example, and yet one of the early large examples was an expert system. I hadn't planned for it to be used to write high-volume network applications like Bittorrent either, and a few years back someone wrote a VOIP client in Python.

I also hadn't foreseen features like dynamic loading of extension modules, or using Python as an embedded programming language. And while ABC was designed in part as the teaching language, that was not a goal for Python's design, and I was initially surprised at Python's success in this area -- though looking back I really should have expected that.

Join the newsletter!

Error: Please check your email address.

Tags a-z of programming languages

More about ABC NetworksetworkGalaxyGoogleLinuxMicrosoftNational ResearchNokiaWikipedia

Show Comments