Been a while without an entry... hopefully I'll get back in the swing of things soon.
Fellow Smalltalk blogger Travis Griggs was "totally impressed" by Seaside. That's great to hear; I was especially interested by this comment:
One of the great ironic comedies of Seaside (to me at least) is its _very_ linear/procedural user interaction metaphor. And its implemented in one of the quintesential "pure" OO languages! It was like those first command line interfaces I wrote in Fortran; I giggled childishly, when Seaside's "call:" method was introduced and wondered if I was going to see a "common block" next. Seriously though, this makes sense to me. A web app is limited to a single thread flow of user interaction. Cool stuff.
First off, I should point out that it's a little less linear than it seems: Seaside can keep track of a separate linear interaction flow for each element on the page. Think of it like having a thread per window, except with "window" here mapping to the sidebar of your site vs. the main content, or to one particular blog entry in a list of many. As far as I know, this is unique to Seaside - the other handful of continuation-based web frameworks out there (and pretty much any other web framework, for that matter) assume that navigation happens at the level of the entire page.
However, the basic thrust of the comment, that Seaside allows a return to the simplicity of PRINT and READ programming, I think is dead on. The key thing to realize here is that the web *is* this simple. It's a modal, linear interface (except with the nice ability to fork the linear path at any point by using the browser back button or opening multiple windows at a time). It's just that people haven't yet had the tools to capture that simplicity, and so have been stuck with the artificial complexity of the event-driven request handler model. This gets back to my Ptth! posting: most web development is like using a version of BASIC where every call to READhas to be immediately followed by a call to GOTO. Pretty hard to string a coherent program together that way, nu?