[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
A plea for a new old language
I just spent part of last night and a bit of this morning putting
together a layman's explanation of continuation passing style. I
have, at this point, finally realized how useful it is in some
circumstances and the possibilities it gives for runtime
optimization. I like it, and I *really* want to switch Parrot over to
a CPS. (Or is that "CPS style"?) The languages I care about aren't
going to pay any more for the things that continuations require.
But I can't.
Continuations, bluntly, give people the screaming heebie-jeebies.
This is partly because continuations are just very different from
what people are used to. And partly because they're presented in
conjunction with Lisp and/or Scheme. It's a double whammy--if
continuations themselves don't get folks, Lisp/Scheme does--and
because of it folks run screaming from continuations. That's a damn
shame.
I want to use CPS in parrot. The performance impact they have doesn't
affect me, since I'm already paying it, and I could actually get a
win in some circumstances. Plus it simplifies the heck out of tail
call optimizations. If I go CPS, though, I'm essentially waving a
Lovecraftian horror at my developer base, and I just can't do that.
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.
--
Dan
--------------------------------------"it's like this"-------------------
Dan Sugalski even samurai
dan@sidhe.org have teddy bears and even
teddy bears get drunk