Molte librerie Python, anche se di recente scritte, usano httplib2 o l'interfaccia socket per eseguire attività di rete.Twisted è una sostituzione di httplib2/socket?
Questi sono ovviamente più facili da codificare rispetto a Twisted a causa della loro natura di blocco, ma penso che questo sia un inconveniente quando li si integra con un altro codice, specialmente quello con interfaccia grafica. Se si desidera la scalabilità, la concorrenza o l'integrazione della GUI evitando il multithreading, Twisted è quindi una scelta naturale.
Quindi sarei interessato a pareri in quelle materie:
- caso nuovo codice di rete (con l'eccezione di piccoli utensili da riga di comando) essere scritto con Twisted?
- Vuoi mescolare Twisted, http2lib o codice socket nello stesso progetto?
- Twisted pythonic per la maggior parte delle librerie (è più complesso delle alternative, introduce una dipendenza da un pacchetto non standard ...)?
Modifica: per favore lasciatemi esprimere questo in un altro modo. Ti senti scrivere un nuovo codice di libreria con Twisted potrebbe aggiungere un ostacolo alla sua adozione? Twisted ha vantaggi evidenti (in particolare portabilità e scalabilità come dichiarato da gimel), ma il fatto che non sia una libreria core python può essere considerato da alcuni come un inconveniente.
-1. Punto 1: twistato è ottimo per qualsiasi scala del codice di rete, la restrizione non si applica. Il codice con il thread inserito ha le peggiori prestazioni ed è difficile eseguirlo correttamente e eseguire il debug. Punto 2: No. Se ho l'intero stack contorto a mia disposizione, perché dovrei usare http2lib o socket? Pont 3: Asyncore/asynchat, sul serio? :( – nosklo
@nosklo: Punto 1: tu sei il tipo di Twisted Zealot di cui sto parlando Non si può sostenere che il twist sia più complesso. Il codice thread-wrapped è facile da ottenere correttamente se si usa Queue per la comunicazione interthread Dubbio che le prestazioni contano per la maggior parte delle applicazioni Punto 2: Stai pensando di creare un server web? Io non penso Punto 3: Asyncore/Asynchat seriamente ... Vedi il punto 1. – Unknown
Ragazzi, YMMV, specialmente in base alla tua esperienza con Ho paura che la mia domanda iniziale fosse troppo soggettiva Io non sono così preoccupato per la difficoltà percepita di Twisted (è un mio problema apprenderlo, e penso che sia documentato in modo tale che i possibili manutentori di questo codice non andrà perso) che dal fatto che potrebbe limitare la sua accettabilità ad altri codificatori – oparisy