[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: What is a lightweight language

Dan, you're basically making my point for me.

You're saying that working stiffs will (a) rarely learn new languages,
or (b) learn one if it solves their job.  They encounter a problem,
which "in all known languages can only be expressed poorly", so they
search the Web or browse their bookstore for a cookbook.  If the
cookbook tells them how to solve their task, they get persuaded that
maybe this language really is for them, after all.

None of which has anything to do with continuations.

The Scheme community's problem is one of too much cleanliness.  Grand
textbooks, spartan reports -- all very good, but not helping any
programmer solve specific problems.  And if those are the only
documents you have to page through, yeah, you'll run into
continuations, and if the documents don't tell you better, you might
think you need to know about them.  But the bottom line is still the
same: people don't put these documents down because they mention
continuations; they put them down because the documents don't say
anything about *how to use Scheme to solve problems*.

We're fixing that.  Dorai Sitaram's "Teach Yourself Scheme in Fixnum
Days" is the opening salvo; I like to think "How to Use Scheme" will
be the main artillery.  It talks about problems and describes their
solutions.  One of these problems will be building interactive Web
services.  And its solution will be to use the primitive SEND/SUSPEND
which sends a Web page, suspends the computation, and resumes it
resume automatically when the user responds like nothing happened in
between.  And the fact that SEND/SUSPEND is a fancy name for
CALL-WITH-CURRENT-CONTINUATION ... well, nobody needs ever know that.