[Zope3-dev] what is ZCML?
Shane Hathaway
shane at hathawaymix.org
Mon Mar 13 15:37:44 EST 2006
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
> to grasp.
>
> 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. [1] We
don't want to build high level directives; ZCML will follow the BASIC
school of language design." :-)
[1] http://www.inventionmysteries.com/article4.html
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.
Shane
More information about the Zope3-dev
mailing list