[Twisted-Python] regarding callbacks.

Glyph glyph at twistedmatrix.com
Mon Apr 30 16:15:28 EDT 2012


On Apr 30, 2012, at 4:57 AM, moses dsouza wrote:

> I was reading http://technicae.cogitat.io/2012/03/conversation-with-guido-about-callbacks.html
> . I'm not done with it yet but I'm sure some of you would have already
> read this. Would there be any changes required in Twisted code because
> of the views in this blog ? Or put it in another way, is there
> anything we can take from it that we can use to help make Twisted
> better ?

I don't think so.  Most of what Guido wants is already available via inlineCallbacks, and the drawbacks of using that are documented pretty well in the comments there.  I also have some issues with the premises and conclusions of that article. For example, batching, pipelining and pooling are all easier to implement with a callback-driven style.

I think that article is mainly about aesthetic choices, and the culture of the Python community.  However, it does highlight the need to document the reasons why things are the way that they are in the Twisted world, so that the broader Python community understands that it's not weird for the sake of weird; but this is a documentation issue.  For example, Node.JS doesn't have this problem, despite having a much worse convention of callback spaghetti (as far as I know, they don't have an abstraction analogous to a Deferred yet); this is because the JavaScript community has already accepted callbacks and is intimately familiar with them before approaching Node for the first time.  There are a few analogues in Python (for example, GUI toolkit programming) but a smaller proportion of the community at large are familiar with that style.

But, if you can think of something actionable that would make Twisted better based on that blog post - or anything else, for that matter! - feel free to file a ticket.

-glyph




More information about the Twisted-Python mailing list