Les apps qui reposent sur Electron sont devenues très populaires en quelques années, parce qu’elles permettent de développer assez simplement des apps qui fonctionneront sur macOS, Windows et Linux. Ce framework repose sur des technologies du web pour concevoir interfaces et fonctions : HTML, CSS et surtout JavaScript. Cela réduit la difficulté par rapport aux langages de développement utilisés traditionnellement par les logiciels pour ordinateurs, et cela permet aux développeurs web, nettement plus nombreux, de créer des apps.
Tout ceci est bien beau sur le papier, mais les apps développées grâce à Electron sont aussi plus lourdes que les apps natives, et souvent plus lentes. Ce problème de performance est tel que certains comparent Electron à Flash et que de plus en plus d’utilisateurs refusent systématiquement toutes les apps qui reposent sur Electron (lire aussi : Voici pourquoi certains développeurs utilisent toujours Vim). Pour contrer le phénomène, les développeurs d’Atom, l’éditeur de code développé par GitHub et pour qui le framework a été créé, essaient d’améliorer les performances, notamment en utilisant du code natif pour certaines fonctions.
Mais GitHub expérimente aussi autour d’une idée plus radicale avec Xray, un nouvel éditeur de texte dont le développement vient juste de commencer. Son principal objectif est d’être extrêmement performant, au niveau des meilleures applications de la catégorie, tout en étant multiplateforme. L’idée est toujours d’utiliser Electron, mais uniquement pour l’interface, tout le reste de l’app sera développé en Rust, un langage de bas niveau créé par Mozilla et qui vise à remplacer C ou C++.
Rust a été développé pour Firefox, il est pensé pour être extrêmement optimisé et très rapide, notamment en fonctionnant massivement en parallèle. C’était précisément l’un des points faibles du JavaScript utilisé jusque-là exclusivement pour les apps Electron comme Atom, ce langage de haut niveau ne pouvait pas facilement travailler en parallèle et obtenir de meilleures performances est très difficile.
Si la performance est une priorité, pourquoi ne pas abandonner totalement Electron ? Les créateurs de Xray défendent leur choix en indiquant que cela restait la meilleure option pour créer des interfaces compatibles avec toutes les plateformes et faciles à modifier. C’est en effet l’un des points forts des logiciels développés sur cette base, ils peuvent facilement être remodelés avec des thèmes qui peuvent changer toute l’interface en quelques lignes de CSS. C’est donc un point qu’ils voulaient maintenir, mais tout le reste de l’architecture sera différente.
Est-ce que Xray sera finalement aussi rapide que souhaité aujourd'hui ? Ses concepteurs visent des performances dignes des meilleures apps natives, comme par exemple l’ouverture d’une fenêtre en 150 ms seulement, mais le curseur doit bouger en moins de 8 ms. Ces valeurs médianes font qu’une interface semble parfaitement fluide et elles seront visées tout au long du développement. D’autres objectifs ont été ou seront fixés, notamment la quantité de RAM consommée qui devra rester minime ; c’est en effet souvent un autre problème avec Electron.
Les créateurs de Xray ont réfléchi systématiquement avec les performances en tête, ce qui implique des choix importants à tous les niveaux, de la manière d’enregistrer et d’afficher le texte aux traitements qui seront faits en parallèle pour ne jamais bloquer l’interface. Ce sont autant de points qui compliquent le développement par rapport à une « simple » app Electron, mais qui devraient offrir de bien meilleures performances à l’arrivée.
Du moins, en théorie, puisque Xray n’est même pas encore un prototype fonctionnel à ce stade. GitHub a prévu d’allouer 12 semaines de développement au projet et on en est à la deuxième, à un stade où l’on ne s’occupe encore que des bases. Le développement est entièrement open-source et peut-être suivi sur GitHub également. Vous pouvez y participer, simplement en spectateur ou en contributeur, si vous avez les compétences nécessaires.
Si tout va bien, on devrait avoir un concept plus ou moins fonctionnel dans quelques mois. À partir de là, GitHub pourrait choisir de passer à la vitesse supérieure en matière de développement. Et pourquoi pas, si tout va vraiment bien, faire de Xray le successeur d’Atom à l’avenir. Mais on en est encore loin et l’idée de base doit encore prouver son intérêt à l’usage.
Image de couverture : photo sergiok (CC BY-NC 2.0) et le logo d’Electron