do...until wisdom needed...

Jacek Generowicz jmg at ecs.soton.ac.uk
Wed May 9 02:52:14 EDT 2001


Harry George <hgg9140 at cola.ca.boeing.com> writes:

> For example, I'm in a production environment (knowledge-based
> engineering) using Lisp which is heavily modified by macros.  The
> resulting language is unrecognizable, with flavors-style objects, lazy
> evaluation, object reference chains, and naming conventions that put
> *everything* in the keyword namespace.

ICAD (IDL) ?

I've recently been put in contact with this. I still have hope that I
will be able to learn to appreciate it.

Still, I suspect that creating a new language on top of lisp is
preferable to writing a completely new one.

> But when the macros can't do the job (often), you have to drop back
> into raw Lisp

But at least you have that option, whereas purpose built (from
scratch) languages are likely to leave you with no way out.

> -- kind of like doing assy in a C program.

A lot better than that, I would say. How about comparing it to
extending Python with C ?

> You end up with an awkward mixture of syntaxes and semantic models.

Any more awkward than the mixture of Python and C ?

> "The first step in writing a macro is to regignize that every time you
> write one, you are defining a new language that is just like Lisp
> except for your new macro."

True, but I consider this to be more positive than negative (you not
only have all the benefits and comfort of the language you know and
love, but also that bit you felt* was missing or that you need for
this class of problems). Besides, something similar might be said
about writing your own functions.  Ultimately macros are powerful tool
for abstraction; if you eschew abstraction why bother with high level
languages at all ?


* The feeling may have been misguided, but that is a different matter.




More information about the Python-list mailing list