[plt-scheme] web programming, continuation, CPS transform, etc.

From: YC (yinso.chen at gmail.com)
Date: Thu May 3 01:28:40 EDT 2007

Thanks Shriram for the answers - please see inline.

On 5/2/07, Shriram Krishnamurthi < sk at cs.brown.edu> wrote:
> > Why would you expect PLT to use CPS?  Virtually no modern compiler
> > does.

It's just me being ignorant of compilers internals in general - thanks for
the tip.

> Understood.  I would say that the ilities are probably neither better
> > nor worse than you would expect, but just different.  We have, in
> > effect, run a many-year experiment using Continue, a semi-commercial
> > Web application for conference paper management written entirely in
> > PLT Scheme (continue.cs.brown.edu).  Over the years we have gradually
> > refined our understanding of its performance, and some of Jay's work
> > on continuation replacement strategies (not written up anywhere, but
> > I'm sure he can say more here if he feels inclined) stems from our
> > observations of this system (and of its sibling, Resume, which handles
> > the faculty job ads for Brown CS and was also used at Northeastern CCS
> > this past year).

Thanks - hopefully Jay would be feeling inclined to share ;)

> Yes.  For now I'm focusing on client-side computation.
> > Our view of the server has evolved. Initially we thought of it as just
> > a dumb repository of data.  But then when we saw that we had built a
> > fairly nice API for connecting to Web services, we realized that was
> > our way out of the "how rich a server?" conundrum.  I have written
> > this up on the Flapjax blog, where this post also takes some cracks at
> > the so-called "tierless" languages:
> > http://flapjax.blogspot.com/2007/02/tierless-tieranny.html
> > By the way, until now I knew of only one other person who understood
> > that the so-called three-tiered architecture is actually a two-tiered
> > *architecture*.  I was pleased to see from a throw-away aside earlier
> > in this thread that Matthias is the second such person.

Thanks for the link - I didn't know the term is tierless - not sure if I
like the name...  ;)

> No, it's also a research question, but not one I care about.  The
> > tierless guys are interested in this.  I think this is fundamentally a
> > confused question, though.  Putting things in different places
> > involves introducing a new (and significant!) locus of failure; you
> > need to worry about communication, synchronization, policies, etc.  I
> > don't think we're anywhere near being able to do such things
> > seamlessly.  *Furthermore*, whether you run on the client or on the
> > server has a huge impact on the kind of UI you write (imagine a
> > word-processor that ran purely on the server, and sent every keystroke
> > as a synchronous communication...).  So I focus on assuming that
> > people know what they want running where and will program to that.

In a way I thought this is what your research topic #3 would be, given your
interest in "competing" with RoR so to speak.  Perhaps we are not thinking
the same thing?

Your description of tierless is basically a higher level compiler/translator
that compiles code into the multiple tiers, and RoR or any other framework
all do that to various extent (I wouldn't really classify any of these as
languages though... maybe you are talking about other languages instead of
RoR/equivalents) - or am I missing something?

Agreed on whether the code runs on client or server makes a big difference,
and to me that's part of the challenge in spec'ing design/tradeoffs.
Definitely makes no sense to build a word processor running on a server, but
on the other hand, building a word processor with both client & server
components (without having to write the same logic more than once) to allow
for better collaboration than wiki sure does.  But this is just an
observation cuz you know that more than I do already ;)

Thanks for your time, Shriram! ;)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.racket-lang.org/users/archive/attachments/20070502/2c07e802/attachment.html>

Posted on the users mailing list.