Jim Fulton wrote:


Yup.

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.
[...]

Jim


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 :-).

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

Reply via email to