I keep hearing all this hype about Twisted for python, but i just find it plain confusing. What do you think is more simple to use? Simple sockets or implementing twisted ?
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
I stand by what I wrote in Python in a Nutshell (2nd edition p. 540):
Asking whether this incredibly rich and powerful framework is “simpler to use” than “simple sockets” is a bit like asking if a car is “simpler to use” than a screw: what a weird question!
Cars are built with screws (among other things), and can’t be quite as “simple to use” — just because a screw does so little, a car does so much.
But if you want to get from A to B (and possibly carry passengers, luggage, pets, …) a screw won’t help much (unless you’re basically going to build a car from scratch;-).
Of course cars aren’t the only way to get from A to B, just as twisted is not the only way to build network-centric systems in Python. A horse and buggy (like asyncore) is quaint and fun, though less practical; a high-speed train (like tornado) may be easier to use and at least as fast, though much less flexible; and for various specialized purposes you may prefer all kinds of other conveyances, from unicycles to cruise ships (like, in Python and for networking, all kinds of other packages, from paramiko to dnspython) — all of them will include screws as part of their components (like, all will include sockets as part of the way they’re built), none will be as easy to use as “simple sockets”, each (in its own range of applicability) will do a lot more for you than “simple sockets” on their own possibly could.
Twistedis an excellent choice in a vast number of cases, often the best when you need to integrate multiple aspects of functionality and/or implement some protocol for which there is no fully packaged solution. “Simple sockets” are not — they’re just a low-level component out of which higher-functionality, higher-level ones are built, and there rarely is a good reason (except learning, of course) to “roll your own” higher level components built “from scratch” on top of sockets (rather than picking powerful, well-built existing ones) — just like you’d rarely be justified in building your own computer out of transistors, resistors, capacitors, etc, rather than picking appropriate integrated circuits;-).