[Twisted-Python] Freevo 2.0, Kamaelia, pyevent, Eventnet/LGT: what's going on?

Moe Aboulkheir moe at divmod.com
Thu Oct 20 20:10:43 EDT 2005

On Fri, 21 Oct 2005 01:10:03 +0200, Antoine Pitrou <solipsis at pitrou.net> wrote:

>Not to mention the annoying interface system which means
>the documentation for e.g. twisted.internet.reactor.ListenTCP is
>actually to be found elsewhere in the class hierarchy...

i assure you that the interfaces exist for reasons other than making your life difficult

>[PB] is proprietary in the sense that it is, AFAIK, implemented only by

here is a javascript implementation of PB: http://jspb.mozdev.org/.  and a java one: http://www.itamarst.org/software/twistedjava/.  there is also an objective caml port (cvs: cvs.twistedmatrix.com/cvs/TwistedOCaml).  probably more that i am not aware of.

as far as the topic of alternative python frameworks (dare i say the word) for event-based programming in general, i think it's an interesting time, with PEP 342 in the wings - a lot of you probably think it's a bad idea, but it has the capacity to remove the reliance on frameworks for accomplishing clean asychronous IO in python (see the miniscule scheduler examples both in the PEP and in recent python-dev posts).  when i say "framework" in this context, i mean libraries whose clients accrue a dependency on a non-standard reactor/event loop/runtime/whatever in order to operate.  kamaelia probably doesn't fit into this category, i wouldn't know.

so why bother with twisted?  twisted is the winner because of its ridiculously  numerous and thorough protocol implementations.  sure, the standard library has an imap implementation, but does it have an implementation of the MSN protocol?  there are non-twisted MSN python libraries, but they aren't going to expose the same basic interface abstractions as imaplib.  twisted also has OSCAR, jabber, SMTP, HTTP, and a bunch more, with clients AND servers for most of these, all using the same abstractions and entry points.  as far as most of these are are concerned, YAGNI, but if (when) you do, you code isn't going to change significantly.

Moe Aboulkheir

More information about the Twisted-Python mailing list