3 points par GN⁺ 2023-08-26 | Aucun commentaire pour le moment. | Partager sur WhatsApp
  • L’article aborde l’expérience de l’auteur avec le langage de programmation Elixir, en mettant l’accent sur ses fonctionnalités de concurrence et de parallélisme.
  • L’auteur explique qu’il utilise Elixir comme langage principal depuis 5 à 6 ans, en reconnaissant ses performances et le peu d’inconvénients qu’il présente.
  • L’auteur compare le modèle de concurrence d’Elixir à ceux de PHP et Python, affirmant que celui de PHP dépend du serveur web, tandis que Python rencontre des difficultés de concurrence à cause du Global Interpreter Lock (GIL).
  • Elixir est construit sur Erlang et la machine virtuelle Erlang (BEAM), conçue pour exécuter un grand nombre de processus légers, ce qui constitue la base de sa concurrence et de son parallélisme.
  • Au démarrage, BEAM crée des threads pour les ordonnanceurs et, par défaut, gère la planification des processus à raison d’un par cœur CPU disponible.
  • L’auteur explique que les caractéristiques immuables et fonctionnelles d’Elixir et d’Erlang ont été choisies de manière pragmatique pour atteindre un haut niveau de concurrence et de parallélisme.
  • Dans Elixir, les processus ne partagent pas d’état et ne peuvent communiquer qu’asynchronement via l’échange de messages, ce qui garantit une exécution concurrente et parallèle sûre.
  • L’auteur note que, lorsqu’on écrit du code en Elixir, il n’est généralement pas nécessaire de trop se préoccuper de ces principes fondamentaux, car la plupart des requêtes web s’exécutent dans un seul processus.
  • Elixir propose un mécanisme async/await pour les tâches concurrentes, implémenté dans le module Task, avec notamment la fonction Task.async_stream qui exécute une Task pour chaque élément énumérable.
  • L’auteur conclut que les excellentes options de concurrence et de parallélisme d’Elixir et d’Erlang ne sont pas un ajout tardif, mais sont intégrées aux fondations mêmes du runtime, si bien que la concurrence sur BEAM n’est ni risquée ni difficile.

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.