[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