Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Quels sont les frameworks JavaScript que vous aimeriez apprendre en 2020 ?
Voici quelques propositions qui sont tributaires des cas d'utilisations

Le , par Stéphane le calme

94PARTAGES

16  0 
Quels sont les frameworks JavaScript que vous aimeriez apprendre en 2020 ?
Electron

Développé par GitHub, Electron est un framework permettant de développer des applications multiplateformes desktop avec des technologies web (JavaScript, HTML et CSS). L'infrastructure (backend) est codée en node.js, et l'interface (frontend) est bâtie sur la base des outils Chromium. Electron a notamment permis de développer les éditeurs de texte libres Atom de GitHub et Visual Studio Code de Microsoft.

Les applications desktop Electron peuvent lire et écrire des données dans le système de fichiers de l'ordinateur. Il existe de nombreuses applications desktop populaires construites avec Electron sur le marché, par exemple Skype pour Linux. L'avantage de cette solution est qu'il n'est pas nécessaire qu'un développeur Web JavaScript apprenne une nouvelle technologie ou un nouveau langage pour créer une application desktop. L'application Electron réutilise généralement la logique métier, la conception et la structure générale d'une application Web.

React

React est une bibliothèque JavaScript libre développée par Facebook. React a été conçu comme étant une bibliothèque et non un framework MVC, comme peuvent l'être ses concurrents. React est une bibliothèque qui ne gère que l'interface de l'application, considéré comme la vue dans le modèle MVC. Elle peut ainsi être utilisée avec une autre bibliothèque ou un framework MVC comme AngularJS. La bibliothèque se démarque de ses concurrents par sa flexibilité et ses performances, en travaillant avec un DOM virtuel et en ne mettant à jour le rendu dans le navigateur qu'en cas de nécessité.

React encourage donc la création de composants réutilisables, avec en entrée des données, pouvant changer au cours du temps. Par ailleurs, React n'utilise pas de système de templates et ne fonctionne qu'avec du JavaScript, permettant une encapsulation complète du composant au sein d'une unique classe.

Le but principal de cette bibliothèque est de faciliter la création d'applications web monopages, via la création de composants dépendant d'un état et générant une page (ou portion) HTML à chaque changement d'état.


Facebook recommande d’utiliser JSX, une extension syntaxique de JavaScript, avec React afin de décrire à quoi devrait ressembler l’interface utilisateur (UI). Bien entendu, React ne vous oblige pas à utiliser JSX, mais la plupart des gens y trouvent une aide visuelle quand ils manipulent l’interface utilisateur dans le code JavaScript. Cela permet aussi à React de produire des messages d’erreurs et d’avertissements plus utiles.

Étant donné qu’il est créé et maintenu par Facebook, il fournit un poids énorme sur la balance lors du choix pour un projet. Cela donne de React un sentiment de stabilité qui fait défaut à de nombreux nouveaux frameworks.

Angular

Angular est l'un des frameworks JavaScript les plus puissants, efficaces et open source. Angular utilise TypeScript, qui est un sur-ensemble de JavaScript qui peut être compilé en Vanilla JS. Google, qui est en est à l’origine, exploite ce framework qui est implémenté pour être utilisé pour développer une application web monopage (en anglais single-page application ou SPA). Étant donné que Angular est géré par Google, les utilisateurs peuvent être sûrs qu'il sera disponible et utilisé pendant longtemps.

Angular est donc un framework JavaScript qui étend le HTML pour le rendre dynamique, et permet de développer ses propres balises et attributs HTML. C’est un framework qui se veut extensible et qui pousse vers un développement structuré, en couches, le but n’étant pas d’ajouter de simples animations au DOM, mais bien d’apporter un aspect applicatif au front-office.

Il étend le code HTML dans l'application et interprète les attributs pour effectuer la liaison de données. Le projet Angular est construit sur des années d'expérience, d'Angular à Angular 2 et bien au-delà. Angular 2 regorge de fonctionnalités utiles telles que l'injection de dépendances, les templates, les formulaires, etc.

Meteor

Meteor est un framework full-stack, qui permet aux développeurs d'apprendre un outil et de l'utiliser pour presque tout dans leur application. Meteor se présente comme « le moyen le plus rapide de créer des applications JavaScript », une « plateforme open source pour le Web, les mobiles et les ordinateurs de bureau ». Meteor est donc un candidat intéressant pour les projets full-stack. Ce framework multiplateforme écrit en Node.js peut être utilisé pour créer des applications Web, mobiles et desktop.

Ce framework est utilisé dans des domaines tels que le développement back-end, la gestion de bases de données, la logique métier et le rendu du front-end. Il peut être utilisé avec Cordova ou d'autres outils similaires pour produire des applications. Il dispose de modules front-end et back-end, d’outils de build et de packages Node.js.


NW.Js

NW.js, anciennement connu sous le nom de node-WebKit, a été construit au centre de technologie Open Source d'Intel en combinant le framework Node.js avec un moteur Chromium (anciennement Webkit). Node.js est un environnement d'exécution JavaScript côté serveur, qui fonctionne sur plusieurs plateformes et est un outil open source pour le développeur.

Il s’agit donc d’un framework qui permet de développer des applications multiplateformes (Windows, MacOS et Linux) avec des technologies Web (JavaScript, HTML/CSS). Grâce à la combinaison Node.js et Chromium, vous pouvez créer une application qui non seulement charge un site Web local dans une fenêtre d'application, mais se connecte également au système d'exploitation via l'API JavaScript. Le framework est capable de piloter des E / S asynchrones avec son architecture événementielle. Il fonctionne dans l'environnement JavaScript Runtime et montre donc des propriétés similaires de JAVA comme le threading, les packages, la formation de boucles.

NW.js vous donne la liberté de choisir les frameworks et les bibliothèques que vous souhaitez utiliser sur un projet. Il permet d'appeler des modules Node.js directement à partir du DOM, prend en charge toutes les fonctionnalités du navigateur, fournit une protection source JavaScript et est disponible sur Linux, Mac OS et Windows.


Ember.Js

Ember.js est arrivé sur le marché des logiciels en 2015, et depuis lors, il a gagné en popularité avec son large domaine d'application. Ember.js se concentre sur l'accomplissement des tâches et leur réalisation rapide. Les fonctionnalités d'Ember.js prennent en charge la liaison de données bidirectionnelle et, par conséquent, établissent une plateforme fiable pour gérer les interfaces utilisateur complexes. Des sites Web populaires comme LinkedIn, Netflix, Nordstrom et bien d'autres utilisent la plateforme Ember.JS. L'inspecteur Ember permet une inspection facile des objets Ember dans les outils de développement de votre navigateur. Cela peut être utilisé à la fois lors du développement et du débogage de problèmes.

Les meilleures pratiques avisées rendent Ember relativement facile à utiliser, tant que vous êtes prêt à suivre la structure d'Ember. Cela facilite le démarrage des projets. Il fournit également plusieurs outils externes pour aider les développeurs. Le package d'outils de ligne de commande « ember-CLI » propose des outils utiles à ajouter à la boîte à outils du développeur d'une application Ember. C'est un excellent outil pour mettre rapidement votre application en production et pour traiter les problèmes et les problèmes de dépannage.


Proton Native

Proton Native a été mis à disposition sur GitHub au début de 2018. Ce qui en fait l'un des frameworks JavaScript les plus intéressants pour les applications desktop, c'est qu'il vous permet de gérer l'état et de créer des interfaces utilisateur de manière transparente tout en le faisant sur plusieurs plateformes. Il fonctionne assez différemment d'Electron, qui exécute un navigateur Chromium complet pour gérer une petite interface graphique. Proton Native, en revanche, utilise des outils natifs, prend moins d'espace et nécessite moins de ressources.

Vue.Js

Vue.js a été développé en 2016, ce framework JavaScript a déjà fait son chemin sur le marché et a fait ses preuves en proposant diverses fonctionnalités. Vue a une taille de fichier incroyablement petite, ce qui facilite son inclusion dans les projets sans créer de ralentissement. Son mode d'intégration double est l'une des fonctionnalités les plus attrayantes pour la création de SPA haut de gamme ou d'application à page unique.

Vue peut être intéressant pour le développement multiplateforme. Vue a une courbe d'apprentissage relativement plus facile que certains des plus grands frameworks et une documentation fournie pour aider les personnes qui débutent avec les frameworks JS mais aussi les professionnels. C’est l’un des frameworks recommandés pour les personnes débutants avec des frameworks JavaScript ou qui ont besoin de quelque chose de léger pour un projet.

Mithril

Mithril.js est un framework JavaScript moderne qui permet notamment de concevoir des applications monopages. Il est petit (moins de 8 Ko pour son archive gzip), rapide et fournit des utilitaires XHR et de routage prêts à l’emploi. Il bénéficie, en outre, du soutien d’une communauté active qui contribue depuis quelques années déjà à son évolution.

Mithril offre des possibilités similaires à Angular.js tout en étant beaucoup plus simple à manipuler. Il utilise aussi une représentation interne du DOM (ou Virtual DOM) et se sert de JavaScript comme d’un mécanisme de contrôle de flux dans les vues comme React.js. Ce framework a l’avantage d’être plus léger que React ou Angular et évite d’avoir recours à des bibliothèques tierces telles que jQuery.

Mithril pourrait être considéré comme la solution idéale pour créer des widgets JavaScript intégrés et des interfaces utilisateur ayant des exigences de performances élevées. Il permet aussi d’améliorer les performances des applications conçues pour la communication interactive en temps réel entre différents interlocuteurs. De plus, ce framework de développement est supporté par un très grand nombre de navigateurs (incluant Internet Explorer 9) et par toutes leurs versions mobiles.

Mithril est utilisé par de nombreuses sociétés reconnues (Vimeo, Nike ou encore Fitbit) et alimente également de grandes plateformes open source comme Lichess ou Flarum. Ce framework a même déjà permis de concevoir l’application de jeu Guild Wars 2. Son approche pragmatique de la création d’applications le destinerait aux développeurs qui privilégient la cohérence et la facilité d’intégration.

Polymer

Polymer est un framework open source, plus léger, soutenu par Google, avec un accent particulier sur la conformité aux normes, qui peut créer les éléments du site Web sans entrer dans un niveau complexe. En outre, il prend en charge la liaison de données unidirectionnelle et bidirectionnelle, créant ainsi un domaine d'application plus étendu. Polymer offre une excellente alternative pour ceux qui veulent un framework plus léger et plus facilement intégré.

La focalisation conforme aux normes contribue à garantir la longévité de votre application, ainsi que la compatibilité avec d'autres applications ou plateformes. Polymer fonctionne bien avec Progressive Web Apps, qui est de plus en plus important pour les développeurs qui se concentrent sur la connexion de l'expérience mobile avec celle de l'utilisateur de bureau. Puisqu'il est léger, ses temps de chargement sont bien meilleurs que des frameworks qui pèsent plus lourd.

Et vous ?

Quels sont les frameworks JavaScript que vous aimeriez apprendre en 2020 ?
Quels sont ceux que vous utilisez déjà ?
Quels sont les critères qui peuvent vous pousser sur un autre framework (la courbe d'apprentissage, sa popularité au sein des entreprises, sa syntaxe, la curiosité, etc.) ?

Voir aussi :

Quels sont les coûts liés à l'utilisation de frameworks JavaScript pour le développement Web ? Une analyse des sites utilisant React, Vue.js ou Angular
Quels sont les meilleurs langages de programmation pour développer une application mobile ? Petit tour d'horizon sur les plus populaires
Sondage : quels sont les meilleurs conseils pour survivre en tant que consultant ou développeur indépendant ?
Quels sont les meilleurs langages de programmation à apprendre en 2020 ? Voici un classement de ces langages selon le cas d'utilisation

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de SimonDecoline
Expert confirmé https://www.developpez.com
Le 22/06/2020 à 19:43
Mais oui bien-sûr, d'ailleurs ce site sur les nouveautés d'ES6 ne parle que des classes : http://es6-features.org/ ...

Et sinon, ce serait bien de modérer et d'argumenter tes propos car on est là pour discuter entre développeurs, pas pour que tu nous instruises de la Vérité.
8  0 
Avatar de SimonDecoline
Expert confirmé https://www.developpez.com
Le 22/06/2020 à 20:36
Citation Envoyé par Sodium Voir le message
Les classes ça permet de ne plus être dans une fonction dans une fonction dans une fonction. Niveau lisibilité ça change tout. Et au bout d'un moment, la majorité des langages courants utilisent des classes, de un ce n'est pas pour rien, de deux faire différent pour faire différent ça n'a strictement aucun intérêt. Donc oui il s'agit indéniablement du plus gros ajout de cette version.
Alors déjà non : "les classes" (sous-entendu "à la java" ne sont qu'une implémentation particulière du concept de POO, et pas du tout celle proposée par la POO originelle. Ensuite, si elles paraissent simple au premier abord, ça ne prouve absolument pas leur pertinence au final (https://programmation.developpez.com...bases-de-code/). Ensuite (2) : beaucoup de languages n'utilisent pas les classes "à la java" : rust, elm, purescript, smalltalk... Ensuite (3) : si tu utilises l'argument de popularité pour dire que les classes c'est bien tu peux aussi utiliser ce même argument pour dire que les classes c'est mal car JS est populaire sans elles. Et enfin : on s'en fout complètement, ce n'est pas le sujet de la discussion !
7  0 
Avatar de SimonDecoline
Expert confirmé https://www.developpez.com
Le 22/06/2020 à 11:30
Citation Envoyé par Sodium Voir le message
Un éditeur de code avec des plugins pour compiler, débugger, générer du code pour la plupart des langages tout en restant ultra-léger, totalement paramétrable et très bien pensé. Il a bien sa place parmi les meilleurs IDE.
Si tu le dis...
Perso, j'utilise régulièrement VSCode, Clion et Qtcreator, et je trouve que pour des gros projets C/C++, VSCode n'a pas le niveau d'un IDE. Ca n'empêche pas qu'electron permet effectivement de faire des bons logiciels mais je ne vois pas l'intérêt d'un concours du meilleur IDE.

Citation Envoyé par Sodium Voir le message
Pas trouvé avant d'avoir eu la flemme de poursuivre.
Oui donc tu ne regardes pas mais tu critiques quand même. Et ensuite tu reproches aux autres de ne pas connaitre ce dont ils parlent...
6  0 
Avatar de Dave Hiock
Membre habitué https://www.developpez.com
Le 24/06/2020 à 18:57
Il est à considérer plusieurs cas, au moins deux.

Je travail en équipe et les projets fusent de toutes parts avec de différents environnements et problématiques à résoudre, en gros je décide de rien, je suis la tendance, voire la mode, c’est le client qui décide suivant ce qui lui a été vendu (on peut quand même donner son avis amis bon...).

Cela va donc dépendre du(es) projet(s), il y a, aura, donc une remise à niveau ou évolution à prévoir.

Dans ce cas on va dire que cela ne sera pas « Quels sont les frameworks JavaScript que vous aimeriez apprendre en 2020 ? » mais « Quels sont les frameworks JavaScript qu’il faut que j’apprenne en 2020 ? » et là visiblement tout le monde se gargarise avec Angular, il est vrai que cela fait mouche sur un CV, pourquoi pas mais combien de temps avant d’être opérationnel, c’est une autre vision des choses pas toujours simple à aborder !

Maintenant je travaille en solo et là plusieurs raisons peuvent apparaître
  • Je suis curieux car il faut être curieux, le fameux j’en ai entendu parler ça à l’air bien ;
  • Je veux évoluer, surveillance du marché du travail ;
  • Veille technologique, il faut se tenir au courant des dernières technos et les essayer, voire arriver à les dompter ;
  • Juger de l’apport, la plus value, de cette techno sur mes prochains développements ;
  • ...


Au final on risque d’utiliser celui qui nous semblera le plus aisé, que l’on maîtrisera le mieux, celui qui répondra et résoudra le mieux une certaine problématique.

Dans bien des cas le « JS vanilla »est très satisfaisant, il suffit de savoir tirer partie des évolutions du langage pour écrire du code structuré, concis et maintenable.

Personnellement j’aime bien Vue.JS, mais il me reste à jeter un coup d’œil aux autres sachant que plus ça va et plus je suis frileux devant les petits nouveaux qui doivent révolutionner le codage.
6  0 
Avatar de frfancha
Membre éprouvé https://www.developpez.com
Le 22/06/2020 à 18:00
Citation Envoyé par Sodium Voir le message
C'est rigolo de parler d'ES6 car les vrais de vrais de JavaScript te diront "non mais les classes c'est pourri
Les classes ne sont qu'une partie infime de ce que ES6 apporte. C'est pas parce qu'on te dit "ES6" qu'on te dit "Class", ce ne sont pas des synonymes.
5  0 
Avatar de gbegreg
Membre émérite https://www.developpez.com
Le 02/07/2020 à 11:37
Citation Envoyé par Sodium Voir le message
Mais pourquoi des coordonnées ? Le HTML affiche le contenu en fonction du flux. Si je conçois un menu après, ce qui se trouve après se retrouve en dessous. Si je veux positionner un élément de ce menu, il est relatif au menu. Quelle perte de temps que de placer élément par élément à la main.
Parce que tu souhaitais faire rebondir un élément graphique sur les bords de l'écran...
Je me répète, une nouvelle fois car tu ne sembles pas lire mes réponses, tu peux le faire par code aussi : on est libre d'utiliser ou non l'éditeur graphique. Celui ci convient parfaitement dans les cas les plus fréquents. Après via le code, ça revient effectivement à ce qui est fait en web.
Concernant la perte de temps c'est subjectif et ça dépend de l'expérience de chacun. Je fais du développement web aussi et, pour moi, il m'arrive de perdre beaucoup de temps à comprendre certains phénomènes avec CSS car je ne le maitrise pas.

Citation Envoyé par Sodium Voir le message
Le vectoriel ne résout que le plus petit des problèmes. Rendre une interface responsive, ce n'est pas juste rendre des éléments plus petits ou plus grand, c'est parfois réorganiser complètement le layout. Je suppose qu'en Delphi tu crées des layout différents en te basant sur plusieurs tailles d'écran... comment tu t'y retrouves ? Si tu as un item d'un menu en haut à haut à gauche à 900px de large et en bas à droite en 860px comment tu suis le flux de ton layout.
Tu lis les réponses que je te fais ? J'ai dit que l'on pouvait parfaitement réorganiser partiellement/complétement le layout si on le souhaite et ce n'est pas une réécriture à chaque fois, via le mécanisme d'héritage c'est de l'adaptation du parent. Dans mes développements Web j'utilise aussi pas mal Bootstrap et ça convient bien pour une majorité de cas d'usage mais son côté responsive à des limites sur de petits écrans par exemple.

Citation Envoyé par Sodium Voir le message
Comment veux-tu que j'ai l'habitude d'utiliser Delphi ? La techno est morte de chez morte, je n'ai même pas trouvé de vidéo Youtube d'explication. Mais j'ai déjà bossé avec des conceptions de ce genre et ça ne marche pas.
Ce n'est pas mort, ça fonctionne très bien et tu n'as pas du beaucoup chercher... Exemples :
https://www.youtube.com/c/EmbarcaderoTechnologies/videos
https://learndelphi.org/
et un exemple en français récent :
https://www.youtube.com/channel/UCSrWP5Y01uSHS3014Pfprlw/videos

Citation Envoyé par Sodium Voir le message
Ce que je veux dire c'est que je veux pouvoir avoir un contrôle total du layout directement dans le code, et pouvoir comprendre le layout de l'application juste en regardant ce dernier. Donc à quoi ressemble ce code ?
Dans le concepteur graphique d'ihm Delphi, il suffit de basculer en mode texte/graphique pour voir/modifier le code généré ou passer par la représentation graphique.
Ça ne charge ni l'IDE ni le code métier réellement utile. Avoir la représentation graphique en temps réel dans l'IDE est appréciable également, d'un coup, je vois le rendu sur Desktop (Windows, MacOS, Linux) et Mobile (IOS, Android). Les modifications apportées via l'éditeur graphique sont instantanément visibles dans l'IDE sans avoir à recompiler. Pour ce qui est des animations, oui il faut recompiler et exécuter l'appli.

Dans mon entreprise, des personnes non développeur accèdent au code et visualisent ainsi tout de suite le rendu de l'interface. Pour le maquettage c'est également très pratique. On peut constituer l'interface très rapidement avec le client à nos côtés.

Citation Envoyé par Sodium Voir le message
Tu as raison, j'aurais probablement plutôt dû dire pas possible de faire ça de manière maintenable. Déjà là avec ce simple exemple c'est limite, tu ajoutes des objets d'animations, des styles via des menus. En HTML l'élément de menu est une balise comme n'importe quelle autre, tu déclares un style de 3-4 lignes qui se trouve proprement rangé dans un fichier de style, même pas besoin de créer une animation il suffit d'indiquer qu'on peut une transition, avec un positionnement on le sort de son flux et peut être manipulé facilement... et à l'inverse il suffit d'inverser l'action. Le tout, hors moteur physique, tient en une ligne de HTML, 10 lignes de CSS, une ligne de JavaScript. Sans perdre du temps à aller cocher des cases dans des menus.
Je n'ai pas rajouté de style via des menus, par défaut c'est le style de l'OS cible qui est utilisé. L'objet animation correspond à ton code HTML, on peut aussi le faire de manière inverse, en boucle, utiliser les méthodes d'interpolation de son choix, c'est exécuté dans un thread à part. Les composants que je rajoute sont réutilisables et modifiables à souhait. Et encore une fois, on n'est pas obligé de passer par l'inspecteur d'objet pour modifier les propriétés (c'est juste un raccourci pour gagner du temps), tout peut se faire par code mais du coup on se retrouve à tout faire à la main comme en web et, du coup, on perd du temps ! Sans parler des risques d'erreur quand on ajoute du code manuellement, des tests qu'il faut faire en plus.
Je ne vois pas ce que tu trouves de limite dans la maintenance car une application Web moderne s'appuie sur un grand nombre de dépendances également ce qui n'est pas facile à gérer dans le temps et qui accélère aussi beaucoup la dette technologique d'une application Web.

Enfin, dans n'importe quel langage on peut produire ou non du code maintenable.
3  0 
Avatar de user056478426
Membre régulier https://www.developpez.com
Le 20/06/2020 à 13:28
Vue.js est un très bon framework, malheureusement il ne s'intègre pas très bien ave Typescript, on perd parfois la signature des types, son utilisation perd donc de l'intérêt. C'est là où Angular devient (à mon humble avis) le meilleur choix possible. Je n'ai encore que très peu pratiqué mais je pense que mon prochain projet perso se fera sur Angular.
2  0 
Avatar de SimonDecoline
Expert confirmé https://www.developpez.com
Le 22/06/2020 à 12:44
Citation Envoyé par Sodium Voir le message
Fonctions dans des fonctions dans des fonctions, chaque fichier contient une fonction qui englobe le tout
Ce serait bien de regarder la version ES6 : https://github.com/tastejs/todomvc/b...rc/template.js
2  0 
Avatar de grunk
Modérateur https://www.developpez.com
Le 22/06/2020 à 13:54
Étant donné que Angular est géré par Google, les utilisateurs peuvent être sûrs qu'il sera disponible et utilisé pendant longtemps.
C'est marrant , parce que c'est exactement ce qui m'a fait hésité au moment de choisir Angular pour l'un de nos projets actuels qui à vocation à vivre longtemps.
Google à pas la réputation d'être tendre avec ces projets , quand il à décider que c'est fini , c'est fini.

Pour le moment je regrette pas , même si le rythme de release est trop élevé à mon gout ... pourvu que ca dure.
2  0 
Avatar de frfancha
Membre éprouvé https://www.developpez.com
Le 23/06/2020 à 20:29
Citation Envoyé par Sodium Voir le message
Oui effectivement, un immense succès

https://programmation.developpez.com...agez-vos-avis/

Indépendamment du fait que ce sondage n'a pas de lien avec le succès (il y a des tas de langages académiques très appréciés qui n'ont aucun succès), il est en plus restreint au monde francophone qui n'est pas représentatif du monde entier quoiqu'en pensent certains.
2  0