The State Of JavaScript 2018
Le formulaire de l'enquête est disponible.

Le , par Marco46, Modérateur
Depuis quelques années, des organisations ou des particuliers organisent des enquêtes annuelles dénommées "the State of ..." sur le modèle du discours sur l'état de l'Union prononcé par le président américain devant son parlement.

La plus sérieuse de ces enquêtes est sans conteste le State Of DevOps mené par la société puppet depuis 5 ans.

L'écosystème JavaScript n'est pas en reste, depuis 2016, trois développeurs français (Raphaël Benitte, Sacha Greif et Michael Rambeau à qui l'ont doit également l'excellent bestofjs.org) ont mis au point le State Of JavaScript qui a réuni en 2017 pas moins de 20 000 réponses de développeurs à travers le monde.

Le propos de l'enquête est de donner une vue macro des outils, frameworks et bibliothèques utilisés dans le monde année après année en proposant également une ventilation des résultats par pays.


Les abonnés à la liste de diffusion ont reçu récemment le mail indiquant l'ouverture de l'enquête pour l'année 2018.

Sacha Greif a également publié sur son blog medium un billet à ce propos.

Le formulaire est disponible pour quelques semaines et les résultats seront dévoilés en avant-première lors de la conférence dotJS le 9 novembre prochain à Paris.

Sources : stateofjs.com, Sacha Greif

Et vous ?

Participez-vous à cette enquête ?
Que pensez-vous des résultats des années précédentes ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de Bill Fassinou Bill Fassinou - Chroniqueur Actualités https://www.developpez.com
le 20/11/2018 à 9:10
The State Of JavaScript 2018 : l'enquête révèle que JavaScript est en constante évolution
voici une vue macro des technologies JS utilisées

JavaScript est un langage de programmation de scripts principalement employé dans les pages web interactives mais aussi pour les serveurs avec l'utilisation de certains frameworks JavaScript, node.js par exemple. Depuis la sortie de sa première version en 1995, il n'a cessé de gagner en popularité et en performance. Depuis 2016, trois développeurs français (Raphaël Benitte, Sacha Greif et Michael Rambeau) ont mis au point le State Of JavaScript qui est une enquête annuelle effectuée auprès des développeurs JS du monde entier afin de déterminer ce qu'ils utilisaient, ce qui leur faisait plaisir et ce qu'ils souhaitaient apprendre de plus. Le propos de cette enquête est donc de donner une vue macro des outils, frameworks et bibliothèques utilisés dans le monde année après année. Et le résultat est une collection de statistiques et d'informations qui vous aideront à vous frayer un chemin à travers l'écosystème JavaScript, selon Sacha Greif.

L'enquête de cette année recueille l'avis de près de 20 000 développeurs dans 153 pays différents à travers le monde et a été lancée en septembre dernier. Alors que les États-unis dominent l'enquête comme prévu avec 24 % des répondants, l'Allemagne et l'Australie sont toutes deux bien représentées, avec plus de 5 % des répondants chacune. L'étude s'est penchée sur les relations d'utilisation entre les différents frameworks JavaScript pour savoir par exemple le nombre d'utilisateurs de React qui utilisent également Redux, les utilisateurs de de GraphQL qui préfèrent aussi Jest ainsi de suite. La taille de chaque section du graphe ci-dessous correspond au nombre de répondants qui ont utilisé chaque bibliothèque et qui souhaiteraient l’utiliser à nouveau. Ainsi, 92 681 développeurs qui utilisent React pensent continuer à l'utiliser encore. 111 761 de ceux qui utilisent ES6 veulent toujours continuer à l'utiliser.


Le front-end reste le champ de bataille clé pour JavaScript. Une fois de plus l'espace frontal est tout au sujet React et Vue.js . Il y a deux ans, 27 % des répondants n’avaient même jamais entendu parler de Vue.js. Aujourd'hui, cette fraction n'est plus que de 1,3 %. Ainsi, alors que React occupe toujours une part beaucoup plus importante du marché, l’ascension fulgurante de Vue.js ne montre aucun signe d’arrêt et a même déjà dépassé son rival pour certains indicateurs tels que le nombre total d'étoiles GitHub. L'autre fait remarquable de ces dernières années est la chute de Angular. Bien qu'il reste très haut en termes d'utilisation brute, il affiche un taux de satisfaction relativement décevant de 41 %. Ainsi, même si sa base d’utilisateurs est considérable, il est difficile de voir comment il s'imposera face à ces grands rivaux. Svelte quant à lui gagne de plus en plus en popularité. En utilisant une nouvelle approche radicale des frameworks front-end, il a réussi à générer beaucoup d’intérêt auprès des utilisateurs.

Par le passé, les choses étaient simples. Vos données résidaient dans votre base de données, où le serveur pouvait les récupérer, les insérer dans un modèle et les envoyer au client. Mais les choses ne sont plus si simples. De nos jours, les applications doivent savoir comment récupérer les données elles-mêmes afin de restituer leurs propres modèles et composants. Cela a donné naissance à toute une gamme d'outils de récupération et de gestion de données. Redux est sans aucun doute le plus répandu de ces outils et son taux de satisfaction de 82 % témoigne de sa notoriété. Mais tout l’espace pourrait bientôt être bouleversé par l’onde de choc GraphQL. Les utilisateurs de GraphQL sont passés de 5 % à 20 % en deux ans et leur client de choix semble être Apollo. Ajoutez à cela le fait que la dernière version d'Apollo rend l'utilisation de Redux facultative, et il ne serait pas étonnant que les résultats de l'année prochaine commencent à être très différents.


JavaScript sur le back-end n'a pas connu de percée majeure ces dernières années. Alors que d'innombrables frameworks émergent chaque année, très peu parviennent à gagner suffisamment d'élan pour défier Express. Même Koa, parfois considéré comme le successeur d'Express, a un taux de satisfaction inférieur (et un nombre d'utilisations considérablement inférieur). Next.js est un entrant intéressant dans le domaine qui a suscité beaucoup d’intérêt ces derniers temps. Bien que cela ne soit pas tout à fait comparable à un back-end de nœud complet, son objectif qui consiste à résoudre le problème de rendu côté serveur pour les applications React en a fait un outil très utile. Il est également intéressant de voir quel rôle joueront les technologies sans serveur telles que AWS Lambda au cours des deux prochaines années.


Côté mobile et desktop, JavaScript a étendu sa portée bien au-delà des limites du navigateur. React Native et Electron sont les deux principales solutions pour créer des applications mobiles et de bureau utilisant les technologies Web. Ils affichent donc des chiffres similaires en termes de taux de satisfaction et de nombre d'utilisateurs. La polyvalence d’Electron (elle peut fonctionner avec n’importe quel framework d’interface utilisateur, même si elle est souvent associée à React ou Vue.js) peut expliquer le taux de satisfaction le plus élevé de la catégorie. Mais les choses sont loin d’être réglées. Airbnb a récemment publié une série complète d’articles expliquant pourquoi ils ont décidé d’abandonner React Native au profit de Native Apps.


Au lieu de React Native, les développeurs souhaitant écrire des applications multi-platesformes en JavaScript sans utiliser de modèles React peuvent également consulter Weex, qui leur permet d'utiliser l'écosystème Vue.js. Et Google a également de nombreux participants intéressants dans le domaine. Il y a Carlo (un tout nouveau framework d'application Headful Node) publié par Google et construit sur Puppeteer ; ainsi que Flutter : au lieu de créer un "pont" JavaScript comme le fait React Native, il compile en véritable code natif. Mais le code étant écrit en Dart, React Native restera donc toujours pertinent pour la plupart des développeurs JavaScript déjà familiarisés avec le système React.

« Alors que tout est actuellement calme sur le front-end, la question de savoir comment obtenir les données de la base de données au client est loin d'être résolue, et GraphQL commencera sûrement à faire de plus en plus de vagues dans ce domaine. À mesure que des solutions sur mesure GraphQL émergent à la fois pour la couche back-end et pour la couche de gestion d'état, nous pourrions bientôt sentir le sol JavaScript bouger sous nos pieds une fois de plus. Mais pour l'instant, pas de panique. Il n’y a jamais eu de meilleur moment pour devenir développeur JavaScript que maintenant, et nous sommes prêts à parier que 2019 le rendra encore plus clair », ont déclaré Sacha, Raphaël et Michael pour conclure.

Source : The State Of JavaScript 2018

Et vous ?

Qu'en pensez-vous ?

Voir aussi

Les tendances dans les métiers de la technologie en France en 2017, une enquête réalisée par CodinGame

The State Of JavaScript : participez à l'édition 2018 de l'enquête qui permet d'avoir une vue macro des technologies utilisées dans le monde JS

Mithril : un framework JavaScript moderne, simple, rapide et léger comparé à React ou Angular pour ceux qui privilégient la facilité d'intégration
Avatar de Marco46 Marco46 - Modérateur https://www.developpez.com
le 20/11/2018 à 10:01
Citation Envoyé par Bill Fassinou Voir le message
L'autre fait remarquable de ces dernières années est la chute de Angular. Bien qu'il reste très haut en termes d'utilisation brute, il affiche un taux de satisfaction relativement décevant de 41 %. Ainsi, même si sa base d’utilisateurs est considérable, il est difficile de voir comment il s'imposera face à ces grands rivaux.
Le taux de satisfaction est à relativiser dans la mesure où cette année les auteurs de l'étude n'ont pas fait la différence entre AngularJS et Angular. Le premier a probablement un taux de satisfaction très faible qui plombe le score de l'ensemble. Mais néanmoins lorsqu'on regarde un peu la "JavaScript scene", on se rend bien compte que l'écosystème Angular dans son ensemble est entrain de couler doucement mais sûrement.

Autre point qui m'a frappé à la lecture des résultats, c'est l'effet de concentration des salaires à l'échelle mondiale. Le salaire moyen en France est à 49K$, il est de 30K$ en Inde, 37K$ en Chine, à 56K$ en Ukraine (!?!), et il explose dans les pays anglo-saxons, 112K$ aux USA (ça on savait déjà), 84K$ au Canada, 73K$ aux UK, 109K$ en Australie, 61K$ en Allemagne, etc...
Avatar de Sodium Sodium - Membre éprouvé https://www.developpez.com
le 20/11/2018 à 10:42
La chute d'Angular montre bien que l'écosystème JavaScript attire principalement des développeurs amateurs et peu exigeants en termes de qualité de code.
Tout l'intérêt d'Angular est justement de ne plus avoir à faire du JavaScript mais du TypeScript, langage qui permet enfin de faire du "JavaScript" proprement.
Après y avoir goûté, je me vois mal revenir à du simple JavaScript sans typage fort et sans véritables classes.
Avatar de Laywanger Laywanger - Membre à l'essai https://www.developpez.com
le 20/11/2018 à 11:16
Citation Envoyé par Sodium Voir le message
La chute d'Angular montre bien que l'écosystème JavaScript attire principalement des développeurs amateurs et peu exigeants en termes de qualité de code.
Tout l'intérêt d'Angular est justement de ne plus avoir à faire du JavaScript mais du TypeScript, langage qui permet enfin de faire du "JavaScript" proprement.
Après y avoir goûté, je me vois mal revenir à du simple JavaScript sans typage fort et sans véritables classes.
Ça sent le développeur qui utilise Angular depuis 5 ans et qui ne veut plus le lâcher ...
Angular c'est une usine a gaz et peu flexible tu dois toujours rester dans l'écosystème Angular, en terme de performance au niveau de l'interface il n'utilise pas de Virtual DOM ce qui le met en dessous de Vue.js ou encore React par exemple.
En terme de qualité de code c'est une question de gout mais je préfère un React ou tu mets tout dans ton composant (js+html) que Angular ou tu dois alterner entre ton html et ton js pour les lier.
Pour ce qui est du TypeScript ce n'est pas un argument tu peux utiliser dans n'importe quelles librairies du TypeScript.
Tout ça explique que les développeurs quittent Angular pour d'autres librairies plus moderne.
Avatar de Ballrock Ballrock - Futur Membre du Club https://www.developpez.com
le 20/11/2018 à 14:26
Citation Envoyé par Laywanger Voir le message
Ça sent le développeur qui utilise Angular depuis 5 ans et qui ne veut plus le lâcher ...
Ce genre de remarque me semble un peu arbitraire... De plus Angular "2" (pour éviter toute confusion) n'a pas 5 ans, mais à peine 2 ans pour la version finale (cf Wikipedia)

Citation Envoyé par Laywanger Voir le message
Angular c'est une usine a gaz et peu flexible tu dois toujours rester dans l'écosystème Angular, en terme de performance au niveau de l'interface il n'utilise pas de Virtual DOM ce qui le met en dessous de Vue.js ou encore React par exemple.
Comparer les performances d'Angular uniquement sur l'utilisation ou non du Virtual DOM, c'est assez réducteur et même plutôt faux. On peut oublier rapidement que l'approche d'Angular n'est pas du tout la même, et c'est pour ça qu'il n'utilise pas le Virtual DOM. Il utilise une approche model-view qui lui permet de mettre à jour uniquement ce qui est nécessaire. De plus les implémentations du Virtual DOM de VueJS et de React, même si elles reposent sur le même principe, sont assez différentes. Mais n’étant pas expert sur ce sujet je t'invite à lire les multiples sujets présents sur le net à ce propos.

Pour le coté usine à gaz/écosystème "fermé", je suis assez d'accord pour le coup. C'est à mon sens le gros point noir de Angular à l'heure actuelle.

Citation Envoyé par Laywanger Voir le message
En terme de qualité de code c'est une question de gout mais je préfère un React ou tu mets tout dans ton composant (js+html) que Angular ou tu dois alterner entre ton html et ton js pour les lier.
Question de point de vue, comme tu le dis, personnellement, je préfère grandement avoir JS séparé du template.
Et surtout React me donne l'impression de construire mon DOM dans le JS... ce qui me laisse toujours une impression bizarre... Tous les goûts sont dans la nature

Citation Envoyé par Laywanger Voir le message
Pour ce qui est du TypeScript ce n'est pas un argument tu peux utiliser dans n'importe quelles librairies du TypeScript.
Pouvoir l'utiliser est un chose, avoir le framework (et la doc) fait avec en est une autre.

Citation Envoyé par Laywanger Voir le message
Tout ça explique que les développeurs quittent Angular pour d'autres librairies plus moderne.
Comme l'a dit Marco46, je pense que le fait que Angular.js et Angular ne soient pas distingué explicitement dans l'étude n'aide pas.
Avatar de Marco46 Marco46 - Modérateur https://www.developpez.com
le 20/11/2018 à 14:30
Citation Envoyé par Sodium Voir le message
Tout l'intérêt d'Angular est justement de ne plus avoir à faire du JavaScript mais du TypeScript, langage qui permet enfin de faire du "JavaScript" proprement.
Ça n'a absolument aucun rapport avec Angular tu peux faire du TypeScript avec n'importe quelle librairie ou framework, c'est un superset pas un langage de remplacement. TypeScript se porte très bien et a manifestement gagné la bataille des outils de typage statique en écrasant Flow.

Angular comporte trop d'incohérences, de lourdeurs, et de fonctionnalités inutiles comme ses systèmes de modules et d'injection de dépendances qui font doublons avec les fonctionnalités natives de JavaScript.

Citation Envoyé par Sodium Voir le message
La chute d'Angular montre bien que l'écosystème JavaScript attire principalement des développeurs amateurs et peu exigeants en termes de qualité de code.
C'est tout le contraire, l'adoption forte de Angular malgré le fait qu'un développeur sur trois (et il y a une majorité de développeurs confirmés et seniors qui ont répondus à cette enquête) le trouve mauvais s'explique parce que dans un grand nombre de DSI des personnels incompétents sur ces sujets (chefs en tout genre, architectes, etc...) font des choix techniques sans rien y comprendre sur la seule foi que c'est Google qui est derrière.

Citation Envoyé par Sodium Voir le message
Après y avoir goûté, je me vois mal revenir à du simple JavaScript sans typage fort et sans véritables classes.
C'est parce que tu n'as jamais pris la peine d'apprendre le JavaScript moderne. Les classes ne sont utiles que pour structurer un modèle, elles sont totalement inutiles pour structurer la logique de ton application puisque les fonctions sont first-class et que tu as les modules (CommonJS ou ES6 selon ta préférence ou tes contraintes).
Avatar de grunk grunk - Modérateur https://www.developpez.com
le 20/11/2018 à 15:01
Quand on regarde les "pour" et "contre" de chaque framework front end c'est assez drole car les "pour" les plus importants son aussi les "contre" les plus importants et c'est quasi le cas pour les tous les FW.
En gros les dév React vont dire que Angular c'est caca , les dév Angular vont pas faire mieux pour React et on se retrouve avec un sondage qui n'a plus très grande valeur.

En fait j'ai l'impression que chacun veux voir "son" framework gagner par rapport à l'autre. L'écosystème étant tellement instable que si on peux éviter de devoir apprendre un nouveau truc c'est mieux quitte à y mettre un peu de mauvaise fois pour démonter le FW adverse

Perso que X ou Y utilise un DOM virtuel ou non , que Z fasse son rendu 4 ms plus vite que X ca m'en touche une sans faire bouger l'autre ... Tout ce que je veux c'est que l'outil réponde à mon besoin sans devenir gênant. J'ai fait du vanilla pendant très longtemps , puis je suis passé au FW modernes avec Angular 2 4,5,6,7 (lol) . Il fait le taf , j'ai un applicatif assez conséquent qui tourne nickel , j'ai jamais été chercher à essayer autre chose.

Le gros problème de JS aujourd'hui pour moi c'est l'industrialisation
En tant que dév , j'ai pas envie de me cogner des config webpack , grunt, karma ou que sais je encore. Je veux faire un "new project" et c'est partit. Je veux faire un "build --prod" pour avoir une release et c'est tout. Paramétrer un nouveau projet c'est du busywork qui ne m'intéresse pas. Ca commence a venir avec les truc comme angular cli mais c'est pas encore tip top.
Avatar de Sodium Sodium - Membre éprouvé https://www.developpez.com
le 20/11/2018 à 18:12
C'est parce que tu n'as jamais pris la peine d'apprendre le JavaScript moderne. Les classes ne sont utiles que pour structurer un modèle, elles sont totalement inutiles pour structurer la logique de ton application puisque les fonctions sont first-class et que tu as les modules (CommonJS ou ES6 selon ta préférence ou tes contraintes).
... est la réponse de tout fan de JavaScript qui défend ce langage.

Je vais arrêter de perdre mon temps. Si tu défends JavaScript, c'est que tu n'es pas un développeur exigeant en terme de qualité de code, car JavaScript et code de qualité sont incompatibles, et je n'ai pas envie de discuter code avec des gens pour qui la clarté et la propreté de celui-ci sont une priorité absolue.

En fait j'ai l'impression que chacun veux voir "son" framework gagner par rapport à l'autre. L'écosystème étant tellement instable que si on peux éviter de devoir apprendre un nouveau truc c'est mieux quitte à y mettre un peu de mauvaise fois pour démonter le FW adverse
Pour moi le critère de sélection est assez simple : je ne veux plus faire de JavaScript, que ce soit en ecmascript 5, 6 ou n'importe quoi d'autre. Ca reste un langage bricolé qui n'a pas été pensé pour construire des applications complexes. Donc je prends le seul framework pensé pour TypeScript avec la doc qui va avec. J'ai regardé vaguement ReactJS et j'ai eu envie de vomir en voyant les démos constituant la vue à l'intérieur des fonctions, on peut difficilement faire plus amateur.
Avatar de alves1993 alves1993 - Membre confirmé https://www.developpez.com
le 20/11/2018 à 19:53
Je ne comprends pas pourquoi un langage et ses Framework peuvent diviser autant de développeurs.

NB : Je ne défends aucun langage

JavaScript est langage assez permissif et ça tout le monde devraient le savoir, mais ce n'est pas pour autant qu'il est la cause d'une mauvaise qualité de code.
Si une base de code est mauvaise c'est la faute aux développeurs et non au langage.

J'étais moi-même un facho qui était contre le JavaScript, mais j'ai dû un jour me ressaisir et avouer que le JavaScript n'était pas réellement le problème et me résoudre à l'apprendre et à considérer son aspect permissif lorsque je l'utilisais.
Avatar de walfrat walfrat - Futur Membre du Club https://www.developpez.com
le 20/11/2018 à 23:43
Pour information il est possible d'échapper à la "lourdeur" d'Angular.

Un exemple concret : https://www.ag-grid.com/ que j'ai pris à l'époque d'AngularJS car beaucoup plus performant que les grilles faites en AnguarJS.

Cette grille fait en, JS natif, dispose de connecteurs aux différentes technologies JS dont Angular.

Et c'est parce que l'interne est fait en JS natif, qu'il est performant et c'est normal.

C'est toujours pareil avec les gros frameworks/librairies qui aident beaucoup, pour des besoins très spécifiques, on fini par atteindre les limites et il faut resdecendre d'un niveau. Dans un framework il y a toujours un compromis rapidité de développement/performance. A nous les développeurs de connaître le dit framework pour savoir si c'est faisable où s'il faut redescendre dans les basses couches (JS natif, mais en client lourd imaginer Graphics2D pour les javaiste Swing ou JavaFX) pour certains besoin.

Bref comme toujours, il n'y a pas de "silver bullet", et là où Angular est bon, c'est bien qu'il est possible d'interfacer des composant JS natifs avec lui.

En revanche je ne connais pas la difficulté, mais ça doit au moins être plus facile que GWT

A partir du moment ou un framework fait le taf, qu'il est mature et soutenu par une communauté, qu'il ne soit pas le meilleur m'indiffère, surtout que "meilleur" à une net tendance à se confondre avec "mode"/"récent".
Contacter le responsable de la rubrique Développement Web