Jim Fulton wrote:


BTW, a general thing to keep in mind:

- Indirection and abstraction are inherently bad because they
  hide things. :)
  (This is a corolary of "explicit is better than implicit".)

- But indirection and abstraction can provide benefits that outweight
  their inherent bad-ness.

Whenever we consider ptoviding a high-level/automated facility, we have
to weigh the benefit against the inherient badness.


yes, except that ZCML adds strictly no abstraction compared to what would have been written in python. It only "paraphrases" python by hiding lines of code. When I look at a zcml directive I often have to read that handler's code to see what it actually does and I have to find the objects, classes in files, .. that it handles.

that's 2 indirections, but no abstraction

Abstraction would in the case of ZCML mean that paths to python modules and classes would be hidden, that objects (adapters, pages, menus) could be given a shorter name that I could use inside ZCML for configuration purposes without registering these names in zope, it would mean that I could group directives together in a set and apply rules to it without always refering to the location of each individual object on the filesystem, that I wouln't have to do a grep on all zcml files when I move or rename files (I would register paths only once) ... It would mean that I could register all images inside a folder without listing them all one by one.

This would be the beginning of something called 'abstraction', but that's still far away from it :-).

Zope3-dev mailing list
Unsub: http://mail.zope.org/mailman/options/zope3-dev/archive%40mail-archive.com

Reply via email to