[Seaside] Re: Seaside & Ruby Rails Compared
cdshaffer at acm.org
Wed Sep 7 14:16:31 CEST 2005
Günther Schmidt wrote:
> 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