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]

Reply via email to