[racket] Server side continuations

From: Eli Barzilay (eli at barzilay.org)
Date: Mon Jun 13 19:06:45 EDT 2011

15 minutes ago, Sam Tobin-Hochstadt wrote:
> On Mon, Jun 13, 2011 at 6:46 PM, Eli Barzilay <eli at barzilay.org> wrote:
> > 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.
> 
> You seem to be primarily interested in making jokes here, rather than
> discussing web programming.

That goes perfectly fine with this thread starting as a 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.
> 
> That is not true. The event-driven structure of all JavaScript code
> is an important part of why node is fast.  That's what JS engines
> are good at, among other things.

To make it painfully clear, "even driven" is just another word for
"callbacks", which is another word for "explicitly CPS your code".  If
you don't see what's lost here, then you're in the wrong context.

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



Posted on the users mailing list.