aquiline ascension

published: 2010-10-22
author: Hans Nowak

Is Python an "acceptable Lisp"?

There was a discussion on Hacker News the other day about Python vs Lisp... One of the questions that came up in the comment was whether Python is "an acceptable Lisp". (I thought this saying was originally coined by Steve Yegge, but maybe not.)

Is Python "a Lisp"? I think it depends on how you look at it. Many Lispers will say no, quoting for example the lack of macros. But think of it this way. Let's say back in 1991 someone had said, "Guido is working on a language that has list and dictionary types, garbage collection, first-class functions and dynamic typing". The reply might well have been, "Oh, so it's like Lisp, but with a more conventional syntax!" 1  (Considering that back then, C, C++ and Pascal (on MS-DOS at least) were the popular languages, and they lack(ed) all these features.)

Nowadays these features are found in many languages; they have become commonplace, and to be "like Lisp" you need more than that. As mainstream languages have slowly been assimilating features pioneered by Lisp, there isn't much left that is unique to Lisp though... other than S-expression syntax and macros to manipulate them.

There is a (kind of vague) notion of a "family of Lisp languages". Which languages belong to it seems to be a matter of opinion, mostly. (Does Clojure belong to it? What about Logo?) Personally I don't think that Python is part of it, but it does use a generous helping of features that -- decades ago -- used to be the exclusive domain of Lisp.


1  Although not that conventional, considering the significant whitespace... but much more conventional than S-expressions.

blog comments powered by Disqus