Hi Shriram - <br><br>thanks for joining the party and provide your thoughts ;) Please see inline... <br><br><div><span class="gmail_quote">On 5/1/07, <b class="gmail_sendername">Shriram Krishnamurthi</b> <<a href="mailto:sk@cs.brown.edu" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
sk@cs.brown.edu
</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>> We found it onerous to maintain a source-to-source compiler for all of
<br>> PLT Scheme, since PLT Scheme has grown into a sizeable language.<br>> Also, for *many* applications, the existing server infrastructure is<br>> fine. But then there is Jay's attempt to resurrect Greg's
<br>> continuation-mark implementation.</blockquote><div><br>It makes sense this is a onerous work - I worked out that it requires knowledge of PLT scheme itself and then I stopped (an aside - I guess what you are saying is that PLT is not using CPS underneath ;P).
</div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">> It's not outside the scope. The CPS or ANF+continuation-mark<br>> techniques are simply different implementation methods to take you to
<br>> the same end-point (of harnessing continuations). They do happen to
<br>> have very different properties in terms of "ilities": resources,<br>> bookmarks, and so on.</blockquote><div><br>(2 more cents from a practitioner) The ilities are of huge interest for developers wanting to develop huge scale web applications. I love the concept of continuation, and I suspect the scalability is higher than I give it credit for currently, but I haven't justified diving in head first due to the fear of committing to a ceiling on scalability in architecture that I can't fix.
<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">> Matthias is using state in a very specific, technical sense. In that<br>
> sense, continuations do not capture state; they capture "everything
<br>> but" state. If you're using "state" in a more informal sense to mean<br>> "the current situation of the program", then yes, continuations do<br>> capture that, but only partially. For instance, a continuation does
<br>> not capture the content of a shopping cart; this is why two different<br>> continuations both modify the same shopping cart. That shopping cart<br>> is precisely what Matthias calls "state".<br>
<br>> Does that make sense?
</blockquote><div><br>Okay - so state for you means the same for me - this is a good thing ;) I will retract my last question which ask this specific topic because I thought the understanding is different. And yes I can see why continuation doesn't capture state, but I intuitively understand the informal sense Grant refers to.
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">> Matthias is referring you to a few books you can read to learn more.<br>> Because I am biased, I would point you to mine, which is available in
<br>> full and free on the Web:<br><br><a href="http://www.cs.brown.edu/%7Esk/Publications/Books/ProgLangs/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://www.cs.brown.edu/~sk/Publications/Books/ProgLangs/</a><br><br>> The material on state is written to, I hope, be relatively accessible<br>> to someone who is more of a developer than a researcher. Furthermore,
<br>> the book also has a chapter on continuations and the Web, and you may
<br>> find it fruitful to browse that, also.<br><br>> [Stay tuned for a major announcement regarding this book in the coming<br>> weeks, which I will post to this list.]<br><br>> Once you have been through both of these, you may find it instructive
<br>> to read our journal paper on the PLT server:<br><br><a href="http://www.cs.brown.edu/%7Esk/Publications/Papers/Published/khmgpf-impl-use-plt-web-server-journal/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://www.cs.brown.edu/~sk/Publications/Papers/Published/khmgpf-impl-use-plt-web-server-journal/
</a></blockquote><div><br><br>Thanks for the links ;) <br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">> Matthias said yes; I would say no. Ajax makes user-perceived
<br>> performance better; but Ajax does not make *development* easier, it
<br>> makes it harder.</blockquote><div><br>Agreed. <br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">> Worse, at this point, we have no story corresponding for Ajax
<br>> corresponding to what the PLT Web server infrastructure represents for<br>> traditional, synchronous Web programs. For this reason we've embarked
<br>> on a new language, Flapjax:<br><br> <a href="http://www.flapjax-lang.org/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://www.flapjax-lang.org/</a><br><br>> The idea is to tease out the linguistic primitives underlying Ajax
<br>> applications and reduce them to a small set of operations, just as we
<br>> have done for synchronous apps.</blockquote><div><br>I saw it - it's cool. From my perspective AJAX complicates the design of web software even further as one has to account for multiple levels of browser/server interaction. Unification of browser & server level programming (
e.g. write once, work as ajax and as non-ajax) is something that's also of big interest for developers, but perhaps this is more fitted toward implementation than necessarily research? ;) <br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
3. A more declarative way of writing servers, to compete with and do<br>much better than the Ruby-on-Rails style. This is something I'm
<br>investigating with Danny Yoo, whom many of you will recognize from<br>this list. We're still in the early stages of this one.</blockquote><div><br>Love to see this in action ;) <br><br>Thanks,<br>yinso <br><br>
</div></div>