8 ms·
I have built several twisted apps which are in use in production environments, including web and jabber/xmpp apps. I love twisted, and use it whenever possible.
by Rantenki 17y ago
I have built several twisted apps which are in use in production environments, including web and jabber/xmpp apps. I love twisted, and use it whenever possible...
...and I agree completely with the op.
Twisted is powerful, flexible, well architected, and reliable. It is also damn near impossible to get over the steep learning curve and to actually USE it.
Show me a competent Twisted developer, and I'll show you someone who had a gun jammed roughly in their mouth, and was FORCED to learn it at some point. We are all glad we know it _now_, but that learning process SUCKED.
- pcarmichael 17y agoDefinitely agree on the learning curve. I'm using twisted for a distributed computing framework that is custom tailored for our requirements (looked into Hadoop, disco, etc. but decided against for valid technical and/or logistical reasons). I go to a lot of pains so that clients of my framework never have to touch or even see twisted though it is under the hood. I think I spent about a week in the beginning really wrestling with Twisted and what was the appropriate way to transcribe my ideas into the "deferred" model. Once it clicked it was relatively smooth sailing (all in all, Twisted is a pretty sweet framework but not without its gotchas that you have to learn the hard way). A week spent learning a new framework isn't much time, but when clients want to get their app up and running ASAP it is an eternity and ultimately would prevent their adoption of my framework.
- ErrantX 17y agoI have tried using twisted in pretty much the same way. Actually I tried it 3 times and eventually just gave up. With no schooling in the terminology and ideas it's just like a whole other language :D Tornado does look nicer and I have to admit purely from the documentation. I read through it for about 10 minutes just now and I can for the first time actually see how it would work within the realms of our project. With that said it might be a useful way to figure out what Twisted is all about too....
- deleted 17y ago[deleted]
- aaronblohowiak 17y agoI'd rather struggle with difficulty of concept than difficulty in finding information.
- mahmud 17y agoWhat self-respecting programmer doesn't idle in the freenode channels of the software packages he or she is learning? You immerse yourself in the community and ask intelligent questions; if anything, just to see what the community is like before you commit your project to depend on something written by either douchebags or morons. I did just that with the twisted community and I found them a good bunch.
- aaronblohowiak 17y agoYou're on to something about community. A healthy OSS project has a healthy community. Maintaining a painless ramp-up with thoroughly organized documentation goes a long way towards nurturing an expansive, and inclusive community. By expansive and inclusive community, I do indeed mean that copy+paste jockeys can hack their way through it. If copypasters can get something done, then usually it means the defaults are usable, the common use-cases demonstrated, and the examples are up-to-date. When all of those conditions are met, it also means that the inertia to just trying something out is WAY less, and the interest:effort in just "screwing around" with it is now much better, which is the first step in getting some programmers (like me) to give something a try. If I needed what twisted had to offer, I'd give it a try. But if I'm just screwing around (an exploratory phase that sometimes leads to much deeper commitment) then I'm going to go with whatever is easiest that seems to have sufficient depth. Anyway, I have plenty of self-respect, thank you. I am sure there are others like me. edit:textarea != vim
- pcarmichael 17y agoMy company blocks irc. The best way I've found in that case is to gauge the community by reading the mailing list posts and bug report comments.
- caffeine 17y agohttp://twistedmatrix.com/projects/core/documentation/howto/tutorial/index.html http://twistedmatrix.com/projects/core/documentation/howto/t... What's wrong with that? Seems quite comprehensible to me...
- frig 17y agoMinor point, but do you notice how there's not even "previous" / "next" (and also "up") links on each page of documentation? Attention to small details is the greater part of friendliness.
- moe 17y agoIt's indeed the starting point to learn the fundamentals - but becomes almost hilarious after step 4 when they begin to introduce Components, Adapters, Perspective Broker and other things without losing many words about what all that stuff does, much less how to re-arrange it for custom needs. The best investment in terms of mindshare the twisted project could make at this point would be to simply sit down and write documentation. Grab sphinx (or another tool that makes doc-writing fun) and start out by writing a page about each Class that is being used in these examples. Why does it exist, what role does it have and don't forget the link to the API doc. Then I'd suggest to make a high-level overview, perhaps even with a little diagram, that explains how everything plays together in the various application types. Hyperlinks to the previously mentioned detail-pages should then work wonders for anyone exploring the project. Writing good documentation is hard, but you only have to do it once. The lack of documentation on the other hand forces every new user to wrap their heads around innocent lines like this: internet.TCPServer(79, factory).setServiceParent( service.IServiceCollection(application)) I'm surely not the only one who put off learning about that whole Service metaphor and stuck with the simpler examples until I absolutely couldn't avoid it any longer. That's not the way you want users to approach your framework.
- masklinn 17y ago> The best investment in terms of mindshare the twisted project could make at this point would be to simply sit down and write documentation. Making documentations (and contributions to it) a first-class contribution with its bugs & discussions & refactorings, and fun to write (the way the Django project handles it) would probably also go quite a way towards that.