JS est simplement l’abréviation de JavaScript. Les deux désignent exactement la même chose, et l’abréviation domine à l’écrit chez les développeurs. Aucune nuance à chercher.
Java n’a aucun rapport avec JavaScript, et c’est la confusion la plus répandue. Le langage créé par Brendan Eich en 1995 s’appelait LiveScript ; Netscape l’a rebaptisé JavaScript quelques jours avant sa sortie, alors que Java, propriété de son partenaire Sun Microsystems, gagnait en popularité. Le nom relève donc d’une opportunité commerciale, pas d’une parenté technique. Trente ans plus tard, il continue d’induire tout le monde en erreur.
ECMAScript (souvent abrégé ES) est la norme officielle du langage, publiée par Ecma International sous la référence ECMA-262. JavaScript en est la mise en œuvre. C’est pour cette raison qu’on parle d’ES6 ou d’ES2015 pour désigner une génération du langage : on nomme la version de la norme, pas celle d’un produit.
Node.js n’est pas un langage mais un environnement d’exécution, qui permet de faire tourner du JavaScript en dehors du navigateur, notamment sur un serveur. C’est lui qui a fait passer JavaScript du statut de langage de la page à celui de langage utilisable des deux côtés.
TypeScript est un sur-ensemble de JavaScript développé par Microsoft. Tout code JavaScript valide est du TypeScript valide, mais TypeScript ajoute un typage qui permet de détecter certaines erreurs avant l’exécution. Il est ensuite converti en JavaScript ordinaire, seul langage que les navigateurs comprennent.
jQuery est une bibliothèque JavaScript, apparue en 2006, qui a longtemps servi à écrire plus simplement du code compatible avec tous les navigateurs. Ce n’est ni un langage ni un framework complet. Elle reste présente sur une grande partie du web existant, y compris dans l’écosystème WordPress.
React, Vue et Angular sont des bibliothèques ou des frameworks écrits en JavaScript, destinés à construire des interfaces complexes. Ils ne remplacent pas le langage, ils s’appuient dessus.
JavaScript est ce qui rend un site vivant. Sans lui, une page se contente d’afficher : chaque action du visiteur oblige à repartir vers le serveur, à attendre, puis à recharger la page entière. Avec lui, la page réagit sur place : un filtre se met à jour, un menu se déplie, une carte se déplace, un formulaire signale une erreur avant même d’être envoyé. C’est ce qui permet un rendu au plus proche de ce qu’on avait imaginé, et surtout dans l’immédiat.
Cette immédiateté n’a rien de magique, elle vient d’une idée maligne : faire travailler le navigateur et la machine du visiteur plutôt que votre serveur. Le calcul se fait là où se trouve la personne, donc sans aller-retour, donc sans attente. C’est aussi ce qui explique la contrepartie : ce travail, quelqu’un le fait quand même. Un site qui multiplie les éléments dynamiques déporte une charge croissante sur des machines dont vous ne savez rien, et le confort de consultation finit par s’en ressentir.