Message85228
On Apr 2, 2009, at 1:27 PM, Guido van Rossum wrote:
>
> Guido van Rossum <guido@python.org> 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.
Jim |
|
Date |
User |
Action |
Args |
2009-04-02 17:40:13 | j1m | set | recipients:
+ j1m, gvanrossum, akuchling, facundobatista, jafo, josiahcarlson, tseaver, forest, giampaolo.rodola, kevinwatters, djarb, stutzbach, markb, intgr, mcdonc |
2009-04-02 17:40:11 | j1m | link | issue1641 messages |
2009-04-02 17:40:11 | j1m | create | |
|