[Twisted-Python] draft of an article on Twisted

Jean Daniel jeandaniel.browne at gmail.com
Tue Apr 27 09:49:56 EDT 2010


I have written an introductory article to Twisted, and I would be
delighted to see it published on Linux Weekly News some day.

It is available at: http://jdb.github.com/concurrent.html

Here is the plan in brief:
1. what Twisted is: what "network framework" means,
2. what network concurrency is,
3. why "one socket in one thread" won't get you very far: Twisted is
safer, faster and faster
4. what is the reactor, and how it interfaces with the kernel and the
Twisted Protocols
5. what deferreds are (and how they are actually _not_ directly tied
to the reactor)
6. Finally how to write Twisted code that looks sequential (with recap
on yield and decorators)

What I tried to do:

- write for a developer audience who are not particularly expert in
Python nor kernel internals. Python idioms are explained, and I try to
clear the magic by unfolding the big ideas (this audience actually
maps well my friends and colleagues),

- include short, clear cut code snippets to nail the point,

- short enough to fit in a brain cache but complete and precise enough
so developers come out with an understanding of what is under the

- make the article "flow", by introducing the plan, connecting
sections, using proper english :/ ,

Any comments welcome, and especially:

- it might be too long and present too many things, maybe I should
split it in parts,

- correctness: I simplified the object model (the article mentions
that the factories are out of scope...), but everything said should
still be correct. Also I sometime take guesses at subject I am not an
expert, with the intent to make a clear message: this is a thin line,

- coherence with the Twisted jargon and existings docs, there may be
terms that I use which should be substituted,

- typos and proper english: I think lwn standards are pretty high for
that matter,

The pdf can't be attached, mailman complains that it is more than 40kB.

The scripts are at http://github.com/jdb/jdb.github.com/tree/sources/concurrent/

The git manip for using your favorite editor on the sources is:
   git clone git://github.com/jdb/jdb.github.com.git
   git branch --track -b sources origin/sources
   vi concurrent.rst

Thanks in advance !

More information about the Twisted-Python mailing list