[plt-scheme] Re: plt-scheme type of language

From: hendrik at topoi.pooq.com (hendrik at topoi.pooq.com)
Date: Fri Dec 11 15:05:11 EST 2009

On Fri, Dec 11, 2009 at 01:51:11PM -0500, Matthias Felleisen wrote:
> On Dec 11, 2009, at 1:06 PM, Artyom Shalkhakov wrote:
> >Hello Matthias,
> >
> >2009/12/11 Matthias Felleisen <matthias at ccs.neu.edu>:
> >>
> >>On Dec 11, 2009, at 11:47 AM, Artyom Shalkhakov wrote:
> >>
> >>>(To make it clear, having read PLAI and done the exercises, I have  
> >>>many
> >>>questions of the "why"/"why not" sort -- and those you've raised,  
> >>>and
> >>>I don't know which books to follow.)
> >>
> >>This is fair and I take half the blame as a non-co-author.
> >>I voiced just this kind of complaint when I first studied
> >>this kind of course (A Hitchhiker's Guide to the Meta-Universe)
> >>and I could and should have fixed this consistently -- but alas,
> >>after one or two courses that tried this, I went back to the old
> >>mold. Just show them the right way, there are too many ways to
> >>do things wrong, and too many silly arguments to take apart.
> >
> >I'm not sure I follow, sorry.
> >
> >Are you basically saying that a good way to teach students is to show
> >them the way that is considered "right" (by majority, by authority,
> >etc.)? Does "right" mean "established results" in this context?
> Yes. Consider an example such as dynamic scope for variables.
> I am pretty sure that very few people even discuss this idea
> in their courses. It was a historic mistake, and it got buried
> with Lisp. Even if you do throw in a lecture on dynamic scope
> when you cover lexical scope, it's just a waste of time --
> the disadvantages of dynamic scoping are so obvious that students
> just shrug their shoulders and move on. And yet, there are a
> few people left out in the world who every so often promote
> the idea.

Enough people that we keep getting languages misdesigned over this 

> So the problem is this:
> -- do we cover a lot of materials on what the community 
>    has recognized as good ideas in PL and friends?


> -- where do we cut some of this material so that we 
>    can explain why these ideas have come to be
>    recognized as better than others?
> -- if option 2, which material do you think we should cut: 
> 	-- lexical scope
> 	-- parameter passing
> 	-- types	
> 	-- direct interpreters
> 	   for state, functions/closures, the whole thing
> 	-- cps and continuations
> 	-- converting cps into register machines
> 	-- macros

You explain the conflicting ideas when you cover the main ones, but 
perhaps in less detail.  Then students can see the point.  Covering 
static scoping without covering dynamic scoping may well lead to 
understanding neither.

-- hendirk

Posted on the users mailing list.