Sponsored Link •
Python creator Guido van Rossum talks with Bill Venners about Python's original design goals—how he originally intended Python to "bridge the gap between the shell and C," and how it eventually became used on large scale applications.
Guido van Rossum is the author of Python, an interpreted, interactive object-oriented programming language. In the late 1980s, Van Rossum began work on Python at the National Research Institute for Mathematics and Computer Science in the Netherlands, or Centrum voor Wiskunde en Informatica (CWI) as it is known in Dutch. Since then, Python has become very popular among developers, who are attracted to its clean syntax and reputation for productivity.
In this interview, which is being published in six weekly installments, Van Rossum gives insights into Python's design goals, the source of Python programmer productivity, the implications of weak typing, and more:
Bill Venners: What were your original design goals for Python? I had always imagined you wanted to create an easy-to-learn language. You wanted to maximize developer productivity by creating an easy-to-read, easy-to-write language. But from your description of Python's history (see Part I), it sounds like you were trying to fix things that frustrated you in ABC, a language that was designed to make it easy for intelligent non-programmers to learn.
Guido van Rossum: Actually, my initial goal for Python was to serve as a second language for people who were C or C++ programmers, but who had work where writing a C program was just not effective.
Bill Venners: Not effective why?
Guido van Rossum: Because maybe it was something you'd do only once. It was the sort of thing you'd prefer to write a shell script for, but when you got into the writing details, you found that the shell was not the ideal language—you needed more data structures, more namespaces, or maybe more performance. The first sound bite I had for Python was, "Bridge the gap between the shell and C."
So I never intended Python to be the primary language for programmers, although it has become the primary language for many Python users. It was intended to be a second language for people who were already experienced programmers, as some of the early design choices reflect. On the other hand, intuitively I probably stuck to many of ABC's design principles. Because although I had my criticisms of ABC, I borrowed many of its valuable elements, which eventually made Python a great language for people who aren't ace programmers or who are just learning. We now have a large community of people using Python as an educational language, teaching Python in schools. These people aren't and may never be professional programmers, but they still find some programming skills useful.