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