OVHcloud
Senior SWE @OVH - Gopher / Continuous Delivery / Metalhead
Développeur/chef de projet dans une grande SSII européenne pendant 10 ans, j’ai rejoint OVH en 2016 pour travailler sur les problématiques de Continuous Delivery At Scale.
Twitter : @francoissamin
Le choix d’un langage pour un projet est toujours un moment important. Lorsque qu’on fait l’exercice de manière objectif, il y a de nombreux critères à prendre en compte dont la syntaxe, l’écosystème, la maturité, … Il en est un qui est souvent oublié et qui est un point majeure de l’expérience de dévelopeur: la gestion de la concurrence. Dans certains langages, il est primordiale de comprendre comment la concurrence est implémentée sous le capot si on ne veut pas tomber dans certains pièges et perdre en performance.
Nous allons rentrer dans le détail des différentes implémentations et utilisations de la concurrence dans les langages Javascript, Golang, Rust et Java afin de mieux comprendre les avantages et inconvénients de chacun. Parfois supportée nativement par le langage, parfois apportée par des librairies tierces, les implémentations de la concurrence peuvent être très différentes. Nous allons aborder les notions de green thread, de native thread, de futures, promises, goroutines, de work stealing ainsi que les différents exécuteurs asynchrones et expériences développeurs pour chacun de ces langages.