[Twisted-Python] Freevo 2.0, Kamaelia, pyevent, Eventnet/LGT: what's going on?
glyph at divmod.com
glyph at divmod.com
Thu Oct 20 19:45:38 EDT 2005
On Thu, 20 Oct 2005 09:55:44 +0200, Nicola Larosa <nico at teknico.net> wrote:
>One year ago the Freevo project, for its 2.0 rewrite, dropped Twisted, and
>then went and reimplemented something similar.
Since the Freevo project didn't notify us when they started using Twisted, they didn't provide any criticism of it while they were using it, and they didn't tell us when they stopped, I'm certainly not planning to speculate as to their motives.
>Then there are Kamaelia,
>pyevent, and EventNet inside LGT.
http://lgt.berlios.de/: "EventNet requires the gherkin and Twisted packages."
Doesn't sound like they've stopped using Twisted to me.
>Why isn't Twisted seen, by these projects at least, as a viable tool?
"Programming is hard", probably. The only reason given by the Freevo project is that "It is a huge monster and hard to understand.". They're focused on building a multimedia system, not networking, so it stands to reason that they wouldn't have a lot of the sort of people that would find Twisted easy to use hanging around.
Plus, most of what they need networking for as far (as I understand it) is downloading programming schedules over the web, and Twisted's web-downloader situation could be described as "unfortunate" at best. They'd not only need to understand Twisted's core, but the internals of the web-downloading junk well enough to improve upon it. It might have seemed easier to just rewrite.
Twisted is very much an unfinished project, and when people want to use the pieces that don't exist or aren't done yet, they get frustrated with it. I would too. It saddens me that they won't file bugs in the tracker and discuss their issues with the project with us rather than simply on their own mailing lists, but what can we do?
>Is the event-driven Python world undergoing the same fragmentation as the web
This would actually be a source of some relief for me.
Without any meaningful competition, Twisted has been operating in a vacuum. I certainly plan to continue using Twisted myself, and for all of the Divmod projects (plug: <http://www.divmod.org>) but I don't think everyone in the world should necessarily use it.
However, every programmer *should* understand the basics of event-driven programming, and there should be libraries available which facilitate the creation of scalable systems which use event-driven protocol implementations. Twisted got the ball rolling on this in Python, but if other viable projects with similar goals merge it could be the basis of some kind of standard API. Perhaps one that someone *else* could maintain, that would eventually end up in the standard libarary, and that Twisted could plug into optionally. I don't view that as a bad thing. A "wsgi for events", if you will.
Also, it gives the Twisted team some potential competition to focus on. Possibly a source of motivation, and besides, everybody loves a race :).
That said, I think that the fact that PyNotifier comes with zero unit tests ought to speak for itself.
Kamaelia seems more promising to me; I imagine that they might produce some serious competition eventually if that's what they aim to do. However, they claim that only the "Axon" part of their project is stable, and that doesn't yet include anything that does select().
Conclusion: if you think that the web-based Python world is in some kind of crisis because there are a lot of frameworks (I don't), then I don't believe the event-driven networking side of things is headed for the same fate. As Itamar noted, Zope3 is moving towards using Twisted for its event loop even as Freevo moves away. There is more than one project in the world that has 'import select' in it, but I find that hard to construe as a disaster. None seem to be nearly as far-reaching or complete as Twisted is yet.
More information about the Twisted-Python