...from my perspective.
= Things vaguely approaching consensus =
== General ==
There's a consensus that changes to the ZCA need to be backwards compatible.
The practical definition of that varies for different people.
== Syntactic ==
=== Tuple multi-adaptation ===
IFoo((bar, baz)) == z.c.getMultiAdapter((bar, baz), IFoo)
- It has the most consensus of any proposed change so far.
- It is concerning because it breaks backwards compatibility in two real world
use cases from the very small set of Zope users who actually watch zope-dev.
There is a workaround spelling at least, but it is ugly (i.e., what was
``IFoo((bar, baz))`` will need to become ``IFoo(((bar, baz),))``).
- It is easier to remember than ``z.c.getMultiAdapter((bar, baz), IFoo)`` (I
always have to look up the order of arguments for getMultiAdapter myself) but
not as easy to remember as ``IFoo(bar, baz)``. It introduces yet another
spelling of the same thing (e.g., ``IFoo(bar)`` is the same as ``IFoo((bar,))``.
== Utilities available from interfaces ==
As far as I can tell, no one is against this generally, and several people are
for it. Some people are against the syntax that has been proposed for this
that merges utilties and adapters (see "No consensus" section below). An
alternate syntax was proposed involving a ``utility`` callable. This made the
most sense when it was paired with an ``adapters`` (or ``factory`` or ``new``
or ``instance`` or ``create``) callable, which contradicts the consensus of the
"tuple multi-adaptation" section above.
= No consensus AFAICT =
- Utilities and adapters should be merged.
- We care significantly about new and casual users and perceive that the
current API does not serve them well.
- Adapters are usually used as factories, and utilities are used as instances,
and it is valuable to present them that way. Related: the term "adapter" buys
us little and costs us more than nothing among new and casual users.
= Rejected =
- Utilities should be called singletons.
Zope-Dev maillist - Zope-Dev@zope.org
** No cross posts or HTML encoding! **
(Related lists -