[Zope] Beginners

Martijn Faassen m.faassen@vet.uu.nl
Wed, 24 Nov 1999 11:31:08 +0100


Andres Corrada wrote:
> 
> Martijn Faassen wrote:
> 
> > > -Do you have general considerations to make to me?
> >
> > Zope is very powerful, but you do need to invest in learning about it.
> > The initial learning curve is considered to be tough by many people. Of
> > course it depends on where you're aiming; you can already use some of
> > its powerful features with a bit of learning. It does get harder if you
> > push it further, though. But the rewards are big as well; Zope is a very
> > extensible environment. You don't tend to run into the limits of the
> > system quickly; there don't seem to be too many limits. :)
> 
> How come Zope is difficult to learn but Python is a breeze to get into?
> I'm a newbie at using Zope and it has been very difficult for me to
> leverage my Python knowledge into programming Zope.

I think partially this is because Zope is not a language but a
framework; frameworks tend to be harder to learn. And Zope isn't a small
framework; it's biiig. Zope consists of a lot of parts; GUI, database
integration, object database, etc. To learn more about Zope you need to
understand how each of these work and how they interact. Add to this new
concepts like object publishing and acquisition, which are hard to get
ones mind around in the beginning. Then the very nature of the web is
involved in making things more difficult as well. For instance, people
can access any page on the site in any order (makes writing applications
harder). It is also hard to store session data (people are working on
that).

Another reason is the complexity of DTML; people are trying to do too
much with DTML and DTML isn't really meant to do that. This results in
confused people and horrible DTML constructs. Unfortunately the
alternative, using Python, is currently still rather hard to get into
(excepting external methods; those aren't that hard). This is again
because your Python code needs to deal with many parts of the Zope
framework; the object database, the security infrastructure, the GUI,
etc. People are working on a better integration of Python within the
Zope development process (PythonMethods).

More and better documentation could help a lot. The documentation
situation is getting slowly better; one needed to figure out far more by
oneself in the early days. But even today if you want to write Python
products that do advanced stuff (like folderish ones, an experience I've
just gone through), expect having to dig through the Zope source. What
also could help the understandability situation is a cleaner DTML or a
DTML replacement, but that's something far off yet. On the source level,
something like a clear definition of interfaces and such could help a
lot in people's understanding. Python doesn't by default have an
'interface' facility in the language, though last year there was talk
about adding one (I believe Jim Fulton was involved in that one..anyone
know the status?). Digital Creations appears to be using object oriented
modelling extensively now (for ZODB3, the Portal Toolkit); this promises
more source level documentation in the future.

Regards,

Martijn