Faut-il utiliser Electron pour le développement d’applications de bureau ?
Faut-il utiliser Electron pour le développement d’applications de bureau ?
Quels sont ses avantages et inconvénients ?
« Dites non à Electron ! », suggère Renato Athaydes, un développeur logiciel travaillant dans une entreprise technologique privée. C’est sa réponse à de récentes discussions dans des forums de programmation sur Electron et son impact sur le monde du développement d’applications de bureau.
« Si vous ne connaissez pas Electron, il s'agit essentiellement d'un navigateur Web (Chromium) qui héberge seulement votre application Web... comme s'il s'agissait d'une application de bureau (non, ce n'est pas une blague) », dit-il. « Cela vous permet d'utiliser la pile Web pour développer des applications de bureau multiplateformes. »
Ce qu'il faut retenir, c'est que le framework Electron vous permet d'écrire des applications de bureau multiplateformes en utilisant JavaScript, HTML et CSS. Il est basé sur Node.js et Chromium et est utilisé par l'éditeur Atom, mais également de nombreuses autres applications. Parmi ces dernières, on peut citer :
- Visual Studio Code, l'éditeur de code open source développé par Microsoft ;
- Slack, l'application de messagerie pour les équipes ;
- Nuclide, un IDE ouvert pour le développement Web et mobile natif, construit au-dessus d'Atom ;
- l'application de bureau de WordPress ;
- l'application de bureau de Twitch ;
- l'application de bureau de GitHub ;
- etc.
Vous trouverez en effet un nombre croissant d'applications de bureau modernes qui utilisent ce framework. C'est ce que note d'ailleurs Renato Athaydes, mais pour lui, c'est horrible de penser qu'on peut faire de meilleures applications de bureau en utilisant des technologies du Web.
« La plupart des nouvelles applications de bureau "branchées" de nos jours sont construites sur Electron », dit-il en reconnaissant après tout que c'est remarquable. « Nous avons écrit des applications de bureau pendant des décennies. Le Web, par contre, a vraiment commencé il y a moins de 20 ans, et la plupart du temps, il n'a été utilisé que pour servir des documents et des gifs animés, et non pour créer des applications à part entière, pas même les plus simples. »
« Penser que la pile Web serait utilisée pour créer des applications de bureau il y a 10 ans était impensable. Mais nous y sommes, en 2017, et beaucoup de gens intelligents pensent que Electron est une excellente idée ! » Pour lui, cela n'est pas pour autant le résultat de la supériorité de la pile Web sur les frameworks d'interfaces de bureau, pour le développement d'applications. « Loin de là, je ne pense pas qu'il y ait une seule personne qui ne soit pas d'accord sur le fait que le Web est un gâchis », a-t-il souligné.
Pour ironiser, en faisant allusion aux applications qui utilisent Electron, il affirme que « si les gens préfèrent livrer un navigateur Web complet avec leurs applications afin qu'ils puissent utiliser d'excellents outils tels que JavaScript pour les développer, il y a vraiment quelque chose qui ne va pas. »
C'est en fait là l'un des principaux reproches faits à Electron. Indépendamment de la question de savoir si la pile HTML + JavaScript + CSS est bonne pour les applications de bureau, l'un des points qui dérangent le plus à propos d'Electron est qu'il va empaqueter un runtime Web complet dans chaque application, même si un runtime convenable existe déjà sur le système d'exploitation. Chromium comprend plus de 20 millions de lignes de code et il semble que chaque application Electron va empaqueter une copie de cette énorme base de code sous forme de binaire. Cela aura pour conséquence de grossir la taille de votre application et créer un gaspillage de mémoire.
Il existe pourtant selon Renato Athaydes de meilleures alternatives à Electron pour le développement d'applications de bureau. Si cela ne vous pose pas de problèmes d'avoir différentes équipes pour chaque système d'exploitation populaire, il pense alors à Windows Presentation Foundation (WPF) sur Windows et AppKit sur macOS.
Mais comme l'idée derrière Electron c'est de pouvoir développer des applications de bureau multiplateformes, il estime que les concurrents réels et meilleures alternatives à Electron sont les frameworks multiplateformes, notamment GTK+, Qt et JavaFX.
GTK+ est un toolkit permettant de créer des interfaces utilisateur graphiques. GTK + est multiplateforme et dispose d'une API facile à utiliser, ce qui permet d'accélérer le temps de développement. Il est écrit en C, mais a été conçu de manière à supporter un large éventail de langages, pas seulement C/C ++.
Qt est un framework de développement d'applications multiplateformes, pour desktop, l'embarqué et le mobile. Les plateformes prises en charge incluent Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS et bien d'autres.
Son choix est toutefois JavaFX qui avec la JVM, selon lui, est parfait pour développer des applications de bureau rapides et responsives.
Source : Billet de Renato Athaydes
Et vous ?
:fleche: Pensez-vous qu’Electron (ou la pile Web) est adapté pour développer de bonnes applications de bureau ?
:fleche: Quels sont ses avantages et inconvénients ? Partagez votre expérience
JavaFX le mieux pour faire des applications desktop ? C'est qui ce clown ?!
Nan sans rire... ce monsieur affirme utiliser JavaFX pour des applications desktop ? C'est juste ridicule. A moins qu'il bosse chez tableurSoftInc je vois pas trop ce qu'il peut faire de bien en javaFX... c'est juste bon à faire des applicatons de gestion.
JavaFX est a l'abandon total à se demander si Oracle savent qu'ils possède ce truc.
Swing super mais malheureusement niveau esthétisme on a vu mieux...
Qt : ok la on se rapproche de quelque chose de pas mal et au moins on peut accéder de façon naturelle au hardware car bon c'est le but d'une application native généralement. Dans le cas contraire on a gentillement des siteweb/webapp pour a peu près tout faire.
Ahhh mais attends c'est pas justement pour ca qu'électron est la ? Comme ça on code la webapp et on l'intègre dans une appli "semi native" qui nous permet de ne coder qu'une fois l'appli et d'y ajouter 2 ou 3 features comme les notifications intégrées à l'OS ?
Electron sa force c'est ça ! Code once run everywhere ! Mais ça fait peur aux vieux Senior JAVA qui ont toujours refusé de s'ouvrir au monde et d'apprendre autre chose que java...
Faut sortir de votre bulle les gars... Java c'est génial niveau backend mais il existe d'autres trucs hein :p
Quitte à devoir supporter des applis web...
Electron n'est pas une idée nouvelle, Intel avait déjà proposé cela il y plusieurs années au début de HTML5.
Empaqueter une appli web dans un environnement cohérent et figé est une nécessité en entreprise.
Je sais, c'est moche, mais il semble impossible de s'en passer car:
- les navigateurs suivent leurs propres chemin et cassent régulièrement les applis web existantes
- on n'arrive jamais à trouver un navigateur unique compatible avec toutes les applis
On en arrive à créer des micro navigateurs web "une page" et sans historique ni barre d'adresse (ni de retour arrière) avec par exemple Qt ou un Firefox figé en version.
Pour l'intranet on les empâche d'aller sur internet en ne renseignant pas le proxy (pour éviter toute utilisation d'un vieux navigateur sur internet)
Ca permet:
- de garantir le fonctionnement présent sur le poste client
- de garantir le fonctionnement futur sur le poste client (la durée de vie de l'appli web suit la durée de vie de cette version du mini navigateur).
Je considère actuellement que le fonctionnement d'une appli web ou intranet dans le navigateur de l'utilisateur est un mode dégradé fortuit temporaire.
Bref, je pense qu'en appli HTML5 doit être livrée avec son lecteur.
Maintenant, bien que je partage le point de vue de l'auteur sur l'immense gâchis de ressources que sont les applis HTML5 (mémoire et CPU), sur le poste de travail c'est rarement un très gros problème.
Donc on peut souligner les avantages en réactivité de Java ou .Net ou Qt sur les interfaces graphiques, mais le HTML5 a l'avantage d'être très répandus, et de faire que l'utilisateur se sent en confiance car ça ressemble à ce qu'il connaît.
D'ailleurs, mes dernières applis Java utilisaient le moteur HTML intégré pour présenter à peu près tout.