[Twisted-Python] Twisted Jabber mailinglist

glyph at divmod.com glyph at divmod.com
Sun Oct 23 16:19:13 EDT 2005

On Sun, 23 Oct 2005 13:26:05 +0200, Ralph Meijer <twisted at ralphm.ik.nu> wrote:
>Hi all,

>Recently I set up a mailinglist for Jabber development using Twisted.

Thanks for setting this up, Ralph.

>Also, Jp released Twisted Words 0.3 that saw a restucturing of the
>Jabber bits. The Twisted Xish project, that was changed in the same
>restructuring, has been folded in Words now. Xish should be usuable for
>non-Jabber XML streaming as well. I made a few comments and notes on the
>release and changes this on the new list.

I will subscribe soon, but I'm going to reply to the message that you linked to here, because it impacts other projects.

>Of course I hope that Xish is useful for non-Jabber use, too. If this
>happens, we might spin out Xish again. For now it doesn't really matter
>where it is, I guess.

Xish's utility is not at issue.  I think it's great that it's useful for non-jabber uses.  Guido's opinion [1] notwithstanding, Python is a framework [2] and so should each Twisted subprojects be.  I mentioned this in an earlier post [3] but as long as I'm talking I might as well explain a bit further.

There are a plethora of buggy, one-off libraries in the Python world that are not supported or tested because they don't have any user-facing tools which can be tested.  They're easy to write, and easy to release, but libraries should always be written in support of applications, not simply in the hopes they will be useful.  As Rails has famously declared, good frameworks are "extracted".

As an example of this, Twisted Matrix Labs' experience with distributing libraries has been, to put it politely, poor.  Aside from .xish, whose function was mainly to complicate t.words releases and installations, our other two libraries are .pair and .flow, both of which are pretty much useless to everyone but their respective authors and currently unmaintained.

Users of xish can easily install twisted.words, then import only xish.  Keep your import dependencies as clean as possible so that if they do this and then use a tool like freeze or py2exe, they won't suck in all of twisted.words by accident.  The rest of Twisted has been historically careful about this, because while I have encountered several situations where deployment footprint was a concern, I have yet to meet a developer whose hard drive was so full that they couldn't spare an additional 100k on their disk for a full subproject during installation.

The main message here is that each Twisted subproject should be a coherent whole that performs an actual function.  If .xish grew a tool for monitoring or transforming XML streams that would actually be useful to a reasonable-sized audience (i.e. not just for the author of the tool to test the library and not just so it can be split out ^_^), then it might be a good candidate for being split out into its own project again.

[1]: http://mail.python.org/pipermail/python-dev/2005-October/057486.html
[2]: http://www.twistedmatrix.com/users/glyph/rant/extendit.html
[3]: http://archives.free.net.ph/message/20050929.162612.040ae285.en.html

More information about the Twisted-Python mailing list