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

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Sun Jun 14 14:38:35 EDT 2009

On Jun 14, 2009, at 1:54 PM, Luciano Ramalho wrote:

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


(Luciano, you don't have to call us professors or anything. The fact  
that we have academic titles is meaningless. Too many 'professors'  
think the title is enough to intimidate people into believing them.  
It's awful. The fact that we're older is meaningless, too. It just  
means we're closer to death (on the average).)

What is meaningful is that we have demonstrated and keep  
demonstrating a broad and deep grasp of the material.

As for syntax, I think you're onto something. It is also true that  
even we're stumped when reading others' code. I bet that I could  
stump Shriram with 1000s of snippets of code from our code basis and  
I bet that the converse is true, too. While it is true that tools and  
experience in reading lots of code help people like us a lot, a tool  
solution is also unsatisfactory. Everyone claims that everything can  
be solved with tools, and we kow from decades of experience that  
linguistic solutions are almost always superior in the long run.

As for types, please do respect that we have tons of work behind us  
with typed models of languages and meta-theorems concerning types.  
When we actively choose not to program in an existing typed language  
(but yes I have started to program in Typed Scheme) then there is a  
reason.

As for type is a type, please do read the papers on loop holes in  
languages, probably starting with Albert Meyer's papers and Luca's in  
the 1980s. When Python makes something look trivial, it's probably  
wrong.

As for run-time tags, please everyone do understand that types should  
really be our terminology for things that are checked before the  
program runs and whose purpose it is to help us enforce a discipline  
of data (abstraction, as things are always called abstraction in CS)  
onto our programs.

Tuning out -- Matthias



Posted on the users mailing list.