A testimonial

Preface: this post from the early (and arguably innocent) days of Python 0.X was originally included in the Python distribution package. It still lives online here, here, and elsewhere, and its quiet 2001 removal from Python is recorded here. History is never truly deprecated on the web.

Newsgroups: comp.lang.perl,comp.lang.tcl
From: lutz@xvt.com (Mark Lutz)
Subject: Python (was Re: Has anyone done a tk addition to perl?)
Organization: XVT Software Inc.
Date: Thu, 14 Oct 1993 17:10:37 GMT
X-Disclaimer: The views expressed in this message are those of an individual at XVT Software Inc., and do not necessarily reflect those of the company.

I've gotten a number of requests for information about Python, since my post here earlier this week. Since this appears to be of general interest, and since there's no python news group yet, I'm posting a description here. I'm not the best authority on the language, but here's my take on it.

[TCL/Perl zealots: this is informational only; I'm not trying to 'convert' anybody, and don't have time for a language war :-) There is a paper comparing TCL/Perl/Python/Emacs-Lisp, which is referenced in the comp.lang.misc faq, I beleive.]

What is Python?...

Python is a relatively new very-high-level language developed in Amsterdam. Python is a simple, procedural language, with features taken from ABC, Icon, Modula-3, and C/C++.

Its central goal is to provide the best of both worlds: the dynamic nature of scripting languages like Perl/TCL/REXX, but also support for general programming found in the more traditional languages like Icon, C, Modula,...

As such, it can function as a scripting/extension language, as a rapid prototyping language, and as a serious software development language. Python is suitable for fast development of large programs, but also does well at throw-away shell coding.

Python resembles other scripting languages a number of ways:

Python's features that make it useful for serious programming:

Of course, Python isn't perfect, but it's a good compromise betweem scripting languages and traditional ones, and so is widely applicable. 'Perfect' languages aren't always useful for real-world tasks (Prolog, for example), and languages at either extreme are not useful in the other domain (C is poor for shell coding and prototyping, and awk is useless for large systems design; Python does both well).

For example, I've used Python successfully for a 4K line expert system shell project; it would have been at least twice as large in C, and would have been very difficult in TCL or Perl.

Python uses an indentation-based syntax which may seem unusual at first to C coders, but after using it I have found it to be _very_ handy, since there's less to type. [I now forget to type '}' in my C code, and am busy calculating how much time I wasted typing all those '}', 'END', etc., just to pander to 'brain-dead' C/Pascal compilers :-)].

Python's currently at release 0.9.9. It seems suprisingly stable. The first 'official' 1.0 release is due out by the end of this year. Python runs on most popular machines/systems (mac, dos, unix, etc.) It's public domain and distributable, and can be had via ftp. The distribution includes examples, tutorials, and documentation. The latest ftp address I have (I got it on a cd-rom): [see description of Python.]

There's a python mailing list maintained by the language's creator. Mail 'python-list-request@cwi.nl' to get on it.

Mark Lutz
lutz@xvt.com