"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.

Search This Blog

Thursday, January 20, 2005

Smug Lisp Weenies

John Stephen Jacob Anderson, apparently a SmugLispWeenie if there ever was one, writes...

Python was the subset of Lisp that was understandable by C++ programmers.
Being at least a former SmugLispWeenie myself I am having trouble disagreeing. Which is not to say Python is bad, it just loses in certain significant ways that Lisp does not.

Update based comments:
"outside of the CS department"

Ouch.

I think Lisp is safely outside the CS dept. If we could get it *into* the CS dept. maybe things would improve a bit.

"Listing those significant ways"

Syntax extension, syntax itself, closures, continuations (Scheme in this case), to name the top of my list.

I would also include as a result of these, Lisp is a good vehicle for language experimentation (or just defining new object systems), whereas Python provides a simple object system it is more restricted in where you can take it.

Which is not to say that I would not choose Python over 90% of the industry's languages. I would.

4 comments:

Anonymous said...

One could also say that Python is the subset of Lisp necessary for a language to succeed outside of the CS department.

Anonymous said...

"outside of the CS department"

Ouch.

I think Lisp is safely outside the CS dept. If we could get it *into* the CS dept. maybe things would improve a bit.

"Listing those significant ways"

Syntax extension, syntax itself, closures, continuations (Scheme in this case), to name the top of my list.

I would also include as a result of these, Lisp is a good vehicle for language experimentation (or just defining new object systems), whereas Python provides a simple object system it is more restricted in where you can take it.

Which is not to say that I would not choose Python over 90% of the industry's languages. I would.

Anonymous said...

Python has closures as I understand them, e.g.:

def make_me_a_closure(foo):
bar = 10
def a_closure(baz):
return foo+bar+baz
return a_closure

?

I have reservations about macros (or syntax extension). I haven't come across a large project with a large team that uses macros (not suggesting there aren't any). Surely adding or altering syntax makes it significantly harder for new engineers to be brought onto the team? The Python way of design seems to be "we can do all the useful stuff in a simple syntax". So far I would suggest they have been proved right. Lisps advantages have this far have proved academic.

Patrick Logan said...

Lambdas and nested definitions in Python are less desirable than in Lisp. Of course that is arguable if you are not a Smug Lisp Weenie, as is your take on syntax extension.

However syntax extension has been shown to be much more than academic. Again if we could get the academics to adopt the Lisp approach to syntax and syntax extension then that in itself would be a milestone event.

Blog Archive

About Me

Portland, Oregon, United States
I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.