[Seaside] Another Seasider newbie's experience
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
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