[Zope3-dev] scripter/designer concerns
Joachim Werner
joe at iuveno.de
Sun Sep 7 22:04:12 EDT 2003
> Personally, I don't agree. Even if you work with ASP.NET's WebMatrix
> tool, they go through pains to keep the script code separate from the
> HTML level code. (There is a view where you can see the whole thing
> combined, but it gives considerable preference to the other views). I
> think that helps ASP.NET developers get comfortable separating their
> Code from their HTML objects. Physically, they're stored in the same
> .aspx file (I think that's the extension), but they try to treat them as
> separate.
I think Zope is missing real object orientation when it comes to
designing web-based applications (or user interfaces in general). Why do
we need so much scripting? Why do people keep asking for more scripting
possibilities in ZPT etc.? Simply because there is no "real" framework
for building UIs.
In non-web IDEs you can design a form (or a UI screen in general) and
then hook code to the objects in the form. You can write code to fill a
drop-down list with entries, or action methods that are triggered by events.
While there are some tools in Zope that do some of this (Formulator's
TALES stuff comes to my mind, to some extend also the CMF's workflow
stuff), most of the time we are still doing the request/response game by
hand. We design DTML or ZPT templates for the forms, hook them up to
methods that do validation or control the workflow etc.
This is a 19th century approach to writing web applications. It is
cumbersome and error-prone.
I am afraid that the Zope 3 development does not take things like that
into account yet.
I'd like to be able to design a set of web-based UI screens without very
much coding (this might be done with a tool that is not part of Zope)
and then just hook up methods and scripts to it.
I can't say that I'd know how to do all this right. But I am feeling
that we are rapidly losing ground against ASP.net and the like. We, that
is Zope as well as PHP, by the way.
One of the reasons why it is so hard in Zope to do things like web UIs
right is that there is no notion of a separation between web-based
applications and (dynamic) web content.
I know that this separation is not easy. Many "web sites" are more like
applications than like web content. Is Google a site or an application
(more like an app I'd say, but it is very simple HTML). What about
Amazon? They have a lot of content, but there also is a lot of
functionality. It's a web site about books (and other stuff), but at the
same time it's an app to order stuff.
But I think it must be possible to write tools that make programming
(and also maintaining/customizing) web applications as easy as
developing a little VBA (or KDE) application.
We need richer paradigms, like real widgets, events, etc.; if Zope
programmers lose much of the time they save because of the good parts
Zope already offers with having to design and maintain user interfaces
then we are not really competitive in the long run. Now we'd have the
chance to do things better than others.
Maybe one of the reasons why the Zope 3 development has not gone in this
direction (yet) is that there are no large use cases on how to write
apps with Zope. Most the examples I know of are in the domain of more or
less demanding dynamic web sites.
This is just a little rant to start some discussion about "modern web
app development" with Zope 3. Nothing that is ready for being a
proposal. I'd be happy to get some feedback.
If you need an example for what I mean with web applications there are
two domains I'd suggest looking at:
a) web based content management systems (and especially the UI
component, the editor/reviewer frontend that is)
b) web-based groupware (think of Evolution of Outlook web clients)
One direction this whole thing could go into is developing with Mozilla
and XUL. But that's not what I want right now. I'd like to think of
doing "real" applications, but only with the set of tools that HTML
(plus modern DOM-based client-side scripting) can do.
Of course if things are done right it should be easy to write backends
that then are used either via an HTML web client or via a XUL or even
wxPython client.
I don't even think that Zope can't do this right now. There just is no
best practice on how to do things right. All the examples and also most
of the existing UI code for Zope 2 as well as Zope 3 is basically doing
things the old way ...
Cheers
Joachim
More information about the Zope3-dev
mailing list