Clementson's Blog

Bits and pieces (mostly Lisp-related) that I collect from the ether.

November 2003
Sun Mon Tue Wed Thu Fri Sat
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
Oct  Dec

Article about Seaside - a continuation-based Web Framework in Smalltalk

Friday, November 14, 2003

Sven Van Caekenberghe recently wrote an article about building a web framework in CL (I wrote some comments about that article here). He has recently been experimenting with Seaside, a Web Application Framework for Squeak Smalltalk. His new article (A Day At The Beach) talks about the difference in approaches between traditional web frameworks and Seaside. He starts off by describing the problem:

"Building advanced web applications is notoriously hard and complex. The current state of the art is a modified version of the model-view-controller paradigm, implemented with some kind of server pages, web actions and an object model. But even using the best framework in an advanced environment, there are some major problems. The request-response cycle of HTTP remains visible, the statelessness of HTTP requires often complex session management, form processing remains an annoying, repetitive task and there is no such thing as components that can be combined freely. "
He then describes why the Seaside approach is different from the current state of the art:
"Seaside hides the HTTP request-response cycle and models the entire user session as a continuous piece of code, with natural, linear control flow. A web application consists of number of composable components with standard call-return semantics. Seaside can handle the backtracking and parallelism inherent to web browsers. An HTML generation framework and an advanced call-back mechanism for links, actions and forms further simplifies development. "
He follows this up with an example application and concludes:
A Day At The Beach: "After just one day of experimenting with it we were convinced about the dramatic improvement in abstraction and productivity it offers. We were absolutely amazed at how easy it was to do the examples described here: much, much easier than it would be in any other framework that we know of. We believe Seaside could be a killer application for (Squeak) Smalltalk."
Why am I talking about a Smalltalk-based Web Application Framework on a weblog that is ostensibly devoted primarily to Lisp? Here's a comment that Sven made when he posted the announcement of the new article to the clump mailing list:
There is a link with Lisp though: the underlying concept that makes Seaside so special - using continuations to hide the request-response cycle of HTTP and present it as a natural linear flow - is actually a (re)implementation of concepts that originated in the Scheme community...

emacs Copyright © 2005 by Bill Clementson