Programming for non-programmers (was: Re: [plt-scheme] Debugger: How much work to implement?)

From: Eric Kidd (eric.kidd at
Date: Wed Oct 13 07:44:15 EDT 2004

On Tue, 12 Oct 2004 20:00:02 -0400, Prabhakar Ragde
<plragde at> wrote:
> Forgive me if I'm being naive, but it sounds to me as if a better
> approach would be to give your script authors some higher-level
> skills.

I actually work on this, too. :-)

Programming is a hard skill.  And the overwhelming majority of
programmers aren't very good it.  I've read that, to a first
approximation, most programs in the world are either Visual Basic
applications or small Perl scripts.  And even though most of these
programs would make a professional programmer cringe, they do real
work for real people.

Some people understand variables and functions, but don't quite grok
data structures.  Others may understand "for each" loops, but not

The Scheme Cookbook is tremendously helpful here, because it lets
people look up the different forms of named let, and see how each is
used.  A good editor is invaluable, because it can enforce indentation
and provide tooltips.  A debugger is useful, because it helps people
disprove their hypotheses.

There's two things I'd love to see:

1) Programmers should learn how to program better.  You're completely
correct that many people with undergraduate CS degrees have been
amazingly ill-served by their education.

2) Everybody should learn how to program.  As Guido van Rossum keeps
pointing out, there's no reason why every high school student
shouldn't be taught to write short programs--it's almost as important
as learning algebra.

Now, the teachers and professors on the PLT mailing list are world
champions at (1).  I've worked with programmers trained on HtDP by
various PLT folks, and they're great.  After a course or two, the
students actually understand programming.

But I also still hold out a hope of accomplishing (2)--teaching the
artists and writers of the world to write hundred line scripts.  And
in this case, I think it's a bit unfair to condemn people for using
cookbooks and adapting sample code.  Everybody's got to start
somewhere, and there's no fundamental reason it can't be Scheme.


Posted on the users mailing list.