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

Re: A plea for a new old language

On Wed, 7 May 2003, Dan Sugalski wrote:

> So, the plea. Someone, anyone, *please* thump a procedural and/or OO
> language to add in continuations. *Please*. If I had a base of folks
> mildly familiar with continuations that didn't have a pavlovian
> reaction to them things would be a lot better for me, and while
> that's not going to happen maybe it will for the next slob that gets
> stuck writing a language core. I'm trying to get Larry to do it with
> Perl 6, but that's a ways off. Ruby does them but it's a little-used
> feature. Beyond that... well, AFAIK, beyond that there's nothing. And
> I'd really like there to be.


People are going to start accepting continuations not by being made to
understand how they work, but by seeing concrete, useful things you can
*do* with them.  Eventually, call/cc will hopefully get its "killer app"
that will be compelling enough to bring continuations on to the radar of
language designers and implementors everywhere.

My money (literally, in some senses) is on using continuations to model
web applications.  The degree to which a properly designed,
continuation-based framework can increase the readability and reusability
of web application code is absolutely stunning, and it's a technique that
deserves to revolutionize web development.  It's too bad that Scheme and
Smalltalk don't "count" for what you need, because the PLT web server and
my Seaside web framework are both excellent (IMHO) examples of
continuation usage.  But there are others: the Cocoon project, for
example, is using a version of JavaScript modified to support call/cc, and
as far as I can tell their mailing list is raving about it.  You may also
remember my talk on this topic at RubyConf - somewhat ironically, I'm
quite certain you were there because you ruined the impact somewhat by
claiming that you could implement my example without continuations, in
Perl, in the same number of lines of code... ;).  The code from this talk
has become the "borges" project, although I have no idea how many users it
has in the Ruby world.

Ok, time to get off my hobbyhorse.