Electron - le Framework cross platform pour applications desktop

Le problème exposé dans ce sujet a été résolu.

Bonsoir à tous !

Je viens de découvrir le Framework Electron, le Framework avec lequel est conçus l'éditeur de texte qui m'est cher, Atom.

Ça, me parait pas mal, ça utilise les technologies du web (HTML, CSS, JS …), Node.js et ça permet de faire de belles interfaces. Jusqu'à maintenant, pour faire mes applications desktop cross platform, j'utilisai le Java et dieu sais que c'est compliqué de faire une interface "moderne" en Java.

Le seul hic dans tout ça c'est que je ne connais pas Node.js et je n'ai pas envie d'apprendre à m'en servir si ce Framework ne me convient pas.

Avez-vous déjà utilisé ce Framework ? Est-il assez mature pour en valoir la peine ? A-t'il des limites ?

+1 -0

Le seul hic dans tout ça c'est que je ne connais pas Node.js et je n'ai pas envie d'apprendre à m'en servir si ce Framework ne me convient pas.

A noter que tu peux en théorie utiliser un peu n'importe quoi. Electron, globalement, ne fait que servir des pages web. Cet article par exemple fait le minimum en js pour lancer un interpréteur Python et utilise Flask pour rendre le contenu ensuite. On doit pouvoir généraliser ça facilement à n'importe quel techno web.

Le seul hic dans tout ça c'est que je ne connais pas Node.js et je n'ai pas envie d'apprendre à m'en servir si ce Framework ne me convient pas.

DigitalSuricate

Tu peux toujours tenter quelques tests, ce sera certainement pour toi le meilleur moyen de voir si ce framework te convient. Concernant Node.js, c'est vraiment pas difficile. De plus, ça pourrait peut-être te servir par la suite !

Le seul hic dans tout ça c'est que je ne connais pas Node.js et je n'ai pas envie d'apprendre à m'en servir si ce Framework ne me convient pas.

A noter que tu peux en théorie utiliser un peu n'importe quoi. Electron, globalement, ne fait que servir des pages web. Cet article par exemple fait le minimum en js pour lancer un interpréteur Python et utilise Flask pour rendre le contenu ensuite. On doit pouvoir généraliser ça facilement à n'importe quel techno web.

Kje

Très intéressant, mais je ne vais pas me compliquer la tache avec ce genre d'architecture complexe …

Le seul hic dans tout ça c'est que je ne connais pas Node.js et je n'ai pas envie d'apprendre à m'en servir si ce Framework ne me convient pas.

DigitalSuricate

Tu peux toujours tenter quelques tests, ce sera certainement pour toi le meilleur moyen de voir si ce framework te convient. Concernant Node.js, c'est vraiment pas difficile. De plus, ça pourrait peut-être te servir par la suite !

Emeric

Il me semblais au contraire que Node.js était difficile à appréhender, surtout pour quelqu'un comme moi qui vient du monde Java.

Bref, pensez-vous qu'Electron est véritablement intéressant ? Ou est il préférable de s'orienter vers une techno comme appjs ? (je n'est pas assez de recul pour pouvoir juger par moi même)

Le seul hic dans tout ça c'est que je ne connais pas Node.js et je n'ai pas envie d'apprendre à m'en servir si ce Framework ne me convient pas.

DigitalSuricate

Tu peux toujours tenter quelques tests, ce sera certainement pour toi le meilleur moyen de voir si ce framework te convient. Concernant Node.js, c'est vraiment pas difficile. De plus, ça pourrait peut-être te servir par la suite !

Emeric

Il me semblais au contraire que Node.js était difficile à appréhender, surtout pour quelqu'un comme moi qui vient du monde Java.

DigitalSuricate

Si tu restes sur la simple idée de réaliser quelques test, ça ne devrait pas te poser trop de problèmes. Si tu veux aller plus loin, ce sera peut-être différent… Encore une fois, essaye ! Et pour appjs, c'est pareil, tu devras aussi utiliser Node.js :)

Le souci est que toutes ces applications font usage de JavaScript, qui n'est pas forcément un bon langage sur tous les points. (Je n'ai pas envie de lancer un débat, ceux qui ne seront pas d'accord feront comme si je disais des bêtises et n'en tiendront pas compte, ça roule comme ça?)

Tester une application est une tâche bien plus difficile que tester une application Java, par exemple, et ça sera nécessairement la source de bugs. Ca me ferait réfléchir à deux fois au but de test applications et à la fiabilité dont tu as besoin.

Aussi, ne pas utiliser JavaScript te permettra d'être un peu en avance sur ton temps, puisque que cela fait des années que l'on cherche à s'en débarrasser sur le Web, et qu'à côté quelques personnes s'aiment à faire des trucs chouettes avec sur Desktop.

Je n'ai pas de solution miracle à te proposer, mais il faut certainement essayer de comprendre ce que tu veux dire par "applications jolies" et savoir quelles seront les applications réelles. Parfois, et même souvent, joli n'est pas la priorité.

Aussi, ne pas utiliser JavaScript te permettra d'être un peu en avance sur ton temps, puisque que cela fait des années que l'on cherche à s'en débarrasser sur le Web […]

dab

Je n'ai pas cette impression, j'ai plus l'impression que Js est de plus en plus populaire.

Mais sinon je suis d'accord avec toi, le Js c'est "merdique", enfin je veux dire par là qu'il y a pleins de façon de coder en Js, et quand on code à plusieurs ça devient vite le bordel.

Je n'ai pas de solution miracle à te proposer, mais il faut certainement essayer de comprendre ce que tu veux dire par "applications jolies" et savoir quelles seront les applications réelles. Parfois, et même souvent, joli n'est pas la priorité.

dab

J'ai été attiré par ce genre de techno car il y a pleins de librairies inintéressantes en Js (jQuery, Snap.svg …), il y a aussi des techno telle que less qui permette de garder un design facilement modifiable.

Et si, pour le genre d'application que je veux faire, le design est important et Swing n'est pas suffisant …

L'idéale serait de faire du Java, avec de l'HTML et du CSS.

EDIT : Hum, voila qui me rassure, je ne suis pas le seul à détester Js : http://sametmax.com/un-gros-troll-de-plus-sur-javacscript/

+0 -0

La popularité de JS est en trompe l'œil je pense. Ce qui intéresse les gens ce n'est pas tant le langage en lui même (qui à des concepts intéressant mais aussi beaucoup d'erreur de design) mais :

  • la possibilité de faire du front (car sur le front on a pas vraiment le choix)
  • la programmation asynchrone des io offerte par node sur le back.

En gros sur le front on a pas le choix, sur le back l'intérêt est node qui est un bon outils. Le fait que le langage qu'il utilise soit js n'est pas son intérêt principale.

Il est pas évident que js garde ces avantages et exclusivités très longtemps.

Même si ce thread s'écarte du sujet principale, ça m'intéresse énormément ce débat autour de JS.

Ça fait un petit moment que j'essaye de faire du code propre en JS, et je n'y parviens pas, à chaque fois ça devient une bouillie immonde et pourtant j'essaye d'appliquer les design pattern que j'ai appris en Java …

Mais je crois que la principale erreur que la plupart d'entre nous faisons avec le JS, c'est de vouloir faire de l'OOP avec classes, instances, héritage etc … (mais c'est dure de ne pas penser OO quand on en a pris l'habitude).

Pourtant le JS a de bons cotés, comme les fonctions anonymes, la création d'objets à la volé avec la notation JSON …

Es ce que des techno tel que Dart, TypeScript, Haxe, Brython ou Go pourrait palier au grand bordel qu'est devenu JS ?

Je pense que tu as mis le doigt sur ton problème. Tu fais du JS comme du Java. C'est une erreur selon moi. Js de façon et node en particulier sont basé sur un paradigme différent qu'on appel programmation asynchrone. Ce n'est pas la même chose que de l'OOP. Oui on peut mimer le paradigme objet en JS mais on ne peut pas faire que ça car la grande majorité de l'utilisation impose de jouer avec les callback & co. C'est exactement le même problème que si tu essai de faire de l'OOP avec un langage fonctionnel.

C'est aussi pour ça que je pense que la suprématie de JS est en trompe l'oeil. C'est node et la prog asynchrone qui sont surtout plébiscité, plus que le langage, car ils sont très adaptés aux traitements coté serveur type web ou le process passe son temps à attendre les IO. Les autres utilisations sont rarement très pertinente et les gens en reviendront. Et les gens changeront aussi de langage quand les autres langages majeurs étofferont leur support de la prog asynchrone.

Coté autre techno, je ne sais pas. Je crois pas que Go peut être envoyé coté client mais il existe de toute façon des compilateurs vers JS pour a peu pret tout. Le truc est que c'est tres marginal et utiliser ça comme techno fait que tu va vite être bloqué si tu tombe sur un bug ou si tu as besoin d'autres dev pour t'aider. TypeScript est probablement celui que je choisirai si je devais prendre autre chose que du JS pur pour le front car il a le support de Microsoft et Google (qui va l'utiliser pour Angular). Ça en fait un bon candidat comme superset de JS de référence et ça enterre probablement Dart au passage.

A noter que l'annonce de WebAssembly (ou wasm) va peut être tout changer car il sera bien plus facile (et efficace) de porter un langage vers le front web qu'actuellement. Si ça marche il est plutot probable que ce soient surtout des langages de références sur le back qui en tirent partit (Python, C++, Go, Java, C#, etc.) plutot que des langages créé de toute pièce pour le front comme Dart ou TypeScript.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte