Re: WebObjects vs. Microsoft's .NET
Re: WebObjects vs. Microsoft's .NET
- Subject: Re: WebObjects vs. Microsoft's .NET
- From: Arturo PĂ©rez <email@hidden>
- Date: Sun, 01 Jun 2003 00:15:18 -0400
On Saturday, May 31, 2003, at 07:41 PM, Ray Ackland wrote:
Hello Goodbye,
I have been trying to get into WO from just before Christmas. It has
been one frustrating nightmare. The documentation was good for getting
you to build the example projects, but like cutting a path through a
canyon, if you wanted to stray from that into your own project it was
a huge uphill battle (the PDF only docs make things seem worse too).
Oh, I understand the criticism. I even agree somewhat with it.
There's lots of blood over the dam
here that I don't want to talk about but rest assured that I feel for
Goodbye. We started trying
to use WO based just off the paper documentation. We struggled and
said, "What is so special about
this versus other RAD web tools? Why is this getting the buzz?"
But when you see that presales engineer making the NFL website in about
20 minutes you realize that
the documentation is completely inadequate to its task. We signed up
for the training then. BTW,
Apple used to sell the training "books." Have you tried getting copies
of those?
Trying to break out of the path that had been cut for me involved
repeated experimentation of different combinations of settings and
methods. And then all of a sudden the right combination would occur
and I'd think "that's kind of obvious".
Exactly. The problem here is that learning from the documentation is
difficult. The tutorials show
you how to do one thing. But none of them show you how to think about
how to do things on your
own. Again, the training programs run by Apple and others directly
address this. If you can,
take one. If you can't then read the stuff by Malcolm Crawford and
others on www.stepwise.com.
Look through the OmniGroup mailing list archives.
The key is this: don't worry about _how_ WO does what it does. Just
take it for granted that WO
can keep your state. For example: One uses a WORepetition to iterate
over an array generating a
submit button for each item in the array. Now, how does one keep track
of which one is activated?
Answer: One doesn't, WO does. One just uses the bound variable and
relies on WO to make sure it
is set correctly. It's kind of crazy because literally nothing else
that I've ever seen can do that.
It's black magic. But if one doesn't assume that WO can do it for you
then one ends up fighting
the framework. One writes lots of code trying to generate something
unique for each of the submit
buttons. One writes lots of code trying to figure out which button is
hit. Literally dozens or
hundreds of lines. When all one needed was
public WOComponent buttonAction() {
WOComponent woc = pageWithName(selectedButtonObject.toString());
woc.takeValueForKey(selectedButtonObject, "usersChoice");
return woc;
}
I think most developers see the above and believe that it is a
contrived example. Surely it can
only be this simple for a toy application that does little of interest?
But, as it turns out,
the above 4 lines is easily 40-75% of the "real work" that most
applications do.
There's a lot that goes on behind the scenes. Why did one choose to
display those particular
submit buttons? Where does the data for the submit buttons reside? etc
etc. That's the
application logic. What unique value is there in trying to figure out
which button got pressed?
Any decent framework can figure that out for anyone and everyone who's
doing an application.
WO offloads all the minutiae of figuring out button presses and other
state changing
"events" so that one can concentrate on the unique aspects of one's
application.
And, in my experience, it offers at least a 3-8x productivity boost to
a developer by doing so.
Most people say that the true value of WO lies in EOF. I agree and
disagree. I think that the
true value of WO is the liberation of human time from all the
bookkeeping that Web development
requires. Cookies, hidden form fields, parameters encoded on URLs.
Blech! That's stuff that
should have gone out with 28.8kb modems. With WO they are. EOF is
just an extension of that
philosophy. (Or rather, since EOF predates WO, vice versa, but let's
not quibble).
Now, if only the job market for WebObjects developers was better.
Sorry if the above is too soapbox-ey.
-------
WebObjects in Philadelphia. You want a cheesesteak with that?
_______________________________________________
webobjects-dev mailing list | email@hidden
Help/Unsubscribe/Archives: http://www.lists.apple.com/mailman/listinfo/webobjects-dev
Do not post admin requests to the list. They will be ignored.