[Seaside] Another Seasider newbie's experience

itsme213 itsme213 at hotmail.com
Sun Mar 30 14:55:07 UTC 2008

Just thought I would summarize my experience with Seaside (thanks Cedrick). 
I just started ~4 months ago, I'm relatively new to Seaside and Smalltalk 
and Web, I have prior experience with objects. I have not tried using Aida.

The Seaside community, both on this list and through private emails, has 
been astonishingly helpful (you know who you are :-) Ramon's blog was a big 
help, as were some assorted tutorials on the web. I did not make much use of 
the Pottsdam tutorial.

The forthcoming Seaside book should be a huge help (Hurry up, Stef, 
Lukas,... :-). Beginer docs (like Aida appears to have) were hard to find.

The html-in-code was easy with Seaside's Canvas, once I understood how the 
Brushes  intervened.

Callbacks were trivial to program, apps with whole-page refresh very simple 
to do, though the use of #state never quite fit my needs.

Dealing with pure Smalltalk objects and callbacks on the server, with 
Seaside taking care of generating all string keys and mapping back to 
Smalltalk, a pure joy.

It took a while for me to get used to pulling in CSS and JS files into the 
image, changing CSS in method-body strings, and serving them out via 
FileLibrary accessors. It was also very frustrating figuring out that 
FireFox cached all this stuff unless you actually went into about:config and 
tweaked a parameter to turn it off.

Basic components were easy once I understood #children (which Seaside uses 
for several things like updating URLs and headers). I am curious if Aida 
requires something like #children, and what trade-offs it makes.

Ajax components were not easy, I went through a few depressing rounds of 
worrying about how much more I still had to understand to be productive. I 
was pushing Ajax a bit more than Seaside 2.8 was originally architected for. 
If you have the callback of one component changing and re-rendering the 
component-tree structure in a distant component, you better know what you 
are doing (and use Lukas #in:do: solution, see nabble archives). The way 2.8 
does callback processing down the component tree in the presence of Ajax, 
depending on when the last complete #render:aComponent was called, is too 
complex for an app-programmer to have to understand; #in:do: seems to be a 
2.8 fix, and this issue is scheduled to disappear in 2.9.

People have different opinions on a generic Seaside component library that 
fit together within a slightly higher-level UI framework. Personally I think 
it would be a huge asset, and would be delighted if Seaside (not "core", 
perhaps a separate package) made some opinionated decisions in this regard.

My 2 c,


More information about the seaside mailing list