Wiele bibliotek Pythona, nawet ostatnio napisane, używa httplib2 lub interfejsu gniazda do wykonywania zadań sieciowych.Czy Twisted jest zamiennikiem httplib2/gniazda?
Jest to oczywiście łatwiejsze do kodu niż Twisted ze względu na ich charakter blokujący, ale myślę, że jest to wadą przy integracji z innym kodem, zwłaszcza z GUI. Jeśli chcesz skalowalności, współbieżności lub integracji GUI, unikając wielowątkowości, Twisted jest naturalnym wyborem.
Więc byłbym zainteresowany opinii w tych sprawach:
- Jeżeli nowy kod sieci (z wyjątkiem małych narzędzi wiersza poleceń) jest napisane ze skręconymi?
- Czy miksowałeś Twisted, http2lib lub kod gniazda w tym samym projekcie?
- Czy Twisted pythonic dla większości bibliotek (jest bardziej skomplikowany niż alternatywy, wprowadzić zależność od niestandardowego pakietu ...)?
Edytuj: proszę pozwolić mi wyrazić to w inny sposób. Czy czujesz, że pisanie nowego kodu bibliotecznego z Twisted może dodać barierę do jego przyjęcia? Twisted ma oczywiste zalety (zwłaszcza przenośność i skalowalność, jak podaje gimel), ale fakt, że nie jest to rdzeń biblioteki Pythona, może być uważany przez niektórych za wadę.
-1. Punkt 1: skręcony jest doskonały dla każdej skali kodu sieciowego, twoje ograniczenie nie ma zastosowania. Kod zawinięty w wątki ma najgorszą wydajność i jest trudny do uzyskania i debugowania. Punkt 2: Nie. Jeśli mam pełen skręcony stos do mojej dyspozycji, dlaczego miałbym używać http2lib lub gniazda? Pont 3: Asyncore/asynchat, poważnie? :( – nosklo
@nosklo: Punkt 1: jesteś typem Twisted Zealot, o którym mówię Nie ma argumentu, że skręcenie jest bardziej skomplikowane Kod zawijany w wątki jest łatwy do uzyskania, jeśli użyjesz kolejki do komunikacji między wyrazami, bardzo wysoko wątpliwość, że wydajność będzie miała znaczenie dla większości aplikacji Punkt 2: Czy myślisz o stworzeniu serwera sieciowego? Nie sądzę, punkt 3: Asyncore/Asynchat poważnie ... Patrz punkt 1. – Unknown
Faceci, YMMV, szczególnie w zależności od twojego doświadczenia z zestaw narzędzi lub inny. Obawiam się, że moje pierwotne pytanie było zbyt subiektywne: Nie jestem tak bardzo zaniepokojony postrzeganą trudnością Twisted (moim problemem jest nauczenie się tego, i myślę, że jest to udokumentowane tak, aby ewentualni opiekunowie tego kodu nie zostaną utracone) niż fakt, że może ograniczyć jego akceptowalność dla innych koderów. – oparisy