[Twisted-web] Re: Thoughts on documentation, wading into Twisted, Nevow, etc.

glyph at divmod.com glyph at divmod.com
Fri Jul 7 19:36:22 CDT 2006


On Sat, 08 Jul 2006 00:14:38 +0100, Phil Mayers <p.mayers at imperial.ac.uk> wrote:

>If Python were Erlang (i.e. had stackless), Twisted would not exist. But 
>it's not, so it does.

I think that Twisted might still exist.  The protocol implementations in the standard library are pretty bad and it includes very few servers.  Stackless itself, for example, does not include a viable competitor to Twisted (or at least it didn't, when I last looked at it).

The idea behind Twisted is, event driven programming is cool, but we need a standard event model (reactor) in order to write cooperating event-driven programs.  You need this even if your lanaguage supports continuations and coroutines, unless the language itself has _very_ good internal process control and I/O management -- few do.

Python's recent efforts to grow asynchronous coroutines (yield expressions, etc) are a great example of why this is not a language problem, it's a library and support and conventions problem.  The language can give you some support, but unless the runtime is built around these concepts and already includes the support code and conventions that you need, syntax and one-off VM features won't help.

>The previous two mails encapsulate to my mind the core of the issue. Anyone 
>who needs Twisted, knows it. Anyone who doesn't cannot be persuaded 
>otherwise. They will either discover it, or never need it (and more power to 
>them - but that's not me).

This is not quite true.  There are certainly a lot of Python applications - especially the GNOME GUI stuff - that would be a lot better off if they used Twisted but there is a cultural opposition or ignorance of Twisted.

>Though it rankles, maybe advertising Twisted as a "specialist" framework 
>would make more sense?

It's not specialist though.  It's generally useful in a huge variety of problem domains.  Even if you're just doing IPC, not network IO, Twisted can help prevent deadlocks and generally make applications a lot more robust.  The "specialist" label is an unnecessary compromise; if our documentation is crap for some of those domains, then let's just say *that*, and all work to improve it, rather than pretend that there is something wrong with the technology itself as an excuse.  If we officially say "this is not a general-purpose tool", then pretty soon all the functionality it provides outside the "specialist" area we artificially create for it will atrophy and eventually be removed.



More information about the Twisted-web mailing list