Pour ceux qui n’ont pas suivi toute l’histoire, il faut savoir que dans les années 1990, Apple qui utilisait les microprocesseurs de Motorola pour ses ordinateurs a décidé de migrer vers les PowerPC d’IBM pour des raisons de performance. Au fil des années, la bataille des processeurs s’intensifia et en 2005, Steve Jobs annonça le basculement des ordinateurs Apple vers les processeurs Intel (architecture x86). Pour achever sa transition, Apple s’est donné une seule année. En 2006, la firme à la pomme avait résolument tourné le dos aux processeurs PowerPC d’IBM en sortant de nouveaux ordinateurs y compris les premiers Mac Pro entièrement équipés de puces Intel et du système Mac OS X réécrits pour s’adapter à cette nouvelle architecture.
Si les processeurs Intel avaient été présentés dès le départ comme possédant un rapport de performance par watt cinq fois supérieur aux PowerPC, il convient de souligner qu’au fil des années, le fondeur américain n’a pas su conserver ses atouts. Les bugs à répétition découverts dans le fonctionnement des puces Intel, des performances relativement insignifiantes pour les nouvelles générations de processeurs, l’efficacité énergétique des processeurs pointée du doigt, le passage à un processus de gravure meilleure toujours attendu, des pénuries de certains processeurs Intel, etc., sont autant de défauts qui ont poussé Apple à reconsidérer son partenariat avec Intel et à envisager une migration de ses appareils vers ses puces ARM qui équipent déjà les appareils iPhone et iPad. La semaine dernière, Apple a présenté ses nouveaux appareils et depuis le début de cette semaine, les utilisateurs ont commencé à recevoir leurs premiers appareils (MacBook mini, MacBook Air et MacBook pro) équipés de la nouvelle puce M1 (ARM64).
Comme pour le passage de l’architecture RISC POWER au x86, le passage au SoC (system on chip) d’Apple ne se fait pas sans douleur. Les applications x64 doivent être recompilées pour l’ARM64. Et pour celles qui ne le peuvent pas pour l’instant, Apple a conçu l’outil Rosetta 2 qui permet d’émuler les applications x64 afin de les rendre fonctionnelles sur plateforme ARM64 d’Apple. Pour les développeurs qui ont déjà compilé leurs applications Electron en x64, bien qu’il soit possible de les exécuter sur les appareils Apple dotés de puce M1 en utilisant l’outil Rosetta 2, l’équipe d’Electron déconseille fortement de le faire, car :
- Les performances de votre application seront considérablement dégradées. Electron/V8 utilise la compilation JIT pour JavaScript, et en raison du fonctionnement de Rosetta vous allez exécuter deux fois JIT (une fois en V8 et une fois en Rosetta) ;;
- vous perdrez l’avantage de la nouvelle technologie du SoC d’Apple, comme l’augmentation de la taille de la page mémoire.
Pour contourner ces problèmes, Electron annonce une compatibilité complète de son dernier framework avec les Mac dotés de la puce M1. Les développeurs peuvent donc utiliser Electron 11 pour recompiler leurs applications x86-64 pour ARM64 afin de tirer profit de tous les avantages de la nouvelle architecture d’Apple. Et pour éviter la confusion, l’équipe d’Electron précise qu’à partir de cette version 11.0, elle publiera des versions séparées d’Electron pour les appareils Intel (x64) et Electron les appareils M1 (ARM64). L’entreprise explique également qu’il est possible qu’elle publie un paquet qui permettrait de fusionner les applications ARM64 et x64 en un seul binaire, mais ce binaire serait énorme et pourrait ne pas être intéressant pour les utilisateurs.
Au-delà de la prise en charge du SoC d’Apple, cette nouvelle version d’Electron a supprimé certaines API expérimentales comme BrowserView.{destroy, fromId, fromWebContents, getAllViews} et la propriété id de BrowserView. Par ailleurs, plusieurs améliorations ont également atterri dans cette dernière version d’Electron. Ce sont entre autres :
- L’ajout d’un message de crash V8 et d’informations de localisation aux paramètres de crashReport ;;
- l’ajout d’un petit conseil à la console pour aider à déboguer le moteur de rendu ;;
- l’ajout d’un nouvel événement de menu contextuel du système pour permettre d’empêcher et de remplacer le menu contextuel du système ;;
- l’ajout de webContents.forcefullyCrashRenderer() pour terminer de force un processus de rendu afin d’aider à récupérer un moteur de rendu bloqué ;;
- l’ajout de l’API app.getApplicationInfoForProtocol() qui renvoie des informations détaillées sur l’application qui gère un certain protocole
- l’ajout de l’API app.createThumbnailFromPath () qui renvoie une image d’aperçu d’un fichier en fonction de son chemin de fichier et d’une taille de miniature maximale ;;
- et bien d’autres améliorations.
Télécharger Electron 11.0.2
Source : Blog Electron, GitHub
Et vous ?
Avez-vous testé la nouvelle version d’Electron ;? Quels commentaires en faites-vous ;?
Quelles orientations devraient prendre les nouvelles versions d’Electron ;? Un seul paquet pour fusionner les applis x64 et ARM64 ;? Ou deux paquets séparés pour compiler les applications x64 et ARM64 ;?
Voir aussi
Faut-il utiliser Electron pour le développement d'applications de bureau ? Quels sont ses avantages et inconvénients ?
Sortie de la version 4.0 d'Electron, le framework pour le développement d'applications de bureau multiplateformes
L'OS Windows 95 devient une appli gratuite qu'on peut lancer depuis Windows, Linux ou Mac grâce au framework open source Electron et à un passionné
Electron 7.0.0 est disponible et inclut les mises à jour vers Chromium 78, V8 7.8 et Node.js 12.8.1 ainsi que des méthodes IPC plus rapides
Electron 9.0 est disponible, améliore l'efficacité du gestionnaire d'événements de fenêtres sous Linux, avec ajout de nouvelles méthodes et de nouvelles API et quelques correctifs de bogues