Aller au contenu

Journal · 8 septembre 2026

Pourquoi nous construisons en Elixir

Chaque produit que le Lab exploite (Agora, m2, Wodloop, Wodlane) et chaque plateforme construite depuis 2021 est écrite en Elixir. Pas par habitude : voici l'argument, avec ce qu'il coûte.

Un langage, six produits

Agora, m2, Wodloop, Wodlane, la plateforme de Keyro, Roster : tout ce que le Lab a livré depuis 2021 tourne sur Elixir, avec Phoenix pour le web, LiveView pour l'interface et PostgreSQL dessous. Six produits, un runtime, un seul jeu d'habitudes. Une équipe de quatre ne peut pas se payer six piles techniques, et le choix de l'unique devait tenir des années, d'une plateforme de participation pour une régie publique à une application de compétition pour des box de CrossFit.

C'est l'argument que nous nous refaisons à chaque nouveau produit : parce que la tentation de l'outil à la mode est réelle, et parce qu'un client qui demande « pourquoi pas du JavaScript partout ? » mérite une réponse en phrases complètes.

Ce que ça donne à une petite équipe

La première chose, c'est qu'un produit entier tient dans une seule tête. Une application Phoenix, c'est le serveur web, les tâches de fond, les canaux temps réel et les travaux planifiés dans un seul livrable, sur un runtime conçu pour des centraux téléphoniques et qui tient des systèmes debout depuis trente ans. Pas de file d'attente à part, pas de serveur de sockets à part, pas de cache à invalider, parce que le langage tient un million de processus légers sans qu'on le lui demande. Quand quelque chose casse à deux heures du matin, c'est dans un seul journal.

La deuxième, c'est LiveView. Une interface qui se met à jour en direct, un classement pendant une compétition, un décompte de votes sur un budget participatif, un planning à mesure que les adhérents réservent, s'écrit une fois, côté serveur, dans le même langage que les règles métier. Il n'y a pas d'API à versionner entre une équipe front et une équipe back parce qu'il n'y a ni l'une ni l'autre. Pour un lab qui livre un produit par an, la journée que ça épargne n'est pas la première ; c'est chacune des suivantes, quand un changement touche un fichier au lieu de trois.

La troisième, c'est la discipline que le langage impose. Des données immuables, un filtrage par motif explicite, des processus qui plantent et redémarrent plutôt que de boiter avec un état corrompu : les pannes qu'un système a sont celles que vous avez prévues, et les autres sont bruyantes. Ash, le framework avec lequel nous construisons nos modèles métier, va plus loin : une ressource déclare ses attributs, ses actions et ses règles d'autorisation au même endroit, et la console d'administration, l'API et la trace d'audit découlent de la déclaration.

Ce que ça coûte

Le recrutement. Le vivier de développeurs Elixir en France est petit ; nous avons fait grandir le nôtre en formant des gens qui pensaient déjà dans les bonnes formes plutôt qu'en recrutant sur le mot-clé. Le pari, c'est qu'un bon ingénieur apprend Elixir en un trimestre, et il a tenu pour chaque embauche jusqu'ici.

Les bibliothèques. Il y en a une bonne pour la plupart des besoins et aucune pour certains. Quand Wodlane a eu besoin de Stripe Connect, il y avait un client maintenu ; quand Agora a dû rendre un reçu hébergé en PDF, nous avons piloté un navigateur sans tête nous-mêmes. Une équipe JavaScript aurait eu un paquet pour chacun, et, d'expérience, une histoire de mise à jour pour aucun.

L'explication. Le relecteur technique d'un acheteur public posera la question, et « c'est ce qui fait tourner Discord et Pinterest » ne mène pas loin. Ce qui répond à la question, c'est l'architecture que le langage rend bon marché : une instance par client, sur sa propre release et sa propre base, qui est la réponse honnête à son questionnaire sécurité. Elixir n'a pas décidé ça ; il l'a rendu abordable.

Quand nous ne le choisirions pas

Une application mobile que la boutique doit valider : nous construisons l'application adhérent de Wodloop dans un framework mobile qui parle au backend Phoenix. Le calcul numérique lourd, un modèle, une grande transformation par lots, appartient à Python ou à la base de données, et Elixir se contente volontiers de l'orchestrer. Un site vitrine sans état : le CMS qui fait tourner ce site est en Elixir parce que nous l'avons fait, mais un générateur statique suffirait.

Tout le reste, une plateforme avec des utilisateurs, des règles, des échéances, des écrans en direct et un back-office, c'est là que le langage gagne sa place. C'est ce que fabrique le Lab, c'est pourquoi le choix n'a pas bougé en cinq ans, et pourquoi le prochain produit le refera.