- Le nouveau site présente Elixir comme un langage basé sur Erlang capable de passer du développement individuel à des équipes de plusieurs centaines de personnes, et d’un serveur unique à un réseau mondial
- Grâce à l’immutabilité, la sûreté mémoire et un système de types progressif, il permet de construire des systèmes maintenables et faciles à remettre en service après une panne
- Une même base de code peut être étendue sur des machines multicœurs et sur plusieurs nœuds, et, combinée à Numerical Elixir, elle prend en charge jusqu’au calcul sur GPU
- Avec l’écosystème Phoenix, Nerves, Nx et Broadway, il est possible de développer pour le web, l’embarqué, le machine learning, le traitement de données, l’IoT et les systèmes distribués
- Le gestionnaire de paquets, le formateur de code, les outils de documentation, IEx, Livebook et l’écosystème Hex accompagnent le projet du prototypage à la production
Expérience de développement et montée en charge
- Elixir combine rapidité de développement et pratiques de production robustes, en s’appuyant sur les décennies de fiabilité et de tolérance aux pannes d’Erlang
- Il vise un code clair, centré sur les données et le domaine
- Il offre immutabilité et sûreté mémoire
- Il permet de tirer parti du système de types progressif d’Elixir 1.20
- Une seule base de code peut monter verticalement en charge sur des machines multicœurs et horizontalement entre plusieurs nœuds via leur communication, ce qui convient bien aux systèmes orientés messages et aux systèmes web en temps réel
- En l’associant à Numerical Elixir, il est possible d’étendre les calculs aux cœurs, aux clusters et aux GPU
- Elixir a été classé plusieurs années de suite parmi les langages les plus appréciés au monde, et les résultats sont consultables dans l’enquête Stack Overflow 2025
- Il inclut un gestionnaire de paquets natif, un formateur de code et des fonctions de documentation
- Avec le shell interactif IEx et le notebook interactif Livebook, on peut prototyper rapidement et faire du débogage en temps réel sur des systèmes en cours d’exécution
- Il est utilisé en production dans des secteurs et applications variés, du développeur indépendant aux entreprises du Fortune 500
Cas d’usage et écosystème
- Pour le développement web, on utilise Phoenix pour accélérer le développement, LiveView pour ajouter des fonctions temps réel avec peu de code, Ecto pour la couche de données, ainsi que Plug
- Dans les systèmes embarqués, Nerves empaquette l’application complète sous forme de petit firmware et fournit les mises à jour sans fil ainsi qu’une tolérance aux pannes de niveau opérateur
- Avec AtomVM, il est possible d’exécuter Elixir sur des appareils très compacts comme des microcontrôleurs
- En machine learning, Nx fournit des tenseurs accélérés par GPU, et Livebook permet d’exécuter des modèles préentraînés, de visualiser les données et de déployer le tout dans un seul environnement
- Pour le traitement des données et des médias, l’écosystème exploite la contre-pression et la concurrence
- Basé sur la VM Erlang, Elixir est aussi utilisé pour l’IoT et les systèmes distribués, avec des projets Erlang associés comme EMQX, RabbitMQ, Riak
- Des milliers de paquets communautaires peuvent être explorés sur Hex, et l’écosystème continue de croître
- L’Elixir Team pilote le développement du langage, tandis que l’Erlang Ecosystem Foundation soutient Elixir et la communauté Erlang au sens large
- Les Elixir Open Source Stewards, qui emploient ou soutiennent financièrement des développeurs open source, comptent notamment les entreprises suivantes
- Software Mansion : développe depuis 2016 des outils full-stack comme Membrane, Popcorn, LiveDebugger et Legion
- Dashbit : crée Elixir, Livebook, Broadway, Plug et aide les entreprises à adopter et faire évoluer leur usage en production
- Jump : contribue à Expert LSP, Quokka et d’autres projets
1 commentaires
Avis sur Hacker News
José Valim et son équipe ont vraiment créé un langage Elixir et un écosystème remarquables, et merci en particulier pour les efforts constants fournis au cours de l’année passée pour la sortie de la 1.20
Elixir est excellent, mais j’aimerais que davantage de financement et d’efforts de développement soient consacrés au BEAM lui-même pour améliorer les performances d’exécution pures, pas seulement la concurrence
Au cours de la dernière décennie environ, on a l’impression que les améliorations de performance ont en pratique reposé sur une seule personne
Une fois que l’équipe Erlang/OTP aura tiré tout ce qui est possible du JIT, elle passera sans doute à l’optimisation inter-modules ; il faudra repenser certains éléments fondamentaux du runtime, mais cela devrait ouvrir beaucoup de nouvelles possibilités
J’ai commencé à apprendre Elixir cette année, et j’ai été impressionné par le langage et les fonctionnalités offertes par BEAM ; je suis complètement tombé sous le charme de cet écosystème sous-estimé
Le nouveau site a aussi l’air très réussi
https://joearms.github.io/published/2013-05-31-a-week-with-e...
Paix à l’âme de Joe Armstrong, qui était une personne remarquable
On peut déployer rapidement sur plusieurs plateformes à partir d’une base de code unique, et Phoenix Channels est aussi économique
https://quasar.dev/introduction-to-quasar/
J’espère aussi que l’interface du forum sera modernisée, et j’aimerais qu’Elixir continue de grandir
Non seulement c’est un excellent langage, mais il est aussi très bien adapté au codage avec l’IA
https://arxiv.org/pdf/2508.09101
Même sans utiliser un grand écran selon les standards actuels, je trouve dommage que la moitié de l’écran du site soit vide
Je ne me souviens pas de l’ancien site, donc je ne sais pas si cela a réellement changé
BEAM, le runtime d’Elixir, convient très bien aux agents et à l’orchestration de systèmes multi-agents ; j’ai résumé cela ici
https://josefrichter.design/blog/crowd
Il semble que l’un des usages clés d’Elixir/Erlang soit la fonctionnalité de cluster distribué, et je serais curieux de connaître des cas d’usage concrets
J’ai beaucoup utilisé Elixir au travail, mais surtout comme un « meilleur Rails » consistant à faire du scale horizontal d’apps Phoenix indépendantes dans un environnement Kubernetes classique, avec l’impression d’être passé à côté de son objectif principal
C’est très pratique, mais l’absence de frontière de sécurité entre les nœuds devient problématique quand le réseau est instable
Dans une application de chat, on envoie d’abord un message au service de base de données de présence pour vérifier si l’autre personne est en ligne ; si un identifiant de processus est renvoyé, on envoie ensuite un message à ce processus via la même API, qu’il soit sur la même machine ou sur une autre
Il est rare de voir un environnement où le passage arbitraire de messages entre processus, threads et tâches s’applique aussi naturellement à l’ensemble du système ; s’il n’y a pas d’identifiant de processus, il suffit d’envoyer le message à la base de données hors ligne
Horde.DynamicSupervisor, et il existe aussi d’autres options commeswarmet DynamicSupervisorJ’aimerais voir une analyse claire des avantages apportés par ces abstractions par rapport à des approches non-BEAM
https://www.youtube.com/watch?v=nZmDEUeHeVI
En revanche, l’architecture est plus couplée qu’une app indépendante, et orchestre des tâches sur Firecracker dans un style Lambda ou Fly.io
https://jomcgi.dev/ember
J’ai appliqué Erlang à cet équipement il y a longtemps ; c’était amusant et cela a offert beaucoup de défis intéressants à tous les participants
https://www.icare-world.com/us/product/icare-eidon/
Elixir est un langage très élégant, donc j’aimerais bientôt trouver une raison de l’utiliser
J’ai choisi Elixir pour la première fois quand Ruby n’arrivait pas à gérer un gros volume de messages WebSocket, et il s’est montré particulièrement excellent dans des environnements à très forte concurrence ; j’aime aussi Phoenix LiveView, et j’exploite quelques projets perso avec
https://github.com/ityonemo/ce_ce
Même une syntaxe simple comme
defmodule Xyz dome paraît un peu maladroite