De Trello à Slack, de WordPress.com à Github, il est de plus en plus courant que les applications dites de bureau combinent un site Web avec quelques fonctionnalités natives telles que les notifications, l’accès au système de fichiers et les menus. La technologie la plus courante permettant de le faire s'appelle Electron. Elle est utilisée par quelques applications que vous ne soupçonnez même pas, telles que l'application de discussion Discord et le code Microsoft Visual Studio.
Grâce à Electron, les développeurs peuvent facilement lancer une application simultanément sur Windows, MacOS et Linux, mais il existe des inconvénients pour les utilisateurs. Les applications électroniques sont énormes, d’une part. Slack, une application de discussion en ligne, occupe 237 Mo d’espace sur le disque dur de mon Mac et la consommation de mémoire n’est pas faible non plus. Qu'est-ce qui prend toutes ces ressources? Et pourquoi les développeurs utilisent-ils quelque chose d'aussi inefficace?
Les applications Electron sont assez faciles à faire
Electron "résout" cela en offrant une plate-forme unique qui fonctionne sur les trois principaux systèmes d'exploitation de bureau. Cela signifie que les développeurs peuvent écrire le code pour des choses telles que les notifications une fois et s'attendre à ce qu'il fonctionne de manière native sur tous les systèmes d'exploitation. Encore mieux pour les développeurs: tout peut être construit en utilisant Javascript, HTML et CSS - les technologies auxquelles tous ceux qui codent pour le Web sont habitués.
Les applications Electron contiennent presque tout le chrome
Comment est-ce possible? En partie parce que chaque application Electron comprend un navigateur Web complet: Chromium, la version open source de Google Chrome. Ceci est fourni avec les instructions spécifiques à la plate-forme afin de garantir que tout se comporte exactement comme les développeurs l’attendent sur tous les systèmes. C’est la raison pour laquelle la version de bureau de Slack occupe plus de 200 Mo d’espace disque dur: la plupart de Chrome y est intégré.
You can think of Slack as a small javascript program running inside another operating system VM (chrome), that you have to run in order to essentially chat on IRC. Even if you’ve got the real chrome open, each electron app runs its own, extra copy of the whole VM.
Alors oui, il y a des inconvénients pour les utilisateurs. Tout d’abord, chaque application Electron que vous téléchargez regroupe la majeure partie de Chromium, et chaque application que vous exécutez exécute une bonne partie de ce code. Il n’ya pas de partage de ressources comme avec les applications natives, ce qui signifie que les applications Electron occuperont plus d’espace sur le disque dur et de mémoire qu'une application développée spécialement pour votre plate-forme. Si les performances vous intéressent vraiment, évitez les applications Electron.
Attendez, est-ce que l'électron est bon ou mauvais?
Et ces applications s'intègrent vraiment mieux avec votre système d'exploitation que les sites Web. Ils vivent dans leur propre fenêtre. Ils offrent d'excellents raccourcis clavier, notifications natives et autres choses que vous ne pouvez pas faire de la même manière avec juste un navigateur.
Et il est fort à parier que des applications telles que Slack, Trello et WordPress.com ne se donneraient pas la peine d’offrir une version de bureau si Electron n’existait pas, se concentrant plutôt sur les versions pour mobiles et les navigateurs. Donc, la question n'est pas de savoir si Electron est mauvais; c'est si les applications Electron valent mieux que rien. Je suis prêt à dire oui, mais des personnes raisonnables peuvent être en désaccord. (Et hé, pour ces personnes, il y a toujours la version Web.)