Seaside to Calm the Continuations #
Avi: One thing I’d like to do is reduce the dependence of Seaside on continuations – they drove a lot of the initial interest in the framework but they’re becoming (or seeming) much less important over time, and the use cases to which they’re best suited are these days often addressed with AJAX instead. Right now they’re creating an artificial barrier which stops Seaside from being ported to some dialects (like Strongtalk, Smalltalk/X and VAST) which don’t support continuations but would still benefit from a continuation-less Seaside.
I guess sometimes when you drink from the Holy Grail too much, it begs to be put back up on display in the china closet.
MenTaLguY
Wow, classy metaphor.
asno
Perhaps continuations are just a solution looking for a problem in web applications? Just because something can be done doesn’t mean it should be done.
FlashHater
Yey for never learning about continuations, except for their ability to help you go back in time.
MenTaLguY
That whole “time travel” thing is a misconception: continuations don’t rewind the clock on the state they capture any more than closures do.
A continuation is just a closure that remembers its call stack in addition to its lexical environment.
In fact, in Ruby, continuations are implemented by cloning the thread state at the site the continuation is taken, and then restoring that saved state when the continuation is called.
(Which raises the obvious mystery of why Ruby continuations are so slow, given they shouldn’t need to be any slower than a regular thread context switch…)
Peter
asno: I’d say that it’s more the reverse. Continuations are a pretty natural way of coping with the statelessness of HTTP . Whether or not the tradeoffs are worth it is a completely different question of course.
Though that might be your point.
DocSavage
Ditto on the metaphor, but I guess you aren’t using Holy Grail in the Dan-Brown-sense, eh? :)
MenTaLguY
Can we just, like, forget Dan Brown? Seriously.
larios
The pdf about Seaside was typeset in LaTeX rather than being the output of a Keynote presentation. What does this say about the Seaside user community?
Slava Pestov
it says that they’re trying to offer useful documentation, not just bullet-point sound bites for managers and other lesser lifeforms.
defunkt
dan_brown -= 1
LninYo
continuations good for make benefit
LninYo
continuations good for make benefit
larios
...then Camping documentation must be for sea grapes, Tamias striatus, and tarsiers.
fred
Do continuations not involve performance issues?
ich
The first could probably be replaced by escaper blocks, the second not. But Strongtalk, Smalltalk/X and VAST are dead anyway. Just look at their presence at ESUG . If they had any development resources they would just add support for continuations like GemStone.
MenTaLguY
fred: you’re always going to have the overhead of saving/restoring the call stack with continuations. That overhead is generally going to be lower (sometimes even “free”) with “stackless” interpreters, and higher with implementations that rely on the C stack (like Ruby’s current interpreter).
Still, in Ruby, thread context switches involve saving/restoring the call stack too. It should be possible to make continuations at least as fast as that.
gcorriga
larios: that’s a paper for a conference.
crazyCat
Oh come on. MenTaLguY just doesn’t like Dan Brown because he challenges the church. Actually, it would be great if the church would get away from continuations also. It seems like every other pope context switches back to the middle ages where it was ok to believe in fairy tales over science. That behavior just isn’t portable.
LninYo
LoL@crazyCat
jbwiv
crazyCat…nice. You’re obviously a brilliant life form.
The biggest limitation of human intelligence is an over-inflated confidence in…human intelligence.