Author j1m
Recipients akuchling, djarb, facundobatista, forest, giampaolo.rodola, gvanrossum, intgr, j1m, jafo, josiahcarlson, kevinwatters, markb, mcdonc, stutzbach, tseaver
Date 2009-04-02.17:40:11
SpamBayes Score 6.27606e-09
Marked as misclassified No
Message-id <>
In-reply-to <>
On Apr 2, 2009, at 1:27 PM, Guido van Rossum wrote:

> Guido van Rossum <> added the comment:
> [Guido]
>>> Looking back, I think Zope and Medusa should have adopted and  
>>> evolved
>>> their own copy of asynchat a long time ago...
> [Jim]
>> This statement is puzzling.  No big deal, but I'm curious why you say
>> this.
> ISTR that Zope has or had significant monkeypatches to at least one of
> asyncore/asynchat.

Not that I'm aware of.  I did add the ability to pass in alternative  
map objects, which is the only change we needed that I'm aware of. I  
think I made that change before or soon after asyncore was added to  
the standard library.

> The resulting coupling between Zope and asyn* has
> meant that the de-facto API of asyn* was much more than the documented
> API.

If we were monkey patching it, it would be at our own risk, which is  
why we'd copy the module if we needed to.  That has its own problems  
of course. I rue the day I forked doctest. :(

> IMO that's a sign of a poorly designed API (in asyn*). If Zope
> had had its own copy of asyn* (under a different name of course) that
> relied only on lower-level APIs (sockets and select), it could have
> evolved that copy directly without the need for monkeypatching.

I've read a good argument that subclassing across implementation  
packages is a bad idea. If a framework offers features through  
subclassing, it should define the subclassing interface very  
carefully, which asyncore doesn't.

Date User Action Args
2009-04-02 17:40:13j1msetrecipients: + j1m, gvanrossum, akuchling, facundobatista, jafo, josiahcarlson, tseaver, forest, giampaolo.rodola, kevinwatters, djarb, stutzbach, markb, intgr, mcdonc
2009-04-02 17:40:11j1mlinkissue1641 messages
2009-04-02 17:40:11j1mcreate