[Zope-dev] implementing zope.component 4.0

Martijn Faassen faassen at startifact.com
Mon Nov 30 11:54:54 EST 2009


Hanno Schlichting wrote:
> On Mon, Nov 30, 2009 at 5:09 PM, Martijn Faassen <faassen at startifact.com> wrote:
>> Leonardo Rochael Almeida wrote:
>>>  * Use a different package name!
>> We don't have that option, as we're talking about changing the behavior
>> of calling IFoo.
> 
> It's very well possible. You create a new distribution called for
> example "Interface". Now you can write:
> 
> import interface
> import zope.interface
> 
> class IFoo(interface.Interface): pass
> 
> class IBar(zope.interface.Interface): pass
> 
> Depending on what "kind" of interface you have the semantics of
> calling these are different. Not that I'm proposing to do this, as it
> leads to a pretty horrible mess, but it's possible.

True. But nitpicking, as all along we're talking about an upgrade to 
zope.component to allow new semantics.

> We are just now getting rid of the old Zope2 Interface package and its
> usage in Plone land, which has the same kind of incompatibility
> problem. I expect that old version of interfaces is still going to be
> with us for a number of years. So experience shows that something so
> central, even if not used for many important things, has a much much
> longer lifetime than you'd expect.

Agreed. By taking everything along at the same time in this case I think 
we avoid this issue somewhat, though.

Regards,

Martijn



More information about the Zope-Dev mailing list