[Zope3-dev] IMPORTANT RFS: Through the Web Site Development

Stephan Richter stephan.richter@tufts.edu
Mon, 13 Jan 2003 08:58:26 -0500


On Monday 13 January 2003 07:36, Jim Fulton wrote:
> I really need feedback on this. Comments are more than welcome.
> Feel free to comment here or on the wiki page.

Okay, I will give feedback via E-mail.

What I noticed is that we will have an awesome system for people that know 
Python and understand the CA.

On the other hand we will loose about 70-80% (wild guess) of the current Zope 
2 TTW developers, who do not know any Python and have difficulties to 
understand it. I am pretty sure that there are many, many sites out there 
that are written using one of the following two options:

1.) They only use the standard Content Objects that are provided by default in 
Zope 2 (maybe they download another product or two). Then they use ZPT and 
DTML to do all the logic. Note: I do not think that much Python Script is 
used unless someone on the mailing list gave it to them.

2.) They use ZClasses (because they understand sort of OO programming) and use 
scripts often DTML and ZPT, but maybe already some very small Python scripts 
to do the logic.

Advanced Zope developers use:

3) They write their own Python products, but develop most of the look and feel 
using the ZMI and therefore ZPT and DTML that lives in the ZODB.

While I think that group 3 is addressed nicely, Group 1 and 2 are not. The 
current versions of ZPT Page and DTML Page are too weak (as intended when 
originally implmented) to satisfy group 1, since you do not have access to 
some of the interesting methods.

Example: I want to create a menu quickly. What I did on one site was to simply 
take an OrderedFolder and put other OrderedFolder objects in it having a 
senible title. Then I just called "of.objectValues('Ordered Folder')" and 
displayed the titles of the sub-folders an voila I had my menu. This was a 
2-minute task. How would I do that in Zope 3?

Addressing Group 2, let's say I want to quickly create a NewsItem object that 
has a couple of properties and methods. In Zope 2 I would just create a 
ZClass, add all the properties and create a couple of scripts for the methods 
and I am done. If ZClasses weren't so unpredictable, this should be a 
10-minute task. How would I do that in Zope 3? Note that writing a Python 
module is **not** an option.

What I want to do is:

1. Create ContentObject that inherits from this and that.

2. Create properties in Content Object.

3. Create methods in Content Object.

4. Define security.

5. Register the Content Object.

A more Zope3ish way would be to define the interface doing step 1-3 and then 
autogenerate the Content Object skeleton. 

Until now I was not too worried about addressing end-user scenarios, but now 
that the first alphas are coming out, we really should start considering 
their use cases. Maybe a smart thing would be to go to the general Zope 
mailinglist and ask people there what they do when they develop Zope sites.

Regards,
Stephan
-- 
Stephan Richter
CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student)
Web2k - Web Software Design, Development and Training