On 03/01/2014 18:09, Roberto De Ioris wrote:
[...]
Python e' utilizzabilissimo, e' solo che devi essere "consapevole" (stessa
cosa in ruby o in perl), poiche' ci sono diversi framework per la
programmazione asincrona e devi sceglierne uno (io consiglio sempre
gevent, ma dopo averlo studiato, non perche' sia migliore tecnicamente ma
perche' e' quello con la base di utilizzatori e librerie piu' ampia e
mantenuta di questi tempi [e poi io do' sempre valore aggiunto ai progetti
in cui il core developer non e' un "asshole"]).
la differenza con node, erlang, go (e rust e tanti altri) e' che il
framework asincrono e' direttamente parte del core cosi' come le primitive
per i microthread. L'utente non deve preoccuparsi (piu' o meno) che
qualche operazione sia bloccante.
Io su soluzioni come gevent o microthread ho sempre questi due dubbi:
1) Usano il modello sincrono, "nascondendo" le azioni asincrone.
Questo per molti รจ un vantaggio, ma a me non piacciono i pattern che
ti nascondono le cose (specialmente se importanti).
Inoltre, in linguaggi come go, non hai nessun controllo sul runtime
e quindi non puoi ottimizzare l'esecuzione delle goroutine in
eventuali casi particolari.
2) Efficienza.
Che succede se in un processo Python con gevent stai gestendo un
migliaio di threads? Quanta memoria stai usando?
Soluzioni come gevent, goroutine e soci tendono ad usare moltissima
memoria virtuale, che potrebbe facilmente risultare in una
degradazione delle performance, a causa dello swapping.
> [...]
Ciao Manlio
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python