Étude multi-agents vérifiée par confrontation contradictoire — desktop fenêtré, services Windows, daemons Linux, avec réutilisation des compétences web. Préparée pour Michael & Serge.
Ce dossier n'est pas l'avis d'une seule IA : c'est le produit d'une recherche structurée où chaque affirmation chiffrée a dû survivre à une vérification contradictoire avant d'apparaître ici.
Les critères posés au départ, tels qu'énoncés. L'un d'eux est éliminatoire — c'est lui qui fait basculer le classement final (voir section 8).
| Critère | Nature | Détail |
|---|---|---|
| Pas (fortement) orienté objet | Éliminatoire | Critère personnel ferme de Serge — pas de POO imposée par le langage. |
| Langage compilé | Impératif | Binaire déployable simple, sans runtime à installer chez le client. |
| Desktop fenêtré Windows + Linux | Impératif | Applications avec fenêtres (au pluriel — le multi-fenêtres compte). |
| Services Windows + daemons Linux | Impératif | Une seule base de code pour les deux mondes. |
| Lisible / maintenable | Important | « Un langage qui ne fait pas vomir » et qu'on sait relire des années après. |
| Écosystème stable | Important | Pas de churn type frameworks JS — le syndrome « idweaver » à éviter. |
| Bonne assistance IA | Important | Critère 2026 : Claude/Copilot écrivent le gros du code, le dev relit. |
| Compétences mutualisées avec le web | Souhaité | Idéalement, la même base de savoir-faire pour le web et le desktop. |
Toutes les données ci-dessous ont été confirmées 3 voix contre 0 sur sources primaires (pages d'enquêtes vérifiées verbatim, API GitHub interrogée le 11/06/2026).
% des développeurs ayant « travaillé intensivement avec » durant l'année écoulée. Dernière édition disponible en juin 2026.
| Langage | Part d'usage | Lecture |
|---|---|---|
| C# | 27,8 % | 1,7× la base de Go, 1,9× celle de Rust |
| C++ | 23,5 % | Massif mais hors cahier des charges (complexité) |
| C | 22,0 % | Idem |
| Go | 16,4 % | Base solide + plus forte dynamique (cf. ci-dessous) |
| Rust | 14,8 % | « Most admired » à 72 %, +2 pts/an |
| Dart (Flutter) | 5,9 % | Risque de niche modéré |
| Delphi (proxy Lazarus/FreePascal) | 2,5 % | Risque de niche élevé |
| Zig | 2,1 % | Trop jeune / trop niche |
| Stack | Taille | Note |
|---|---|---|
| Neutralino | ~1 Mo | Non retenu (écosystème trop petit) |
| Tauri (Rust) | ~3 Mo | WebView2 système non compté |
| Wails (Go) | ~11 Mo | WebView2 système non compté |
| Flutter | ~27 Mo | Moteur de rendu embarqué |
| Electron | ~370 Mo | Dossier décompressé ; installeur ~85-100 Mo. Écart réel ~10-30× : disqualifiant. |
| Framework | Stars | Lecture |
|---|---|---|
| Flutter | 176 880 | Couvre mobile + web + desktop, pas le desktop seul |
| Electron | 121 598 | L'historique, en perte de vitesse relative |
| Tauri | 107 744 | A quasi rejoint Electron (~89 %) |
| Wails | 34 750 | Communauté ~3× plus petite que Tauri |
Forces et faiblesses de chaque option, sur la base des affirmations vérifiées. Les options absentes des données vérifiées sont signalées comme telles plutôt que notées au doigt mouillé.
Langage de Google (2009), pensé pour la simplicité : structs + fonctions + interfaces, pas de classes ni d'héritage. Le langage des daemons modernes (Docker, Kubernetes, Caddy sont écrits en Go).
kardianos/service (4,8k stars, utilisé par 1 431 packages) = une API unique pour service Windows (XP+), systemd/Upstart/SysV et launchd, avec détection terminal-vs-service.GOOS=linux go build depuis Windows).kardianos/service : maintenance lente (~11 mois sans commit) et bugs documentés sur cas exotiques (Dependencies non implémenté Linux/launchd).Le mastodonte Microsoft. Avec Avalonia (GUI cross-platform) et Native AOT (compilation en binaire natif autonome), .NET couvre désormais toute la chaîne demandée — sauf un détail : c'est de la POO de bout en bout.
BackgroundService + UseWindowsService() / UseSystemd() empilables dans le même code (chacun inactif hors de son OS).object ; Avalonia = XAML + MVVM + hiérarchies de classes. Le C# moderne (records, top-level statements) allège la syntaxe, pas la culture.Le langage le plus admiré du marché (72 % « most admired », SO 2025), binaires minuscules, sécurité mémoire. Tauri est son framework desktop vedette, quasi au niveau d'Electron en communauté.
service-manager v0.11.0 (février 2026, ~19,4k téléchargements/mois) : abstraction de 6 gestionnaires de services.windows-service séparée). Plus de friction que Go ou C#.Le vétéran du web-to-desktop (VS Code, Slack, Discord). Mais ~370 Mo décompressés pour une application vide (installeur ~85-100 Mo) contre 3-11 Mo pour Tauri/Wails — un écart de 10 à 30× qui disqualifie sur le critère « binaire déployable simple ». Pas compilé (JavaScript embarqué dans un Chromium complet). Sa communauté reste massive (121,6k stars) mais Tauri l'a quasi rejointe.
La plus grosse communauté du panel (176,9k stars — mais elles couvrent surtout le mobile). Binaires ~27 Mo, langage Dart orienté objet, priorité produit clairement mobile : le desktop y est un citoyen de seconde zone. Échoue sur « pas POO » et sur la mutualisation des compétences web (Dart ≠ HTML/CSS/JS).
C'est ici que le match se joue réellement. Les trois langages finalistes savent tous faire des services et des daemons — c'est sur le desktop fenêtré qu'ils se séparent.
| Framework | Langage | État (11/06/2026) | Multi-fenêtres | Verdict |
|---|---|---|---|---|
| Avalonia 12 | C# | Stable, sortie 04/2026 | ✅ Oui | Le seul GUI du panel à la fois mûr, stable et activement maintenu |
| Wails v2 | Go | Stable mais API en fin de vie | ❌ Mono-fenêtre | Utilisable aujourd'hui, mais on bâtit sur une API condamnée |
| Wails v3 | Go | Alpha (alpha.99 du 10/06/2026) | ✅ Oui (enfin) | 103 tags, tous alpha ; rupture d'API complète vs v2 ; pas de date de stable |
| Tauri v2 | Rust | Stable depuis 10/2024 | ✅ Oui | Mûr, grosse communauté — mais backend Rust |
| Fyne / Gio | Go | Non départagés | ✅ / ✅ | GUI pur Go sans webview — pas assez de preuves vérifiées : à tester soi-même |
| egui / Slint | Rust | Non départagés | — | Idem : angle mort de l'étude |
| WinForms / WPF | C# | Windows uniquement | ✅ | Pas de Linux + incompatibles Native AOT → écartés |
Le besoin « une base de code → service Windows + daemon Linux » est couvert par les trois finalistes, avec des niveaux de confort différents — tous vérifiés sur sources primaires.
| Stack | Mécanisme | Confort | Réserves vérifiées |
|---|---|---|---|
| C# / .NET | BackgroundService + UseWindowsService() et UseSystemd() empilés dans le même code — chacun est sans effet hors de son OS. Successeur officiel Microsoft des Windows Services du Framework. |
Maximal | Aucune réserve significative. Native AOT livre le binaire autonome. |
| Go | kardianos/service : installe/désinstalle/démarre/arrête et exécute le binaire comme service natif — Windows XP+, Linux (systemd/Upstart/SysV), macOS launchd — API unique + détection terminal-vs-service (service.Interactive()). |
Très bon | Maintenance lente (~11 mois sans commit, dernier push 07/2025) ; Dependencies non implémenté sur Linux/launchd ; 4,8k stars, 1 431 packages dépendants = battle-tested malgré tout. |
| Rust | Crate service-manager v0.11.0 (02/2026) : abstrait 6 gestionnaires (sc.exe, WinSW, systemd, OpenRC, launchd, rc.d). |
Incomplet | Claim « pas de plomberie par OS » réfutée 0-3 : pour un service Windows natif, il faut implémenter soi-même le dispatcher SCM via la crate séparée windows-service. Plus de travail manuel que Go ou C#. |
Critère absent des comparatifs d'il y a cinq ans, central aujourd'hui : le gros du code est écrit par l'IA, le développeur relit. Ce que disent les données vérifiées :
L'étude produit deux classements, et l'écart entre les deux est la vraie leçon de ce dossier. Le premier note sur les données brutes ; le second applique le cahier des charges tel qu'énoncé, avec son critère éliminatoire.
Popularité, maturité GUI, complétude de la chaîne — sans pondération des critères personnels.
Le critère « pas POO » est éliminatoire — il a été posé comme tel, il se traite comme tel.
Une étude honnête montre aussi ce qu'elle a écarté et ce qu'elle n'a pas réussi à prouver.
Réfutée 1-2 — « Tauri et Wails offrent tous deux un support officiel Vite/React/Vue/Angular/Svelte, garantissant la réutilisation directe des compétences web. »
La promesse « mêmes compétences que le web » est plausible dans les grandes lignes mais n'a pas survécu à la vérification dans le détail des tooling officiels. À valider en pratique avant d'en faire un argument décisif.
Réfutée 0-3 — « La crate Rust service-manager offre une API uniforme sans plomberie spécifique par OS. »
Faux : avec le backend sc.exe, le binaire doit implémenter lui-même le dispatcher SCM Windows (crate windows-service séparée). Rust demande plus de travail manuel que Go ou C# pour les services Windows natifs.
Go est le choix aligné avec les critères énoncés et sans regret possible sur services/daemons ; C# + Avalonia est le choix dominant sur les données brutes si le critère POO tombe ; le test pratique à deux volets coûte deux week-ends et remplace tous les débats.
24 sources consultées, classées par fiabilité. Les affirmations clés ont été vérifiées sur les sources primaires (enquêtes officielles, docs éditeurs, API GitHub en direct).
Compléments hors workflow (vérifiés séparément le 11/06/2026) : go.dev — Go 1.26.4 (02/06/2026) · Tauri 2.0 stable (10/2024) · Lazarus 4.6 & forum actif.