[racket] Server side continuations
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.
>> 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.
--
sam th
samth at ccs.neu.edu