ट्विस्ट के कई अलग-अलग पहलू हैं जो आपको ठंडा लग सकता है।
मुड़ बहुत सारे और प्रोटोकॉल कार्यान्वयन के बहुत सारे शामिल है, जिसका अर्थ है कि अधिक नहीं की तुलना में होने की संभावना वहाँ एक API आप कुछ दूरस्थ प्रणाली (या तो ग्राहक या ज्यादातर मामलों में सर्वर) से बात करने के लिए उपयोग कर सकते हो जाएगा - यह HTTP, FTP, SMTP, POP3, IMAP4 हो , DNS, IRC, MSN, OSCAR, XMPP/Jabber, telnet, SSH, एसएसएल, NNTP, या वास्तव में फिंगर, या अध्यक्ष, या DJB'snetstrings तरह निचले स्तर प्रोटोकॉल निर्माण-प्रोटोकॉल से एक की तरह अस्पष्ट प्रोटोकॉल में से एक, simple line-oriented protocols, या मुड़ के कस्टम प्रोटोकॉल की एक भी जैसे Perspective Broker (PB) या Asynchronous Messaging Protocol (AMP)।
ट्विस्ट के बारे में एक और अच्छी चीज यह है कि इन निम्न-स्तरीय प्रोटोकॉल कार्यान्वयन के शीर्ष पर, आपको अक्सर एक अमूर्तता मिल जाएगी जो उपयोग करने में कुछ आसान है। उदाहरण के लिए, एक HTTP सर्वर लिखते समय, ट्विस्टेड वेब a "Resource" abstraction प्रदान करता है जो आपको पाइथन ऑब्जेक्ट्स से यूआरएल पदानुक्रमों को बनाने की सुविधा देता है ताकि यह निर्धारित किया जा सके कि अनुरोधों का जवाब कैसे दिया जाएगा।
यह सब सहयोगी एपीआई के साथ मिलकर जुड़ा हुआ है, मुख्य रूप से इस तथ्य के कारण कि नेटवर्क पर अवरुद्ध करके इस कार्यक्षमता में से कोई भी कार्यान्वित नहीं किया गया है, इसलिए आपको a thread for every operation you want to do शुरू करने की आवश्यकता नहीं है। यह स्केलेबिलिटी में योगदान देता है जो लोग अक्सर ट्विस्ट में श्रेय देते हैं (हालांकि यह एक स्केलेबिलिटी है जिसमें केवल एक कंप्यूटर शामिल है, न कि स्केलेबिलिटी की तरह जो आपके एप्लिकेशन को मेजबानों के पूरे समूह का उपयोग करने देती है) क्योंकि ट्विस्ट हजारों को संभाल सकता है एक थ्रेड में कनेक्शन, जो हजारों धागे होने से बेहतर काम करता है, प्रत्येक एक कनेक्शन के लिए।
थ्रेडिंग से बचने के लिए परीक्षण और डिबगिंग (और इसलिए सामान्य रूप से विश्वसनीयता) के लिए भी फायदेमंद है। चूंकि एक विशिष्ट ट्विस्ट-आधारित प्रोग्राम में कोई पूर्व-खाली संदर्भ स्विचिंग नहीं है, इसलिए आपको आमतौर पर लॉकिंग के बारे में चिंता करने की आवश्यकता नहीं होती है। विभिन्न नेटवर्क घटनाओं के क्रम पर निर्भर रेस स्थितियां आसानी से उन नेटवर्क घटनाओं को अनुकरण करके इकाई परीक्षण की जा सकती हैं (जबकि एक संदर्भ स्विच अनुकरण करना अधिकांश (किसी भी?) थ्रेडिंग पुस्तकालयों द्वारा प्रदान की जाने वाली सुविधा नहीं है)।
ट्विस्ट भी वास्तव में concerned with quality है।तो आप एक ट्विस्ट रिलीज में rarely find regressions देखेंगे, और अधिकांश एपीआई सिर्फ काम करते हैं, भले ही आप उन्हें सामान्य तरीके से उपयोग नहीं कर रहे हैं (क्योंकि हम उन सभी तरीकों का परीक्षण करने का प्रयास करते हैं जो आप उनका उपयोग कर सकते हैं, न कि सामान्य तरीके से) । यह पिछले 3 या 4 वर्षों में ट्विस्ट (या संशोधित) में जोड़े गए सभी कोडों के लिए विशेष रूप से सच है, क्योंकि तब से 100% लाइन कवरेज न्यूनतम परीक्षण आवश्यकता रही है।
ट्विस्ट की एक और अक्सर अनदेखी शक्ति अलग-अलग प्लेटफार्म quirks का पता लगाने के दस साल है। विभिन्न प्लेटफार्मों पर बहुत सारी अनियंत्रित सॉकेट त्रुटियां हैं और यह जानना वाकई मुश्किल है कि वे भी मौजूद हैं, उन्हें अकेले संभालने दें। मुड़कर धीरे-धीरे इनमें से अधिक से अधिक कवर किया गया है, और इस बिंदु पर इसके बारे में काफी अच्छा है। छोटी परियोजनाओं में यह अनुभव नहीं होता है, इसलिए वे अस्पष्ट विफलता मोड को याद करते हैं जो शायद आपके द्वारा जारी की जाने वाली किसी भी परियोजना के उपयोगकर्ताओं के साथ ही होगा।
जो कुछ भी कहता है, मुझे मुड़ने के बारे में सबसे अच्छा लगता है कि यह एक बहुत उबाऊ लाइब्रेरी है जो मुझे बहुत सारी उबाऊ समस्याओं को अनदेखा करने देती है और केवल रोचक और मजेदार चीजों पर ध्यान केंद्रित करती है। :)
ऐसा कुछ भी नहीं लगता है [वहां पर] (http://wiki.python.org/moin/UsefulModules#Networking) जो दूरस्थ रूप से ट्विस्ट से तुलना करता है, इसलिए सवाल का जवाब देना मुश्किल है । आप किस विकल्प पर विचार कर रहे हैं? –
@ स्वेन भी एक पायथन डेवलपर नहीं है, मैं सिर्फ इतना उत्सुक हूं कि ट्विस्ट को जितना बड़ा घोषित किया जाता है उतना ही बड़ा होता है। –
@ स्वेन मार्नच: यह एक समस्या डोमेन पर निर्भर करता है उदाहरण के लिए, ['gevent'] (http://www.gevent.org/)" भाग्य टेलर "एप्लिकेशन के लिए मुड़ने का विकल्प है http://blip.tv/ फ़ाइल/4883016 – jfs