4 ms·
My perspective on Seaside may be a little different, because I still remember Avi trying out many of the same ideas in Ruby, and moving to Smalltalk (at least i
by rcoder 16y ago
My perspective on Seaside may be a little different, because I still remember Avi trying out many of the same ideas in Ruby, and moving to Smalltalk (at least initially) because its continuations didn't leak memory like MRI's did. I also know from personal discussions that the Smallthought guys are very pragmatic about their tools: when Squeak/Seaside were the right tool, they used it, but when Ruby, Java, Javascript, or another language/framework made more sense, they weren't dogmatic about using it.
I'm not trying to downplay the importance of Smalltalk to DabbleDB, but it was just one piece of the puzzle. The same "use the right tool for the problem" attitude seems to be increasingly pervading Twitter these days, which I think has helped as much as anything else in their improved stability and scale over the last year or so.
- paulgb 16y agoThanks for the insight. I didn't realize that ruby's (former?) continuation memory-leaks were the the reason for Seaside being in Smalltalk rather than Ruby. In this case I wonder whether Smalltalk really is the right tool for the job. Smalltalk isn't a bad language but there aren't a lot of libraries available. I've played around with Seaside a bit and ended up having to rewrite some of the HTTP libraries to do what I needed. Unfortunately I can't think of another language outside of the LISP family that supports continuations well.
- jluxenberg 16y agoUnfortunately I can't think of another language outside of the LISP family that supports continuations well. Javascript has closures, which you can use to implement continuations. See http://marijn.haverbeke.nl/cps/ http://marijn.haverbeke.nl/cps/
- paulgb 16y agoFirst-class functions can be used for continuation-passing style, but to do what Seaside does elegantly you really need first-class continuations. There's an interesting article on how Seaside uses continuations here: http://blog.fitzell.ca/2009/01/seaside-partial-continuations.html http://blog.fitzell.ca/2009/01/seaside-partial-continuations...