Programmation asynchrone

L'synchronie, dans la programmation, fais référence à l'occurrence d'événements indépendants du flux principal du programme et des moyens de gérer ses événements. Cela permet à une unité de travail de s'exécuter séparément du thread d'application principal, puis de lui notifier quand le travail a été exécuté avec succès ou non. Cela permet de meilleures performances et une réactivité accrue.

Certains parties du "Rust asynchrone" sont prise en charge avec les mêmes garanties de stabilité que le "Rust synchrone", d'autres parties sont encore en cours de maturation et changeront avec le temps. Le "Rust asynchrone" est plus difficile à utiliser et peut entraîner une charge de maintenance plus élevée, mais vous offre en retour les meilleurs performances de sa catégorie. Tous cela s'améliore constamment, de sorte que l'impact de ces problèmes s'estompera avec le temps. A titre d'exemple, Rust a des futures asynchrones depuis plus de trois ans, mais le support stable async/await dans le langage lui-même n'a que quelques mois.

Lorsque l'on parle de programmation asynchrone, on entends souvent parler de concurrence. C'est la capacité de différentes parties ou unité d'un programme à être exécutée dans le désordre ou dans un ordre partiel, sans affecter le résultat final et permettre une exécution parallèle des unités.

Ces dernières années, deux nouveaux langages de programmation ont gagné en popularité auprès des développeurs. L'un est Rust et l'autre est Go. Une grande partie de leur Succès est leur prise en charge supérieure des modèles de programmation d'accès concurrentiel.

En fait, l'un des premiers slogans de Rust est "fearless concurrency" (concurrence sans peur en français). Il promet la productivité des développeurs dans l'écriture de programmes multi-threads asynchrones optimisés pour les architectures de processeurs multicœurs d'aujourd'hui. Comme l'a démontre Node.js, une programmation asynchrone simple est cruciale pour le succès d'un langage ou d'un framework côté serveur.

Si la programmation asynchrone vous intéresse, sachez que 4 des 10 plus importantes crates Rust, tokio, async, futures et hyper sont des framework pour des applications multi-thread asynchrone et Rust fournis un book officiel concernant la programmation asynchrone.