Hi Chuck,
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 logic.
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 harder.
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 the two.
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:
renderContentOn: html
html table: [
html
tableRow: [
html tableData: [html text: 'Table entry']];
tableRow: [
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.
-- Aaron
From: Chuck Hill <[email protected]>
To: [email protected]
Cc: WebObjects Mailing List <[email protected]>
Date: 09/27/2011 06:02 PM
Subject: Re: Finding WO people for startups (cult of the dead)
Hi Aaron,
On 2011-09-27, at 9:19 AM, [email protected] 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 in WO?
--
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.
http://www.global-village.net/products/practical_webobjects
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [email protected]