Python syntax in Lisp and Scheme

Frode Vatvedt Fjeld frodef at cs.uit.no
Mon Oct 6 13:45:05 EDT 2003


Alex Martelli <aleax at aleax.it> writes:

> [..] If you believe everybody can become a good language designer, I
> think the onus is on you to explain why most languages are not
> designed well.  Do remember that a vast majority of the people who
> do design languages HAVE had some -- in certain cases, VAST --
> experience with Lisp, e.g., check out the roster of designers for
> the Java language.

This argument is in my opinion invalid, for at least three reasons:

  - Designing something like the Java language is very, very different
    from designing a lisp macro.

  - Designing good functional abstractions (libraries) that are
    suitable for sharing with other programmers is also quite
    difficult. This in no way implies that the defun or equivalent
    operator should be removed.

  - That some programming language feature might be beyond some
    people's ability to use well, is not a good reason to dismiss that
    feature, at least not in my book. Of course, languages are
    designed to different ends, and I do seem to recall that one of
    Python's explicit goals is to be "the language for everybody", so
    this argument might make sense from a Python point of view.

> My thesis is that the ability to design languages well is far rarer
> than the ability to design well within more restricted confines, and
> good design is taught and learned much more easily in restricted
> realms, much less easily the broader the degrees of freedom.

This is obviously true, but in my opinion completely irrelevant to the
issue of whether macros are helpful or not.

-- 
Frode Vatvedt Fjeld




More information about the Python-list mailing list