Benjamin Coenen

Benjamin Coenen

Apollo GraphQL

Software engineer @ Apollo GraphQL

Un belge perdu à Paris. Je suis tombé amoureux du développement informatique en écrivant de l'assembleur sur des microcontrôleurs. J'adore me battre avec des problèmes de performance. Toujours en recherche de comprendre ce qu'il se passe sous le capot je passe une bonne partie de mon temps à écrire du Rust & du Go. "Opensource everything" est mon objectif. Speaker à mes heures perdues. J'adore partager et contribuer dans la communauté tech et open source. Ancien contributeur actif de https://github.io/ovh/cds. Aujourd’hui dès que le temps me le permet je contribue activement à rust-analyzer. Au boulot et sur mon temps perso entre autre j’écris un compilateur en Rust.

Twitter : @bnj25

Blog: https://github.com/bnjjj

lang

Track : Languages

Type de présentation : Conference

Tour d’horizon de la gestion de la concurrence dans différents langages

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.