1 points par GN⁺ 1 일 전 | 1 commentaires | Partager sur WhatsApp
  • 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
    • Broadway traite des millions d’événements depuis des files d’attente
    • Membrane fournit des pipelines composables pour l’audio, la vidéo et d’autres flux
  • 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

 
GN⁺ 1 일 전
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

    • J’ai entendu un fan d’Erlang dire qu’Elixir était une variante abominable de BEAM, transformé dans un style Ruby par des gens qui n’avaient pas vraiment compris Erlang, mais que c’est justement ce qui l’a popularisé ; je me demande ce que vous en pensez
  • 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

    • Ces 5 à 6 dernières années, plusieurs personnes ont développé le compilateur JIT, et l’équipe de WhatsApp a aussi beaucoup contribué
      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
    • Il est assez difficile d’améliorer les performances des calculs mathématiques dans un interpréteur de bytecode pour des cas d’usage réels
  • 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

    • Joe Armstrong, un développeur que j’aime beaucoup écouter, a écrit un texte globalement positif sur Elixir, et il semble que s’il n’avait pas créé Erlang, il serait sans doute devenu développeur Elixir
      https://joearms.github.io/published/2013-05-31-a-week-with-e...
      Paix à l’âme de Joe Armstrong, qui était une personne remarquable
    • Erlang fait tourner depuis des décennies des opérateurs télécoms pesant des dizaines de milliards de dollars en capitalisation boursière, et Elixir a rendu cela plus facile à apprendre, tout en remplaçant en grande partie les configurations de cluster bricolées dans des environnements à grande échelle
      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

    • Dans une comparaison de Tencent, Elixir a pris la 1re place au classement général ; on peut le voir dans le tableau 4, mais les données ont plus d’un an
      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

    • J’ai travaillé autrefois chez WhatsApp et j’y utilisais activement les fonctions distribuées d’Erlang ; d’après ce que je sais, la taille du cluster a beaucoup augmenté depuis mon départ
      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
    • J’ai un peu expérimenté avec Elixir distribué sur Kubernetes en utilisant Horde.DynamicSupervisor, et il existe aussi d’autres options comme swarm et DynamicSupervisor
      J’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
    • Récemment, en construisant un plan de contrôle Kubernetes en Elixir, j’attendais sans cesse le moment d’utiliser les fonctionnalités distribuées, mais dans le contexte du pilotage d’un DaemonSet écrit en Go, elles ne m’ont pas vraiment servi
      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
    • Elixir/Erlang convient très bien aux environnements quasi embarqués qui ont besoin de composants robustes de commande et de contrôle de haut niveau, tout en restant déterministes
      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

    • En lisant le livre de Joe Armstrong sur la programmation Erlang, ma façon de voir la programmation fonctionnelle et l’abstraction a changé, et cela a fait de moi un meilleur développeur Ruby
      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
    • J’ai pris plaisir à construire un assistant personnel multi-agents ; c’est encore en développement et rien n’est garanti, mais j’ai publié le moteur que j’utilise réellement
      https://github.com/ityonemo/ce_ce
    • Si vous avez un programme qui n’a pas besoin de s’exécuter rapidement, cela peut être une raison d’utiliser Elixir
    • Dans l’ensemble, je serais d’accord pour dire qu’Elixir a amélioré Erlang, mais en tant qu’utilisateur de Ruby de longue date, je ne le trouve pas aussi élégant que je l’espérais
      Même une syntaxe simple comme defmodule Xyz do me paraît un peu maladroite