merits of Lisp vs Python

tayssir.john at googlemail.com tayssir.john at googlemail.com
Sun Dec 10 18:55:00 EST 2006


Paul Boddie wrote:
> tayssir.john at googlemail.com wrote:
> > Keeping with the analogy, Lisp offers power to adapt your notation to
> > the domain you're describing. One thing people expect from a language
> > is a certain malleability in order for it to somehow resemble the
> > domain they're describing.
>
> I think the more interesting issue of relevance to both communities
> (and I wonder whether the original inquirer is still reading) is
> whether a language like Python is an acceptable specialised notation
> for so many domains as to make a more malleable language like Lisp less
> interesting for most specialists. In other words, that there are so
> many areas where Python's arguably mundane semantics are sufficient
> that the specialists have their convenient, common means of
> communication which happens to span large areas of computational
> endeavour.

Well, I think it's twofold:

* How well do languages keep up with changing requirements and
paradigms?

* Don't you want a domain expert (perhaps you) designing your problem
domain's notation, someone who cares deeply about the problems you
face?

When Python is fine for your domain, great. But as you stray from the
intention of Python's central designers, your code loses correspondence
with your problem domain.


For example, this book offers a case study in an mp3 parser syntax
which corresponds visually to the spec:
<http://www.gigamonkeys.com/book/>

Or here are some simple examples, with HTML:
<http://weitz.de/cl-who/#example>


> And on the occasions where Python doesn't provide adequate,
> convenient metaprogramming features, might it not be the case that less
> elegant program transformation mechanisms or even other approaches to
> architectural design aren't good enough solutions? After all, the
> various object-oriented design movements, for example, even though they
> may be regarded as having produced clumsy and verbose mechanisms for
> expressing certain kinds of systems, have in some way or other provided
> a recognisable vocabulary that many people understand.

OOP is actually a good example. Alan Kay stated: "I invented the term
Object-Oriented, and I can tell you I did not have C++ in mind." (From
a link I gave earlier.)

The central designers behind C++ were certainly thoughtful. But they
weren't all OOP experts. There should be some room for interested
people to easily experiment with a new paradigm's concepts. After going
through enough testing and common use, it can even be folded into the
language itself.


There's another anecdote. At LL2, a convention of language designers, I
recall the guy from Microsoft Research wanted nondeterminism in a
programming language. But you can actually download a Lisp library
which provides nondeterministic computing features.
<http://ll2.ai.mit.edu/>
<http://www.cliki.net/Screamer>


YMMV, as usual.


Tayssir




More information about the Python-list mailing list