[Seaside] Re: Seaside & Ruby Rails Compared

David Shaffer cdshaffer at acm.org
Wed Sep 7 14:16:31 CEST 2005

Günther Schmidt wrote:

> Göran,
> Sort of, persistence is a fundamental problem for any type of
> programming one does.
> So a while back I checked all sorts of propagated *solutions* and
> found none of them to be *ideal*.

Yes, none of them are ideal.  Nothing to do with Squeak or Smalltalk
though.  Persistence sucks.  One problem with file-based solutions in
Squeak, though, is that squeak file I/O is blocking (at least under
Linux).  That is, the whole VM blocks while file I/O is performed.  This
can make your application unresponsive while writing out large image
files.  David Lewis provides a "saveImageInBackground" method (sorry,
name might not be exactly correct) in his OSProcess package for UNIX. 
In principle it forks the squeak image the the forked image saves under
a timestamped name.  This leaves the original image to continue serving
connections.  I think this would be an great performance boost for
image-based persistence folks.  Unfortunately I seldom have small enough
data sets to hold them entirely in the image and swapping ImageSegments
in and out isn't very appealing either.

> That is very good news, I'll check into it more thoroughly then.
> The problem with that is that I still haven't made up my mind entirely
> which Smalltalk to use in the long run. Frequently switching between
> Dolphin, VW and Squeak.

Hmm...depending on the size of your database, you might consider
SPrevayler.  Should be portable.  I've (only) played with SPrevayler but
I recommend that you look at it if you don't mind building every
db-changing action as a "command".

>> I have only played with Magma, but I think it has matured enough to use
>> (even though I can't say anything about criticial use). GOODS is quite
>> proven and Avi has used it quite a bit I understand - and of course
>> other communities outside of Squeak (it is language neutral).

GOODS is great but network I/O intensive.  You can use it pretty
transparently until you need fancy indexing and whatnot.  I start every
app with GOODS.  Zero work to get going...doesn't bleed into your
business objects too quickly.  If things go wrong I can always fall back
on OmniBase (used it many times in VW and ST/X) or PosgreSQL.


More information about the Seaside mailing list