[Python] È stato rilasciato Python 3.5

Nicola Larosa nico a tekNico.net
Mar 15 Set 2015 14:29:25 CEST


Alessandro Re wrote:
> Anche se personalmente è un po' che sono interessato alle
> async/await.

Appena introdotte nella 3.5:

PEP 0492 -- Coroutines with async and await syntax
<https://www.python.org/dev/peps/pep-0492/>


> Non so ancora una beata fava su tutto questo, anche perché la mia
> impressione è che per lo più venga usato in ambito web - che io ignoro
> - però mi incuriosisce molto dal punto di vista dello sviluppo delle
> GUI...

La programmazione ad eventi asincroni è un modello di concorrenza
indipendente dal campo applicativo, puoi farci di tutto.

Il lavoro di GvR ed altri su Tulip ha finito per tirar dentro la libreria
standard della 3.4 buona parte del cuore di Twisted, con un po' di nomi
cambiati:

PEP 3156 -- Asynchronous IO Support Rebooted: the "asyncio" Module
<https://www.python.org/dev/peps/pep-3156/>

Un mattone di certo non semplice da digerire, soprattutto se non si ha
precedente esperienza di Twisted o Tornado o programmazione asincrona in
generale.

Ecco una bella spiegazione della differenza tra preemptive
multithreading, eventi asincroni e coroutine (gevent, Eventlet). Scritta
da un core dev di Twisted, non è difficile immaginare la preferenza: ;-)

Unyielding <https://glyph.twistedmatrix.com/2014/02/unyielding.html>

E visto che ultimamente non può mancare un accenno, ;-) il modello di
concorrenza di Go confrontato ai precedenti. tl;dr: assimilabile a
coroutine/green threads.

Sane Concurrency with Go
<https://blog.mozilla.org/services/2014/03/12/sane-concurrency-with-go/>


> Magari un giorno o l'altro mi ci metto, prendo SDL* e mi studio
> questa possibilità per i fatti miei, ma se ci fosse già qualcosa mi 
> interesserebbe studiarlo un po'.

Python + SDL = PyGame <http://pygame.org/>. Vecchio come il cucco, ma per
studiare l'event loop va bene. :-)

Qualcosa di più moderno, che usa OpenGL, è Pyglet <http://pyglet.org/>.

-- 
Nicola 'tekNico' Larosa <http://www.tekNico.net/>


Maggiori informazioni sulla lista Python