[plt-scheme] The perfect teaching language--Is this too much to ask for?

From: Luciano Ramalho (ramalho at gmail.com)
Date: Sun Jun 14 13:54:56 EDT 2009

On Sun, Jun 14, 2009 at 2:24 PM, Shriram Krishnamurthi<sk at cs.brown.edu> wrote:
> My talk was meant to be at least partially rhetorical, and those
> bullets were not meant to be taken *too* seriously.

That much is clear. It was a good talk, though. Thanks for making it
available with the audio file.

> I don't think you can apply glib arguments like Don Norman's to a
> situation complicated like language syntax.

I don't think it is a glib argument at all, perhaps my very short
rendition of the argument is glib.

Concrete language syntax is meant for humans after all, so I the
perspective from user studies is very relevant.

By the way, if some of you have pointers about human factors in
programming language design, I am very interested in studying that,
perhaps even as a main focus in graduate school.

> First of all, Python too
> has various similarities (good heavens, it uses ASCII syntax for
> *everything*); second, Scheme has only a few concepts; third, your
> argument is sort of bogus, because
>  (x y z)
> cannot be a macro unless you've defined `x' to be a macro keyword.

OK, but there are numerous macros or special forms that are
pre-defined in Scheme, and many of them look like (x y z) but have
different evaluation rules.

> There are no "higher-order" macros, so if it's a macro, it has to be
> the name of a macro keyword, nothing else.  This is why, fourth, this
> is virtually never a problem in practice.  People program in a
> well-subscribed (super)set of Scheme, and that's that.  In PLT, we
> make this (super)set completely explicit with the #lang qualifier.
> It is true that if you don't know what macros are operational, you can
> be in some trouble.  If you're in DrScheme, this problem goes away.
>> Probably there have been worthwhile discussions of this in the past.
> Not to be too cynical, but precisely this discussion happens on some
> parenthetical list or the other about once every two years.  In
> response, I feel there should be a new kind of FAQ called a FooAQ.  In
> a FooAQ, you only list the (frequent) questions.  The response is
> always the same: "Foo".  Meaning, "We've had this debate for decades,
> and nobody has resolved anything because everyone (eventually)
> understands the trade-offs".  (Yes, "Foo" is a macro.)

Prof. Shriram, I never meant to convince you or anyone else here that
the "usability cost" of parenthetical syntax outweights its benefits.
Even a newbie like me understands the trade-off and appreciates the

I just wanted to point out that the "simple" syntax of Scheme does not
make it necessarily easier to read than other syntaxes that are not so



Posted on the users mailing list.