[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