<div dir="ltr"><div>Sembra interessante, ma è da un po' che ci sono framework Python in grado di superare le performance di Node, anche senza sfruttare roba asincrona. Il vero confronto che oggi conta per Python in questi termini è quello con go, ed è esattamente dove uvloop va a parare.<br></div><div>Inoltre, in generale, se si pensa a come funziona Node, credo che chiunque con un po' di conoscenza informatica sarebbe arrivato a capire che era solo questione di avere il framework giusto, piuttosto che di linguaggio.<br><br></div><div>Personalmente, io vedo l'asincronicità come un'ottimizzazione, perciò ha senso solo e solo se il limite è effettivamente dato dall'I/O, perchè molte volte il problema non è quello. I benchmark vanno presi con le pinze anche per questo: a volte la velocità in più ottenuta è dovuta ad ottimizzazioni che non hanno niente a che fare con l'asincronicità. <br><br></div><div>In questo hanno usato pypy per falcon, ma non cython, per il quale falcon ha un supporto migliore. Hanno usato gunicorn e non uwsgi, che in genere dà risultati migliori e ed è quello che verebbe usato: questo va ancora a vantaggio di sanic, visto che non ha bisogno di nessuno dei due. Sanic usa websockets, falcon no, flask neppure e il problema di websockets è che non ci fai API RESTful, perchè funziona in maniera completamente diversa. <br>Ancora: sanic usa ujson, ma falcon no e il benchmark riguarda proprio JSON! Quindi, non è chiaro a cosa sia dovuta la performance di sanic, ma io conosco molto bene falcon, e sono sicuro che fare lo stesso test, lanciando falcon con uwsgi + ujson, darebbe altri risultati, fermo restando che confrontare un framework websockets con uno che usa http è ridicolo.<br></div><div><br></div><div>Il fatto che ci sia un framework che la fornisce già pronta è positivo, così il modo in cui la comunità sta digerendo e processando l'async in Python. Il fatto che la questione sincrono/asincrono venga portata avanti a benchmark fatti male invece è un cancro che va estirpato.<br><br></div><div>Jacopo<br></div><div><br><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2017-04-19 21:26 GMT+02:00 Carlos Catucci <span dir="ltr"><<a href="mailto:carlos.catucci@gmail.com" target="_blank">carlos.catucci@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Sorry, node.js, Python is faster!<br>
<br>
For a very long time now, node.js has evolved nicely. This was<br>
because, right from beginning, it was designed to run smoothly, non<br>
blocking, async mode.<br>
<br>
Green threads - instead of pthreads with giant overhead - were the<br>
right way for low latency applications.<br>
<br>
But now there is libuv module for Python 3. Means: Python still runs<br>
single thread with GIL, but libuv C module runs in a multi-threaded,<br>
interleaved way to serve tens of thousands of TCP/UDP clients<br>
smoothly.<br>
<br>
<a href="https://github.com/channelcat/sanic/blob/master/README.rst" rel="noreferrer" target="_blank">https://github.com/channelcat/<wbr>sanic/blob/master/README.rst</a><br>
<span class="HOEnZb"><font color="#888888"><br>
<br>
Carlos<br>
--<br>
EZLN ... Para Todos Todo ... Nada para nosotros<br>
______________________________<wbr>_________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" rel="noreferrer" target="_blank">http://lists.python.it/<wbr>mailman/listinfo/python</a><br>
</font></span></blockquote></div><br></div>