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

From: Shriram Krishnamurthi (sk at cs.brown.edu)
Date: Sun Jun 14 14:11:50 EDT 2009

>> 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.

Obviously.

> 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.

Most of the work on this is pretty cruddy to the point of not being
useful at all (or even wrong, in that it confuses causes and effects,
or fails to account for confounding variables).

I'm starting a new project at Brown (collaboration with WPI and a
person in Boston) that is doing this from first principles in a more
rigorous way.  There are numerous issues that warrant studying here.

> 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.

When you read SLaTeX'ed code, the keywords are written in boldface.
Function names are not.  So the distinction is made clear.  DrScheme
could do this on Check Syntax (though it presently does not).

> 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
> regular.

Yes, I know.  And I not only understand your claim, I even somewhat
agree with it.  On some of our mailing lists you'll see me arguing for
internal keywords and other "signposts" for reading.  And in PLT, we
have experimented with infix syntax multiple times.

Unfortunately, designing a good infix syntax seems to be staggeringly
hard, and the results can feel much worse than Scheme when it's done
poorly (cf. JavaScript).  And even when someone thinks they have it
right, they make absolute idiots of themselves by publicly blogging
their ignorance about tail calls. (-:

Shriram


Posted on the users mailing list.