14 comments

[ 2.9 ms ] story [ 52.6 ms ] thread
Man, is twisted cursed or what? By that I mean it provides a great framework for asynchronous things and does it in the what you might call the node.js style with callbacks except it has great engineering, and yet no one seems to know about it or care very much.
> and yet no one seems to know about it or care very much.

I'm not sure how you've come to this conclusion.

Two of my last three jobs used Twisted, one of them very heavily. Pretty much every conference I've been to has had several Twisted talks, and they've all been well attended. Blog posts of problem solving using Twisted come up here, on Reddit, and elsewhere. It's reasonably popular.

Sure, it wasn't so much a conclusion as a reaction to: python 3.0 asynchronous i/o. First because python 3 is far less exciting than its version number could imply, and because async i/o is something twisted python could do well for at least a decade, a long time before node.js, tornado, and others ohh almost forgot and tulip with python 3.0.

Edit: remember tulip.

> no one seems to know about it or care very much

This is why.

Twisted: http://twistedmatrix.com/documents/current/api/moduleIndex.h...

Gevent http://gevent.org/contents.html

From the Twisted link: "twisted.manhole", is that an underground punk band from the 80's?
manhole lets you attach to a running process and muck around. It's a pretty neat feature.
IMHO, Twisted is not an example of great engineering and it certainly is not pythonic - which is why I am glad Guido did this, we deserve better :P

PS: I say this from reading the codebase and using it extensively to write a production BOSH server.

Is TDD a good example of great engineering? How about continuous integration? How about Red Green refactor? How about branch based development? How about code reviews? How about over engineering? Those are all ideas exemplified in the twisted code base.
1. twisted seems to have made some design decisions only to support windows. A quick glance at the tulip api shows a clear separation of these models (i.e. proactor vs reactor) 2. the new 'yield from' (which I think is a more awkward name than 'await') is much more pythonic/readable than callbacks. 3. they're trying to standardize on an event loop interface (like they standardized on WSGI, I believe)

I haven't used twisted, but coworkers that tried to prototype something in it on Linux got sucked into a tarpit of no return, and wasted a huge amount of time. (they did not try the build a simple prototype and throw it away trick, unfortunately)

So no, twisted is not cursed, people are either happily using it or figuring out how to write something more intuitive, like every other piece of software on the planet.

The hangout recording is there now but the actual talk starts at around the 44:30 mark