After having fight with ZCML I think some sort of debugger, checker,
validator or wizard is needed to help writing ZCML!
Trial-and-error approach is too costly and frustrating to newbies.
Discovering what goes where or from where is nightmare and error-prone too.
Zope3 already has a good doc system, based on ZCML and source code
information (if I am not mistaken).
Could it be beneficial to have some kind of wizard which could help
write ZCML configurations?
Or at least some good documentation on what is the meaning of ZCML
Declarative approach is good if one know:
- what is the purpose of declaration (for example, what is the purpose
of declaring that OFS.Folder.Folder is traversable?) (that is, pragmatics)
- what is needed to be declared (and where) to achieve certain typical
goals (like: in order to implement View class to this Content classes,
you need to add this to ZCML configure)
Of course, this misunderstanding will go away with experience. But I
think this is what really frustrates newbies.
Even programming language source code (especially imperative) is easier
to understand: it can be followed. Object-oriented systems are less
navigable, but still it is possible.
Now, the ZCML declarations seem to hang in the air...
Also, someone noted that write-once principle is broken with ZCML: it's
very verbose to at least my taste.
And after ABC of ZCML there lay a layer of idioms, unspoken patterns, etc.
Zope3-users mailing list