And how easy is it now to move applications between environments? I remember that, when I looked at Seaside, due to all that "liveness" it was really hard to separate an app from an environment, so people would essentially carry away the entire smalltalk environment with it. Seemed quite sketchy and hard to use (and deploy) in the real world, but I could be wrong.
If only there were decent frameworks in LISP...
I can feel your gears turning. That's
a good thing!
1) PHP is nothing but a template file
(with embedded programming)
2) WO has a template file, a programming
file, and it also has "in-line" binding which I've never been
a fan of. Then there is the OGNL too...
3) Seaside is nothing but programming
So PHP is on one side and Seaside is
on the other. WO is in the middle.
We all can agree that the PHP, JSP,
etc. way is a nightmare. You can make good software but you have to work
WO way is better. For many years I really
liked the way the .html / .wod was nothing but presentation and bindings.
OGNL is cool for quick and dirty but it didn't feel right to me being too
cluttered like the PHP way and hard to debug. Inline bindings also clutter
the HTML file and never resonated with me either. Maybe... perhaps its
cool for a WOString with a single value but anything other than that...
I'd rather someone use the .wod file. The Apple way was insane, you had
to do all inline bindings or none. The WOnder way is best, able to mix
In WO there is the minor hassle of finding
the line in HTML that matches up with the .wod file. Using WOlips this
is easy because it finds it for you and jumps you right there to synchronize
the two files in a split view. One thing WOLips can't do is refactor that
code. Only Java code is refactorable. You also have to be extremely astute
that you output correct and balanced HTML
Seaside way is best. By using a living
language, everything is immediate, you don't feel the urge to cheat like
with OGNL. By removing the template file entirely and using objects you
get so many benefits.
1) No extra files to coordinate.
2) no HTML syntax problems.
3) you can refactor ALL of your code,
not just the business logic.
4) you can still partition your presentation
logic - but instead of putting it in a different file you put it in a method.
5) did I mention everything is alive?
There isn't even a source code file to deal with. No compiling, no interpreting
static files, no need for an add-on like JavaRebel. In Eclipse you can
query for methods given part of a name you remember. In Smalltalk you can
query for methods that take such and such parameters and evoke a certain
value, you don't even have to know the method name. Smalltalk will immediately
give you a handful of methods that do "greatest common denominator"
for example. "Living" versus "Living Dead" there is
a difference but I digress.
Here is an example of how presentation
is rendered in Seaside. Bare in mind that "renderContentOn" is
akin to "appendToResponse". And that "html" is an object
which gets passed into the method that is a bit like a WOContext and a
String buffer rolled into one. In this example it is going to render an
HTML table with table rows and table data cells:
html table: [
html tableData: [html
text: 'Table entry']];
html tableData: [html
text: 'Table entry']]].
Look foreign? Perhaps but it's worth
getting your feet wet and kicking these ideas around. I've seen many things
and this is the first set of tools and processes that make me feel good.
Like it is equivalent and perhaps better than WO. It's brain dead easy
to install and there are a number of tutorials out there.
Chuck Hill <email@hidden>
09/27/2011 06:02 PM
WO people for startups (cult of the dead)
On 2011-09-27, at 9:19 AM, email@hidden wrote:
> What is cool about Smalltalk / Seaside with respect to WO?
> 5) Even better than "in-line" binding it has no template
file what-so-ever by design. All your HTML output is coded in the programming
language. No more unbalanced DIV tags. Everything is refactorable.
Is that better? In my imagination that makes it like PHP. Would
that not obstruct what little view of page structure that is still there
Chuck Hill Senior Consultant
/ VP Development
Practical WebObjects - for developers who want to increase their overall
knowledge of WebObjects or who are trying to solve specific problems.