[Zope3-dev] RFC: ZConfig and other formats for ZCML

Martijn Faassen faassen at infrae.com
Mon Jan 23 12:27:38 EST 2006


Jim Fulton wrote:
> 
> See:
> 
>   http://dev.zope.org/Zope3/ZConfigAndOtherFormatsForZCML
> 
> Comments and volunteers welcome.

After thinking about it for a little bit, -1.

Firstly, I'm interested in experimenting with alternative syntaxes for 
ZCML. I'm however not convinced that the proposal is a productive 
approach to do this.

The proposal talks concretely about ZConfig as an alternative syntax and 
strongly implies it's better than ZCML for the job. I'm not convinced 
ZConfig is the ideal alternative syntax for ZCML. For one, ZConfig is a 
syntax not very well known, even granting its similarity to the Apache 
configuration language, while XML is very well known. I'd like to 
explore some other formats first.

You can answer that the proposal adds genericity so that you can hook in 
your own engine anyway, and thus is useful for my wish of 
experimentation, and that you're not stuck with ZConfig. There are 
various problems with such an answer:

* Lesson from Gnome: adding more options doesn't make a user interface 
(including our APIs and configuration languages) easier to use; the 
reverse happens. It shouldn't be used as a way to avoid debates about 
what the right one way should be. Concretely, genericity won't bring us 
much: ZConfig might be considered by the community as the 'new way', or 
people will stick with ZCML -- people won't generally invent new 
syntaxes when they write a new Zope 3 application.

* I don't think the few people that are interested in such syntax 
experimentation need implementation support for this in Zope 3, at 
present. Writing code that generates ZCML is easy enough -- XML 
generation is well-understood.

I'm not convinced ZCML is intimidating primarily due to its syntax. I 
think the XML syntax is only a minimal issue compared to the other 
things that make it intimidating, namely that ZCML exposes the component 
architecture.

I think there's lower-hanging fruit to invest energy in simplifying ZCML 
*semantically* as it is now first, before we work on alternative 
syntaxes or consolidating engines.

Finally, ZCML works. We've spent energy in educating the Zope community 
(3 and 2) in its use. People have learned it. We have working code. Why 
throw away that effort and introduce something new? Is ZCML really that 
horrible? Do we really think people will come in droves to Zope 3 after 
we change it to ZConfig? The *syntax* of ZCML is a very minimal issue 
compared to everything else when learning Zope 3. I think we have much 
more to gain in improving the semantics of ZCML first, then come back 
and reconsider syntax.

Regards,

Martijn


More information about the Zope3-dev mailing list