Andrew Sawyers wrote:
1. On Mon, 2006-01-23 at 18:29 +0100, Martijn Faassen wrote:

And the intended audience of ZCML is a very different audience - developers versus sysadmins.

I'd have to say, I belived quite the opposite.  There are specific
references to Admins being part of the ZCML audience.  See specifically which says:
     1. While the developer is certainly the one that writes the initial
        cut of the configuration, this user is not the real target
        audience. Once the product is written, you would expect a system
        administrator to interact much more frequently with the
        configuration, adding and removing functionality or adjust the
        configuration of the server setup. System administrators are
        often not developers, so that it would be unfortunate to write
        the configuration in the programming language, here Python. But
        an administrator is familiar with configuration scripts, shell
        code and XML to some extend. Therefore an easy to read syntax
        that is similar to other configuration files is of advantage.

Let's just say that I don't think ZCML is there yet... While I can believe a sysadmin can make changes in ZCML configuration on the specific advice of a developer, and in some other specific instances, I don't think ZCML in general is very transparant for sysadmins at all, and perhaps it shouldn't be. I do believe there's value in even the specific, limited instances of non-developers making changes in ZCML however, and also believe the situation is better than when you'd have to tell a sysadmin to go change some Python code.

I would argue that the apache config is comparable to Zope 3's ZCML - in
that, if I wanted to enable/disable some feature typically included with
Apache, say CGI support - this is done in Apache's config files.
Granted I understand there are some differences, but it is worthy to
note that there is some cross-over between Apache's configuration file
audiences and Zope 3's ZCML files and ZConfig (zope.conf).

I've worked with both ZCML and the Apache configuration language, and while I agree there is some overlap, ZCML is generally not about enabling/disabling features in my experience. ZCML as it stands is very much tied to application design, and a sysadmin can very easily break something fundamental by messing with it (imagine changing the name of a view, for instance).

In contract, of course a sysadmin can break the Apache configuration too, but generally no specific detail of an application is broken in that case. *all* URLs to an application may change, but typically not a single one.

So, I consider ZCML to be about application configuration, and Apache configuration to be about general server configuration. There are overlaps and grey areas, but the domains are quite distinct.

More importantly to me (being one who is pushing Zope 3 in the
Enterprise and recently supplying a summary of the online ZCML data to
my fellow developers), what is the 'official' position if the Zope3 book
on is wrong or who says it's wrong and why the change in
positions?  This occurred to me when Stephan recently said something
similar, but I'd forgotten where I had read otherwise.

I can't give you an official position. Instead, I'll go into some vague thoughts from me about ZCML:

After working extensively with ZCML in large applications, and seeing ZCML as a special kind of declarative programming logic, I have started to wonder about the reusability of ZCML. Zope 3 is good at the reuse of smaller grained components than Zope 2, but I noticed that when I *want* a larger component (including UI and the rest), a whole lot of ZCML will need to come along and quite possibly be adjusted for particular applications. Perhaps snippets of ZCML can be made to be more reusable somehow...

It *may* be that this eventually leads to a world where it becomes easier to turn off specific features of an application through ZCML.


Zope3-dev mailing list

Reply via email to