IRCNF

Electron a gagné la guerre des apps desktop — et ses challengers redessinent aujourd'hui la manière dont les développeurs construisent leurs applications

Partager:
Electron a gagné la guerre des apps desktop — et ses challengers redessinent aujourd'hui la manière dont les développeurs construisent leurs applications

En 2013, GitHub lançait Atom, un éditeur de texte construit sur un framework qui intégrait un navigateur Chromium complet et un runtime Node.js dans une application de bureau. Ce framework, plus tard détaché sous le nom d'Electron, semblait absurde aux développeurs soucieux des performances : pourquoi empaqueter un navigateur entier pour faire tourner un éditeur de texte ?

Treize ans plus tard, Electron fait tourner l'outil de développement le plus utilisé au monde. Visual Studio Code, Slack, Discord, le client desktop de Figma, Notion, 1Password et des dizaines d'autres applications qui définissent leur catégorie sont toutes construites sur Electron. Quelles que soient les objections théoriques, Electron a gagné. La question est désormais de savoir s'il peut conserver cette domination alors qu'une nouvelle génération de frameworks s'attaque à ses points faibles.

Pourquoi Electron a gagné

La proposition de valeur centrale d'Electron est simple : écrivez une fois en HTML, CSS et JavaScript, et déployez sur Windows, macOS et Linux sans maintenir de codebases séparées. Pour les équipes qui construisent déjà des apps web, le transfert de compétences est quasi nul. L'écosystème npm fournit des millions de paquets. Les DevTools de Chrome fonctionnent pour le débogage. Le comportement de rendu est totalement prévisible d'une plateforme à l'autre car il s'agit toujours du même moteur de navigateur.

Le business case s'est imposé de lui-même. Comparé à l'embauche de spécialistes natifs pour macOS (Swift/Objective-C) et Windows (C#/WinRT) séparément, une seule équipe JavaScript maintenant une codebase était nettement moins cher. Slack a célèbrement reconstruit son client macOS d'une app native vers Electron et a réduit ses effectifs d'ingénieurs pour l'équipe desktop. Le compromis sur les performances a été jugé acceptable compte tenu de la réduction de complexité.

Les coûts réels

Les critiques à l'encontre d'Electron sont réelles et bien documentées. Une application Electron typique embarque environ 150 à 200 Mo de Chromium et Node.js, ce qui signifie que chaque app Electron livre sa propre copie d'un navigateur. L'installateur de Discord dépasse 90 Mo. VS Code avoisine les 100 Mo. Multipliez cela par les 15 ou 20 apps Electron qu'un développeur typique fait tourner, et vous avez ajouté des gigaoctets d'installations redondantes de navigateurs à votre machine.

La consommation mémoire est le problème le plus immédiat. Discord utilise régulièrement 600 à 900 Mo de RAM au repos. Slack a historiquement consommé des montants similaires. Sur un MacBook avec 8 Go de mémoire unifiée, faire tourner trois apps Electron simultanément signifie consacrer une fraction significative de votre RAM disponible à des applications qui attendent essentiellement que vous les regardiez.

Le temps de démarrage est plus lent que les équivalents natifs. Le temps de lancement de VS Code à froid est nettement plus long que celui d'un éditeur natif. Pour les utilisateurs avancés qui font tourner des apps toute la journée, c'est une gêne mineure. Pour les utilisateurs qui ferment et rouvrent fréquemment les applications, cela s'accumule.

Tauri : le challenger léger

Tauri, sorti initialement en 2021 et atteignant la version 2.0 en 2024, adopte une approche architecturale différente. Au lieu d'empaqueter Chromium, il utilise le WebView intégré du système d'exploitation — WebKit sur macOS et Linux, WebView2 (le moteur de rendu d'Edge) sur Windows. Le backend tourne sur Rust plutôt que Node.js.

Le résultat est des applications considérablement plus légères. Une app Tauri minimale produit un installateur de moins de 4 Mo. La consommation mémoire au repos peut être inférieure à 50 Mo pour des applications simples. Les garanties de sécurité et les performances de Rust rendent le backend plus efficace que Node.js pour les opérations intensives en CPU.

Le compromis, c'est la cohérence du rendu. Parce que Tauri utilise le WebView système, le rendu peut varier entre les plateformes — WebKit se comporte différemment de WebView2 dans les cas limites. Les développeurs habitués à la garantie d'Electron "ça ressemble toujours à Chrome" doivent faire plus de tests cross-platform. Le CSS ou JavaScript qui fonctionne parfaitement sur macOS peut présenter des différences subtiles sur Windows.

Malgré cela, Tauri a attiré une adoption sérieuse. Bitwarden a migré son client desktop d'Electron vers Tauri en 2023, rapportant des réductions spectaculaires de consommation mémoire et de taille d'installateur. Les applications soucieuses de sécurité en bénéficient particulièrement : la surface d'attaque plus petite de Tauri — pas de runtime Node.js embarqué, pas de moteur de navigateur complet — est significative pour les apps qui manipulent des données sensibles.

Autres prétendants

Wails apporte Go à la même architecture basée sur WebView que Tauri a pionnière, attirant les équipes déjà investies dans l'écosystème Go. Flutter, originellement un framework mobile, a atteint une qualité production sur desktop et offre un moteur de rendu entièrement personnalisé — pas de WebView du tout — avec une cohérence pixel-perfect sur toutes les plateformes, mais au prix d'une courbe d'apprentissage plus raide.

Les Progressive Web Apps (PWAs) restent viables pour les applications qui n'ont pas besoin d'une intégration système profonde. Chrome et Edge supportent tous deux l'installation de PWAs en tant qu'applications desktop, et l'écart fonctionnel entre les PWAs et les apps Electron s'est considérablement réduit au cours des dernières années. Pour les apps qui affichent principalement du contenu et n'ont pas besoin d'accéder au système de fichiers, aux ports locaux ou aux notifications système, les PWAs sont souvent le choix judicieux.

Pourquoi Electron n'est pas près de disparaître

Malgré ses challengers, les fossés d'Electron sont profonds. L'écosystème de paquets, d'outils et de tutoriels compatibles avec Electron est énorme. Les équipes avec des codebases Electron existantes ont peu d'incitation à réécrire des applications qui fonctionnent. Les plaintes sur les performances, bien que légitimes, se sont avérées suffisamment tolérables pour que les utilisateurs continuent d'installer des apps Electron par dizaines de millions.

L'investissement continu de Microsoft dans VS Code — l'IDE le plus utilisé au monde, construit sur Electron — signale que le framework sera activement maintenu pour un avenir prévisible. L'équipe centrale d'Electron a également amélioré les performances de manière significative au fil des ans : le moteur JavaScript V8 est nettement plus rapide qu'en 2013, et la gestion mémoire de Chromium s'est améliorée.

Le paysage en 2026

L'écosystème des apps desktop en 2026 semble plus diversifié qu'à tout moment de l'histoire d'Electron. Electron domine toujours pour les applications où la cohérence du rendu, la large compatibilité npm et la familiarité des développeurs sont primordiales. Tauri gagne du terrain pour les applications où la sécurité, la taille du binaire ou les performances au démarrage sont des contraintes critiques. Flutter se taille une place pour les apps avec des besoins d'interface personnalisée. Les PWAs continuent de grignoter des cas d'usage qui n'ont pas besoin d'intégration système.

Le vrai changement réside dans la manière dont les nouvelles applications sont construites. Les équipes qui démarrent des projets desktop en 2026 réfléchissent davantage aux compromis qu'en 2018. Electron n'est plus la solution par défaut — c'est une option parmi plusieurs, chacune avec un profil de performance et de complexité différent. C'est un écosystème plus sain que l'époque où "construire une app desktop" signifiait "construire une app Electron", que cela convienne ou non.

Partager:
Electron a gagné la guerre des apps desktop — et ses challengers redessinent aujourd'hui la manière dont les développeurs construisent leurs applications | IRCNF - Intelligent Reliable Custom Next-gen Frameworks