[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Accumulator
If a design goal of Python is to make all source code look
familiar, you're then saying you don't want the language
to be used for bottom-up programming, where by definition
you make a custom language for the app. Are you sure you
want that?
It *is* a problem in Lisp when people use lots of hairy
macros that e.g. change the Lisp evaluation rule. (Nearly
any macro will, in fact.) The answer is not to forbid
macros, but only to use them when they are a net win in
readability.
I think we agree that readability is an important goal.
My mantra is SICP's
"Programs must be written for people to read, and only
incidentally for machines to execute."
But I think the test of readability is the amount of
work you have to do to read the whole program, not the
amount of work you have to do per line. If some fairly
complex macro will make your program 1000 lines shorter,
it is probably a net win for readability.
BTW, I don't think infix languages are intrinsically more
readable than prefix. Except for math, I find prefix
more readable, and would prefer it regardless of its
handiness in macros. I think we need to distinguish
between intrinsic readability and familiarity. I agree
that infix might be more familiar to people, but if you
design your language to be similar to whatever crap
people learn in high school, what happens if they start
teaching them different crap?
--pg
> Date: Fri, 24 May 2002 12:45:11 -0700
> From: Paul Prescod <paul@prescod.net>
> X-Accept-Language: en
> To: Guy Steele - Sun Microsystems Labs <Guy.Steele@sun.com>,
> ll1-discuss@ai.mit.edu
> Subject: Re: Accumulator
>
>
> Guy Steele - Sun Microsystems Labs wrote:
> >
> >...
> >
> > I am puzzled. Could you please elaborate on what you
> > mean by "decreasing the regularity"?
>
> Sure. But I won't get drawn into a debate on it because I've been
> through the debate often enough on Python mailing lists.
>
> Simply when you pick up someone else's code, how much does it look like
> the Python you are used to? This is a subtle issue because obviously we
> can't force everyone to use the same function names. But we can add a
> large library so that people feel less need to reinvent things. And we
> can make the language syntactically rich enough that they feel less
> inclined to reinvent primitives (e.g. exceptions, generators, maybe
> someday coroutines). ...
>
> Ah, I see; thank you. I wasn't sure whether you were
> usng "regularity" to mean "familiarity/standardization"
> (which is what you seem to mean after all) or "internal
> design consistency" or "orthogonality of design/
> separation of concerns".
>
> --Guy Steele
>