[Python-Dev] Backwards Incompatibility

Eric S. Raymond esr@thyrsus.com
Thu, 22 Feb 2001 19:14:50 -0500


Guido van Rossum <guido@digicool.com>:
> > > Language theorists love [exec].
> > 
> > Really? I'd have thought language theorists would be the ones
> > who hate it, given all the problems it causes...
> 
> Depends on where they're coming from.  Or maybe I should have said
> Lisp folks...

You are *so* right, Guido! :-) I almost commented about this in reply
to Greg's post earlier.

Crusty old LISP hackers like me tend to be really attached to being
able to (a) lash up S-expressions that happen to be LISP function calls on
the fly, and then (b) hand them to eval.  "No separation between code
and data" is one of the central dogmas of our old-time religion.

In languages like Python that are sufficiently benighted to have a
distinction between expression and statement syntax, we demand exec as
well as eval and are likely to get seriously snotty about the
language's completeness if exec is missing.

Awkwardly, in such languages exec turns out to be much less useful in
practice than it is in theory.  In fact, Python has rather forced me
to question whether "No separation between code and data" was as 
important a component of LISP's supernal wonderfulness as I believed
when I was a fully fervent member of the cult.

Anonymous lambdas are still key, though. ;-)  And much cooler now that
we have real lexical scoping.
-- 
		<a href="http://www.tuxedo.org/~esr/">Eric S. Raymond</a>

I cannot undertake to lay my finger on that article of the
Constitution which grant[s] a right to Congress of expending, on
objects of benevolence, the money of their constituents.
	-- James Madison, 1794