Ouvrir le menu principal

MacGeneration

Recherche

Développement : Electron est-il le nouveau Flash ?

Nicolas Furno

mercredi 26 avril 2017 à 12:50 • 65

Logiciels

Vous ne connaissez peut-être pas le nom d’Electron, mais vous l’utilisez sans doute sans le savoir. De nombreuses apps pour ordinateurs utilisent cette technologie, que ce soit sur macOS, sur Windows ou sur Linux. Et pour cause, ce framework est conçu pour développer des applications multiplateformes en utilisant des technologies du web.

Cliquer pour agrandir

Sous le capot, Electron est constitué d’un serveur en JavaScript (node.js) et il exploite Chromium, le moteur d’affichage open-source de Google, pour son interface. Les apps Electron ont l’apparence d’interfaces natives, mais elles sont en fait codées en HTML, CSS et JavaScript. Tout ce bagage technologique ressemblera peut-être à du chinois si vous n’êtes pas développeur, mais il est essentiel pour comprendre le problème.

En optant pour des technologies du web plutôt que pour les outils natifs spécifiques à chaque plateforme, Electron simplifie le travail des développeurs. Et de fait, le framework créé à l’origine par GitHub est désormais très largement exploité : la messagerie instantanée Slack, les éditeurs de code Atom et Visual Studio Code, les apps des blogs WordPress et Ghost, l’éditeur Markdown Caret, le gestionnaire de notes Simplenote ou encore le client mail Nylas sont quelques exemples parmi tant d’autres.

Quelques apps parmi toutes celles qui exploitent Electron. Cliquer pour agrandir

La contrepartie de cette simplicité, c’est que les performances ne sont pas aussi bonnes qu’avec un développement natif. C’est toujours le cas avec les technologies multiplateformes, mais Electron est particulièrement mal placé en la matière. Il repose sur le navigateur de Google qui n’est pas connu pour sa légèreté et il est très facile de développer des apps sans les optimiser et en faire des gouffres à mémoire vive.

À l’arrivée, une app très utilisée comme Slack reçoit régulièrement des critiques de la part d’utilisateurs surpris qu’une messagerie nécessite autant de ressources. C’est elle qui a suscité l’analogie entre Electron et Flash chez un développeur, alors que l’app à l’arrière-plan monopolisait toutes les ressources de son Mac. Il a collaboré sur le noyau de Chrome et il sait ainsi que c’est un immense projet qui contient autant de lignes de code que le noyau de Linux et qui gère des cas de figure complètement inutiles pour Electron.

Slack peut vite monopoliser beaucoup de ressources… (image Marc Edwards). Cliquer pour agrandir

Est-ce que l’équipe de Slack a pris soin de modifier Chromium pour l’adapter à ses besoins ? Probablement pas, ce qui explique son poids (163 Mo sur macOS pour la dernière version) et son aptitude à consommer beaucoup trop de RAM. On évoque cette app, mais c’est la même chose pour tous ceux qui exploitent Electron. L’éditeur de code Atom développé par GitHub pour qui Electron a été mis en place dépasse les 270 Mo sur le SSD, pour prendre un autre exemple.

Au-delà de l’utilisation des ressources, ces apps peuvent être très difficiles à optimiser. Microsoft utilise Electron pour Visual Studio Code et l’éditeur a fait face à un bug assez hallucinant. Sur macOS uniquement, le curseur clignotant de cet éditeur de code consomme à lui seul environ 13 % de CPU. Ce curseur est affiché et masqué en CSS et un bug de Chromium utilise trop le processeur sur le système d’Apple. L’entreprise a fini par trouver une solution qui devrait être disponible prochainement dans la version finale, mais cet exemple illustre bien la difficulté apportée par Electron.

La prochaine version d’Atom se lancera beaucoup plus rapidement que la précédente. Cliquer pour agrandir

Même GitHub, créateur d’Electron, a du mal à optimiser ses apps et notamment pour accélérer les temps de lancement. Une prochaine version d’Atom, son éditeur de code, se lancera 50 % plus rapidement que la précédente. C’est très bien, mais cela prouve qu’il reste encore beaucoup de place pour optimiser et aussi que ce n’est pas simple, puisqu’il y a beaucoup de facteurs et d’acteurs à prendre en compte.

Ces applications Electron sont aussi parfois plus limitées que les équivalents natifs. Pour rester sur l’exemple d’Atom, le logiciel n’était pas capable d’ouvrir des fichiers de plus de 2 Mo pendant très longtemps. On peut maintenant le faire, mais un message d’alerte indique que les performances ne seront pas bonnes. Et il ne faut pas compter sur certaines fonctions importantes, comme la coloration syntaxique. En comparaison, un logiciel concurrent natif comme TextMate est peut-être un petit peu plus lent, mais il garde toutes ses fonctions.

Atom s’est amélioré sur ce point, mais les gros fichiers lui font toujours peur. Cliquer pour agrandir

Electron est une belle idée et le framework a permis effectivement à de nombreuses apps pour ordinateurs d’exister sur toutes les plateformes. La souplesse offerte par les technologies du web est indéniable aussi et ces apps sont plus faciles à développer au premier abord. Mais il y a des contreparties à prendre en compte face aux avantages et la multiplication des projets Electron n’est pas forcément une bonne nouvelle.

Ne terminons pas sur une note négative. Comme tout projet logiciel, Electron est appelé à évoluer et ses concepteurs peuvent se concentrer sur l’optimisation des performances. Par ailleurs, il devrait aussi profiter des optimisations menées depuis plusieurs années par Google sur Chrome.

Rejoignez le Club iGen

Soutenez le travail d'une rédaction indépendante.

Rejoignez la plus grande communauté Apple francophone !

S'abonner

Carte cadeau Apple : 10 € retournés sur son compte Amazon pour une carte à 100 €

13:30

• 0


Orange va bientôt lancer deux nouvelles Livebox et augmenter ses débits

12:23

• 10


Promos du printemps : plus de 50 % de réduction sur l'abonnement Office 365

10:55

• 11


macOS 15.4 : les utilisateurs européens toujours privés de recopie de l’iPhone

10:00

• 27


Apple prête à brider iOS et macOS pour s'extirper du DMA ?

09:55

• 49


Promo : jusqu'à -230 € sur le Mac mini M4 chez Amazon Allemagne

07:15

• 10


Test du QNAP QNA-UC10G1T, le premier adaptateur Ethernet 10 Gb/s en USB4, parfait pour profiter de la fibre ultra-rapide

24/03/2025 à 20:30

• 11


macOS 15.4 entre en Release Candidate avec Apple Intelligence et les catégories dans Mail

24/03/2025 à 18:49

• 13


Tim Cook en Chine en pleine préparation du lancement d’Apple Intelligence

24/03/2025 à 18:36

• 10


Peakto donne accès à distance aux photos stockées sur votre Mac, sans abonnement cloud

24/03/2025 à 17:45

• 26


A ce prix, oubliez iWork et passez enfin à Microsoft Office 📍

24/03/2025 à 17:16


Asahi Linux prend en charge le microphone des Mac portable, et ça a été compliqué

24/03/2025 à 16:15

• 7


L’AirPods Max USB-C va prendre en charge le lossless et la latence réduite grâce à une mise à jour

24/03/2025 à 14:48

• 104


Apple a modifié le SSD du Mac Studio 2025 pour le rendre plus rapide

24/03/2025 à 12:45

• 13


Un injecteur PoE officiel pour les cartes Raspberry Pi

24/03/2025 à 10:50

• 7


Dites adieu aux éditeurs PDF encombrants : UPDF fait tout, 10x plus vite ! 📍

24/03/2025 à 09:11