

Seaside: Your Next Web App Framework - fogus
http://www.linux-mag.com/id/7424/

======
conorgil145
I have only been working with web technology for about half a year now, but I
have worked with JSP/Servlets and Tomcat, RoR, JQuery, Prototype, JSON, XHTML,
CSS, PHP to name a few and read countless articles on many more. While I was
reading this article I thought Seaside looked worth investigating, but the
main thing that stuck in my head was "Hmm. ANOTHER framework that I should
look into that uses ANOTHER programming language and has different quirks and
different advantages and different requirements than the others that have
learned. I wonder if I will ever have the time to play with it...."

does anyone else ever feel overwhelmed and have trouble deciding which tech is
the best and which to devote time to mastering? I know it depends on the
developer and the specific project, but for someone relatively new to web tech
in general how should I determine which to pursue?

~~~
nir
Personally, I prefer to give new technology some time to mature before using
it on anything important (and, as result, becoming competent with it), but I
do try to look into new stuff just to see the ideas and approaches behind it.

For example, when Rails was new, I built a small personal project with it
(<http://notifyr.com/>). It was a pain to deploy and I wouldn't use it on a
production site (not that it couldn't be done, I just didn't want to deal with
it. We're talking pre-Mongrel), but understanding concepts like MVC or CoC
changed the way I was coding PHP profoundly, and made it easier to get
competent with Rails once it was more mature.

(There is an exception, though: Some people make a living following tech hype.
When a new technology starts getting mentioned in places like Wired or the NY
Times, there's bound to be an unmet demand for coders who can use it. This can
be pretty lucrative, but OTOH working with people who get their tech
perception from these sources can be, er, interesting)

As for knowing stuff like CSS, JQuery, Prototype etc, I treat it like foreign
language - you need to know enough to get around, perhaps express simple ideas
or read the newspaper if you stay for a while. But you rarely need to know it
at a Shakespeare level.

~~~
conorgil145
I think that waiting on a technology to mature is the right way to go in
general. One of the challenges I have faced is that since I am just learning
about a lot of web tech there is already an enormous amount of mature proven
techs out there and deciding how to filter them can be overwhelming at times.

I think I will continue to _really_ focus on the things that I am comfortable
with and read about and slowly investigate the mass of other things available
out there. Thanks for the suggestion/info

------
coconutrandom
Seaside HTML templating is also done with Smalltalk. For example, to get…

    
    
      <h3>hello</h3>
    

… in Seaside you write:

    
    
      html heading level: 3; with: 'hello'.
    

ouch.

~~~
mahmud
Don't fight the language. Accept it, learn it well, and create amazing things
with it. One man's "ouch" is another man's "halelujah".

P.S. We, CLers, had various html-embedding formats battle it out over the
years and it seems like CL-WHO won.

    
    
      (:h3 "Hello)

~~~
gcv
I agree that it's very cool to transform your display code using macros, but
it's a non-starter on many projects, because you can't farm out the HTML/CSS
work to a designer.

~~~
draegtun
Only farm out CSS. Markup is probably better (in most cases) with the
developer IMHO.

~~~
coconutrandom
Perhaps optimally.

But, I've worked with many a developer who couldn't tell you why divs differ
from spans.

~~~
draegtun
Well we've all been there ;-)

Still think of the HTML in the same vein has producing JSON, XML, etc. The CSS
is then just the design logic maintained (hopefully!) by the designer.

------
gcv
I've been interested in learning Seaside for some time, but the one time I
downloaded and looked at Squeak, I couldn't make heads or tails of it. I know
I should probably have made more effort to sit down and plough through
documentation in detail, but... well, it's hypocritical for an Emacs user to
say so, but the whole thing looked incredibly dated, alien, and unattractive.

For the Smalltalk and Seaside experts here: is there a Smalltalk environment
which supports Seaside, (ideally) runs on a Mac and doesn't make me learn a
whole new set of UI conventions, keyboard shortcuts, and so on? (I'll accept a
Windows or Unix environment I can run in a VM.) It does not have to be free or
open-source, but must have a free trial version I can play with.

~~~
musiciangames
Hi gcv, I would try the Seaside one click experience on this page:

<http://www.seaside.st/download/squeak>

34.7MB - just extract and double click.

A picture of the UI here (300K):

[http://farm3.static.flickr.com/2518/3745940640_d0c6c8062f_o_...](http://farm3.static.flickr.com/2518/3745940640_d0c6c8062f_o_d.png)

To get a feel, you could look at:
<http://localhost:8080/seaside/examples/examplebrowser> (use the pulldown at
the top left) and <http://localhost:8080/seaside/tests/scriptaculous>

Good luck, ...Stan

edit - It's on Pharo, which is essentially a version of Squeak completely
cleaned up.

All free under MIT licence

------
gamache
My biggest complaint with Seaside, admittedly informed by little personal
experience, is that it resists scaling horizontally. Continuations are server
state. Unless you go to lengths to freeze this state into a DB repeatedly,
your web app becomes dependent on the user connecting to the same server over
and over again, confounding traditional load-balancing and scaling schemes.
Vertical scaling is at the end of its usefulness these days; the future is in
horizontal scaling and to my eyes, it's just not what Seaside is good at.

~~~
draegtun
Session Affinity is one of the problems.

Still there are solutions:
<http://continuity.tlt42.org/Performance_and_Scalability>

~~~
gamache
That counts as "going to lengths to freeze state to a DB repeatedly". :) It's
a little brutish, but I'm sure it's effective.

------
lsb
What an unhelpful example of using continuations.

Form verification always happens first on the client (to avoid a server
roundtrip), and only if the user doesn't have JS enabled does it hit the
server. When presented with that problem, not having continuations on the
server isn't nearly as much pain as switching between languages to write the
same verification code twice.

This isn't to say that using continuations for such a purpose isn't snazzy,
it's just that, among all the crap you have to do to have form validation,
that isn't big, in the total scheme of things.

Are there any really major uses of continuations? I remember hearing that
Viaweb used a continuation-based thing to do color-picking and take you back
to the same page, but nowadays that'd be done with Javascript popping a window
up.

(This comment box's continuation expired. That's a pretty unhelpful
application of continuations.)

~~~
igrekel
I agree that the continuation example is weak. It is also generally accepted
in the seaside community that continuations are becoming less useful now that
ajax like solutions are widespread. In fact, continuations are more of an add-
on in the upcoming Seaside 2.9. But even without continuations, Seaside is
very different and useful for building web applications.

------
mahmud
_Squeak Smalltalk and Cincom VisualWorks both provide distributed development
tools similar to _got_ or mercurial_ [underlines mine]

What is it _linux_ -mag? spell-checker wont let you say "git"?

------
sant0sk1
I think Cappuccino is my next web app framework. What is everybody else
looking at next?

~~~
mahmud
Cappuccino? You're looking at Seaside, reflected on a shattered fun house
mirror. Impersonator, meet the real Elvis.

If Objective-C is a gold Canadian dollar, Smalltalk is the Aureus die from
which the imperial roman wealth was forged.

~~~
coconutrandom
"If Objective-C is a gold Canadian dollar, Smalltalk is the Aureus die from
which the imperial roman wealth was forged."

Beautiful. Because of that imagery, I'm looking more into Smalltalk now.

