[plt-scheme] Re: Paren Paralysis Sufferers Unite

From: Morgan (lianciana at gmail.com)
Date: Fri Oct 16 17:53:05 EDT 2009

On 16 Oct, 22:09, Matthias Felleisen <matth... at ccs.neu.edu> wrote:
> Morgan,
> the real answer is that SICP got it completely, totally wrong. Lisp,
> Scheme, and related friends have syntax. All off-the-shelf languages
> have syntax, and if you don't know the syntax, the implementation
> reports errors assuming you know the *entire* language. (The problem
> is that in languages like Scheme or Perl, you get many errors reported
> when you *run* the program not before you run. But even then, the
> error message assumes that you know the *entire* language.)
> Because this project explicitly recognizes this fact and because the
> people who started it liked Scheme -- they could have liked Pascal, C,
> or Java instead -- they created teaching languages, which approximate
> the chosen language and provide error messages for the small language,
> which is usually easier to grasp than those for the full language.
> The person who maintains a lot of this work is super-curmudgeon Robby.
> What the other people pointed out to you is that {!@#$} languages have
> the exact same problem as Scheme. They are off the shelf and they
> provide bad error messages. Before you say 'no' reflect on this
> statement. The group respects people a lot more who reflect before
> they shoot, even though we are all from Texas :-)
> -- Matthias
> _________________________________________________
>   For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme

Hi dude!

I bought your book 'how to design programs' but haven't got a chance
to study it yet, I looked through it and it looks like it leads into
the language in a more gentle way than SICP, but our lecturer is a
'devout' SICPer, so that's our core textbook for this semester (god
only knows how we'll get through it in 13 weeks)

In any case, you've found the last person to disagree with you that
languages in general provide god-awful error messages.

I suspect, the idea of having a series of languages which progress
from the simple to the most powerful/knowledgble is one that will last
indefinitely even if the 'biggies' like C++ and Java haven't caught on
(to my knowledge anyway), good ideas never die, languages should be
like concentric shells, or like those tree trunk cross section
diagrams in operating systems books about the interdyanamic between
the person, software, the kernal, the hardware.

It would be cool, if we had a situation where the error messages could
be scaled down to a level of natural language where my grandmother
could potentially glance at the code snippet causing havoc and fix it
herself. A situation where everyone was some kind of programmer would
be great, a bit like a wikipedia arrangment where the experts provide
very domain specific knowledge, but everyone has an opportunity to
chip in, and in time, become experts themselves with enough usage.

I think I've heard of your 'teach-packs' for teaching languages, and
that's probably part of the solution to getting there. Ideally, we'd
want a world where people never get a error message coming back to
them in, of all the things, a list of hexadecimal symbols in the way
that windows likes to do to you.

Quite honestly, a wiki style of building systems like operating
systems or seriously big enterprise software, is probably the only
real way we're ever going to be able to build big complex systems that
don't have about a billion bugs in them. And the only way we're going
to be able to do that, is to start building programming languages than
can be converted module by module into various levels of simpler
natural language, little 'stories' for the users if you like whilst
maintaining the rigor nesscary for the code/story to be converted back
to it's original form and run on a processor properly. It's a helluva
lot of work to build such a thing, but something like this is
eventually going to have to happen. Have you heard of any projects
along such lines?

I have a link here to something quite similar to what I'm banging on


You'd need a way for the newbie coders to turn into experts, so maybe
a combination of a role playing game style attributes e.g. you fixed a
b c modules/stories, so maybe you get a silver star/experience points
and get more complex 'puzzles' presented to you in the category of
natural language problem solving that you are good at.

Eventually of course, they wind up being closer to what the machine
I reckon, of the top of my head, that 9/10 of all computer bugs are
relatively simple to fix, things like missing semicolons or off by one
errors in array loops etc. These could be represented as metaphors,
and attempts could be made to solve them via flash games with direct
manipulation maybe.

Anyway, goodnight! It's nearly 11pm in England. Probably early morning
for you Texas!

Posted on the users mailing list.