[Python] Concorrenza differita (era: Re: Deploy con nginx e proxy_pass)

Roberto De Ioris roberto a unbit.it
Mar 24 Dic 2013 13:15:47 CET


> Roberto De Ioris wrote:
>> odio la programmazione callback based
>
> Interessante, qui ci va una bella discussione sulla concorrenza.
>
> Solo che diversamente da voi che gozzovigliate, io sto ficcando casa
> dentro tanti scatoloni per il trasloco, quindi per me se ne riparla dopo
> l'epifania.
>
>

Ok,

#callback based:

def pluto():
    print("fine");

def topolino():
    wait_for('pluto', pluto)

def pippo():
    wait_for('topolino', topolino)

wait_for('pippo', pippo)

# coroutine/greenthread/stackswitch/blah blah based:

wait_for('pippo')
pippo()
wait_for('topolino')
topolino()
wait_for('pluto')
pluto()


Personalmente trovo molto piu' leggibile la seconda forma (anche se
internamente l'implementazione e' piu' complessa) Se sei un fan di Go mi
darai regione (visto che e' come funzionano le goroutine) ;)

La prima la trovo molto comoda solo quando il nesting delle callback non
supera le 2 (quindi praticamente mai) e calcolando che e' la base di
funzionamento di node.js (che qui mentre blastate php diventa la nuova
preoccupante moda del momento con l'ultima conferenza che ha fatto 4k
persone) probabilmente sbaglio io :)

-- 
Roberto De Ioris
http://unbit.it


Maggiori informazioni sulla lista Python