June 17, 2008

Why Twisted? - July 11, Washington, DC

Duncan McGreggor recently announced Holden Web's first public joint venture with Divmod but it struck me that our readerships may be quite disjoint, and so I should mention it too.

I know from Teach Me Twisted that there is a thirst for knowledge about this fascinating system and so I agreed to do something else about that, for a wider audience than PyCon. Consequently Duncan, Glyph and I agreed to follow our next public Introduction to Python class with a half-day seminar on how Twisted can create scalable networking solutions to real problems.

My own contribution will be inspired by Duncan's recent Mantissa: An Alternative to LAMP post, and will attempt to position Twisted in the marketplace. Glyph will be offering some really neat canned demonstrations of what Twisted can do [with a CD for managers to take back to their techies], and I am hoping that Duncan will be able to play the visionary role, taking us all into a future where networking is an essential component of all systems.

So, if you have a need to know about Twisted, and especially if you have budget, reserve a place now. There are only twelve places, and some are already taken.

We will give you two hours of presentations and follow that with a lunch where you can ask the speakers questions at leisure before departing to the remainder of your Friday afternoon. Sign up now!


Richard Jones said...

Let me counter: Why Not Twisted?

Because for even the most trivial application a developer eventually ends up asking for help on the IRC channel. Its a huge, complex library and the available documentation just sucks, or is out of date, or is both. I contend that you only learnt it because you held Teach Me Twisted (and this had IRC-like access to help). Requiring that developers attend a training session to use a library is just ridiculous.

Steve said...

Neither required nor a training session, Richard, but thanks for your comment. This is pretty much marketing pure and simple. We are aiming to show what Twisted can do.

You assert that "it's a huge, complex library" so at some stage training may well be needed, but many people do "get" Twisted just from the documentation. I will let the Twisted community answer your other remarks about Twisted.

glyph said...

Where did you get the idea that training (or interactive access to help) is "required" for learning to use Twisted? We're offering this as a resource, not as a prescription.

From the perspective of someone who works on maintaining Twisted, I can definitely tell you that our users mostly don't come on the IRC channel, or in fact ask questions at all. If they did, we'd know about what sorts of things people were doing with Twisted, and the problems they were having. As it is, we have to trawl the internets, looking for whinging in blog comments. :)

That's not to say that all of the more than 200 pages of documentation it comes with is perfect:


but a lot of it is quite good; especially the bits that cover core concepts.

The reason we're holding training sessions (aside from the marketing angle that Steve mentioned) is that Twisted represents a fundamentally new programming paradigm to many programmers. Not that it is a fundamentally new paradigm by itself: event-driven programming is perfectly well represented by java.nio, ACE, POE, asyncore, and so on. Twisted users who are familiar with one of those other libraries (or who have written one of their own) generally don't have many issues getting started. But that is a small subset of the larger Python community.

Even if we had the best documentation in the world (and granted, we don't) the narrowest possible API (it could be slimmer) and the clearest demarcations between core stable concepts and peripheral utilities and libraries (it can be a bit confusing to a newcomer which is which) it would still be hard for many programmers to adapt to the genuinely different way that Twisted-using programs are structured, tested, and deployed.

Can you show me any library that does something substantial or interesting whose community wouldn't benefit from some training? I find gtk+ to be a really nice, easy to use library. Lots of people have written lots of applications with it. But I defy you to find someone who understood how TreeIter works on the first try. At this moment there are 136 people in the #gtk+ IRC channel. A brief google search yields at least 5 different providers of GTK development training.