[Pdx-pm] what's special about smalltalk

Randal L. Schwartz merlyn at stonehenge.com
Thu Mar 15 09:21:52 PDT 2007

>>>>> "benh" == benh  <ben.hengst at gmail.com> writes:

benh> I might be missing the point here but yes, jifty does emulate
benh> continuations like seaside. As to how they go about it.... not a clue.

One advantage seaside has over most (all?) other systems is that the webserver
is monolithic.  I can leave a closure block lying around on server side with a
unique ID, hand you that ID, and when you come back on another hit with that
ID, I can go right to *that state* again.  This is the holy grail of web app
design: to turn the "stateless" web into a "stateful" app.  Using this, I can
take a fairly straightforward "classic GUI" app and "Seaside" it in just a few
steps... what would have been a dialog box turns into a screen, etc.

>From what I've seen of Jifty, it's a simulation of this, because the web hit
to the next apache process is in a different Perl instance from the previous
hit.  But they get you back into the same "state" of the app.  I do a similar
thing with CGI::Prototype for interstitials - with a little bit of care, the
interstitial can sequence through a series of steps working toward a
conclusion ("logging in", "verifying authentication", "caching current
information") before delivering the final pages.  To the programmer, it looks
like you're magically coming back to the "same place", even though there's
been an intervening web hit.

But seaside is the best way... instead of having to pass the state via hiddens
or id-keyed serverside info, you simply "hold the state" waiting for it to be
reactivated on a future hit.

Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095
<merlyn at stonehenge.com> <URL:http://www.stonehenge.com/merlyn/>
Perl/Unix/security consulting, Technical writing, Comedy, etc. etc.
See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!

More information about the Pdx-pm-list mailing list