On Fri, 2005-07-01 at 14:24 -0400, Glyph Lefkowitz wrote:
- Implement something with asyncore - realize asyncore's deficiencies, start enhancing it - discover Twisted, re-implement networking code (from scratch)
If the event loop in Python provided similar interfaces to the one in Twisted, the amount of work involved in stage 3 could be greatly reduced.
Alternatively, asyncore could just be deprecated, which would be a lot easier to do, and people would start from the correct solution :)
2. Installing separate package issues. As PyXML has shown, having a separate package which overrides or extends a built-in stdlib API works terribly. http://www.amk.ca/conceit/xmlplus.html covers some of the issues, but there's also -
So let's not pretend that they're the same thing. 'from eventloop import listenTCP' -> 'from twisted.internet import reactor'. They can just share a set of common interfaces. The big problem with xmlplus was that it changed the behavior of a built-in package, so let's not ever do that again. amk's article specifically recommends this solution.
Hm. That's a lot better than moving parts of Twisted, yes. I still think it's silly.
I don't think the issue is "less" or "more" but "better". The Python standard library is of a highly non-uniform quality. Whether or not Twisted gets added, I think asyncore should be removed, or at least strongly deprecated.
Adding yet another event loop would just continue the tradition, I'm sure; it took us quite a while to get to the quality we have now just in terms of platform support. I suppose you could butcher our code by ripping features out... but you'd just get a crippled piece of software. The motivation is "so then people can move to something less suck"? Why not just have them start from something good to begin with?