Martijn Faassen wrote:
A newer interpretation of ZCML is:
ZCML is a configuration language that configures a number of basic
directives for configuring the component architecture and security:
adapters, utilities, security requirements, and little else. Everything
else should be done in Python code, as configuration in Python code is
more flexible and packages can form a more self-contained whole. ZCML
should reflect the underlying universality of the component architecture.
If two directives work with, say, adapters underneath, they should
really be one directive. ZCML should be simple and minimal so it is easy
ZCML is not readable standalone. ZCML is simply used to turn on various
adapters and such, hooking them into the system, but we do not get a
clue what the adapters are doing by just looking at the ZCML - Python
code needs to be consulted.
IOW, "most of the directives we need have already been invented.  We
don't want to build high level directives; ZCML will follow the BASIC
school of language design." :-)
While I was initially on board with the idea of reducing the number of
directives, I've changed my mind. I think we want high level directives
and we want people to feel free to write new directive types. We want
tools that let us inspect and search the resulting low level directives.
If we have to use ZCML, then ZCML should be expressive.
Zope3-dev mailing list