Brian Candler <B.Candler / pobox.com> wrote:

> I think Seaside/Borges falls into this category.
> 
> I haven't had a chance to use it in anger, but I think the idea is that
> continuations can represent CGI session state; you code can be written in a
> linear fashion (e.g. display page, fetch response, display next page, fetch
> next response etc) without any explicit session maintenance. Furthermore, by
> retaining continuation objects which represent earlier pages, it will work
> even if the user clicks 'back' in their browser and re-enters data in a
> previous form.
> 
> I'd have a number of concerns in a practical application - I'd want old
> continuations to expire and be garbage-collected so that they don't cause
> infinite memory growth - but otherwise it sounds like a great way to write
> web applications.

It is.

I know of (and work with) about 5 or 6 companies doing ongoing
commercial development with Seaside.  The gains we've seen over other
approaches to web development are huge.  I'm a pragmatic guy; I've
built a lot of web frameworks, and discarded many of the ideas when
they didn't work out.  But I can confidently state that call/cc is a
strict requirement for any language I use for web development in the
future.  There's no going back.

I'd like to see the Borges project evolve so that the Ruby community
can really take advantage of this stuff - Eric's done a nice job
adapting my throwaway proof of concept to be somewhat robust, but it's
just the lowest layer of what we've been working with in Seaside. 
Maybe I'll find some time to write down the design in a form that
non-Smalltalkers can follow...