Jean-Marc Orliaguet wrote:
Jim Fulton wrote:

Jean-Marc Orliaguet wrote:

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.

I was refering to high-level ZCML, such browser:page, browser:menu, etc
vs low-level directives like adapter.


I would say that they paraphrase more lines of code than the low-level ones, but they fundamentally add no extremely valuable abstraction since a page is an alias for a multiadapter, a menu registers utilities, interfaces, ..

Wrong.  the page directive defines a class and combines multiple
configurations.  This is definately a higher level of abstraction.

> . Anyway these are the ones that should be moved out of
ZCML I guess since they are so site or application specific that it is difficult to be reuse them as components in other setups.

Well, no.  They are not application specific.  Rather, we feel,
after getting experience with them, that the benefits they provide
don't justify the hiding they do of what's really going on.
The same could have been true if they were written in Python.

In fact, we have a similar problem with some of our Python menu
APIs, which automate too much and actually obscure what is really
a simple pattern.


Jim Fulton           mailto:[EMAIL PROTECTED]       Python Powered!
CTO                  (540) 361-1714  
Zope Corporation
Zope3-dev mailing list

Reply via email to