Par ailleurs, await n’est utile que pour le cas les projets asynchrones, ce qui est 0.1% du code. L’alternative c’est les callbacks, ce qui est bien plus dégueu.
]]>Je sais, c’est en train d’être fixé, mais du coup je poste ça surtout pour rajouter un truc dont tu n’as pas parlé dans l’article : trio n’est pas encore production-ready, attendez encore un peu avant de lancer vos fusées avec. C’est super prometteur, ça marche déjà carrément bien pour beaucoup de choses, la doc est géniale (sérieusement, ça faisait longtemps que j’avais pas vu une doc aussi bien faite, limpide, un bonheur à lire), mais y’a encore beaucoup de discussions en cours sur le design, quelques changements d’api à prévoir, des angles très anguleux à arrondir…
]]>@YvesD bien vu !
@Morgotth le problème de javascript c’est que l’event loop est totalement intégré à la runtime, donc impossible de faire ce que fait trio sans avoir à écrire une nouvelle spec super impactante (et jamais implémenter proprement sans doute) pour tous les navigateurs. Sans compter toutes les api fonctionnant avec des callbacks (ou promise ce qui revient au même) qui deviendrait obsolète, soit quasiment tout l’écosystème javascript (à la différence de python qui reste majoritairement synchrone)…
]]>Ahah je suis bien d’accord avec le début de l’article… La plupart des développeurs ne comprenne déjà pas bien les threads ou les process, les signaux, les queues, etc. Comment bien gérer asyncio si on n’a pas une grosse expérience sur tout ça avant? Parce que ça a beau être emballé différemment, c’est les mêmes techniques, les mêmes outils utilisés derrière, et donc les mêmes problèmes qui se posent au final. Au final je ne pense pas que ces libs simplifient vraiment la vie par rapport à du multiprocessing. Bon c’est pas le point je sais je m’égare.
Mais putain, pourquoi vouloir se taper du code spaghetti quand 99% du temps en plus il y a pas vraiment besoin d’async…
]]>Super article !!
Sinon dans le ‘work_generator’; ca ne serait pas ‘work’ au lieu du premier ‘nursery’ dans le start_soon
nursery.start_soon(work, sleep_time, nursery) # — au lieu de nursery.start_soon(nursery, sleep_time, nursery)
]]>