One more argument: Inclusion in the stdlib requires more stringent backwards compatibility in APIs. Now, on the whole this is a good thing, but it can have serious long term consequences. Asyncore is the perfect example; Twisted's event loop API started out being no better than asyncore's, whereas now it is far superior (can work much better with stateful OS APIs like epoll(), can support asynchronous rather than just non-blocking, supports scheduling, much better TCP client support, etc..) The reason is years and years of working on improving it, whereas asyncore was basically stuck where it was because it had to be backwards compatible, and because adding major changes into the stdlib is harder. So, for example, a number of people independently added scheduling to the asyncore API, but it never made it into the stdlib. asyncore is now almost identical to the way it was 5 years ago.