[racket] Server side continuations

From: Eli Barzilay (eli at barzilay.org)
Date: Mon Jun 13 18:46:49 EDT 2011

Three minutes ago, Sam Tobin-Hochstadt wrote:
> On Mon, Jun 13, 2011 at 5:37 PM, Eli Barzilay <eli at barzilay.org> wrote:
> > On Friday, Shriram Krishnamurthi wrote:
> >>
> >> I wonder if he's read the structure of JavaScript programs, which --
> >> because of the cooperative multi-tasking structure of JavaScript --
> >> have to return control to the event loop (ie, "terminate") whenever
> >> they make an Ajax request, leaving *another procedure* to pick up
> >> the response if and when it arrives.  What a nifty pattern -- I
> >> really wish it had a name!  Oh wait, I guess these days it's called
> >> "Ajax" -- which makes it all good.
> >
> > But of course ajax is too vague an low level -- so it's wrapped in
> > things like node.js.
> This statement is very confused.  Ajax is a technique for
> single-page communication with the server from a browser.  node.js
> is a stand-alone version of V8, the Chrome JS engine, designed for
> server-side use a la Python, Ruby, Java, or Racket. [...]

It's confused because it's a joke on how people confuse these things.
For relevant example, if ajax makes all server side code unneeded,
then how come things like node.js are popular in the first place.  And
then the obvious way this would go is "but node.js does very well
without continuations" -- and that gets to the punchline of the joke.

> node.js does deliver impressive performance.

Whether it's impressive or not is unrelated to what it calls
"non-blocking even-driven", which is the connection that every page
that I've seen makes.

          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the users mailing list.