
lui rappelant que la marque JavaScript n'a aucune valeur commerciale pour l'entreprise
Le créateur de Node.js et Deno, Ryan Dahl, a écrit une lettre ouverte à Oracle implorant l'entreprise de publier la marque JavaScript dans le domaine public.
« La marque est un nuage sombre qui plane sur le langage de programmation le plus populaire au monde », a-t-il écrit. « Les ingénieurs attentifs et respectueux des lois se mettent en quatre pour éviter son utilisation, ce qui conduit à des termes déroutants comme ECMAScript ».
Dahl renvoie au communiqué de presse original de 1995 de Netscape Communications annonçant JavaScript. Quelle que soit la marque déposée, le nom du langage a longtemps dérouté les personnes qui s'imaginent qu'il s'agit d'une variante de Java. À l'époque, Netscape avait déclaré que JavaScript était « complémentaire et intégré à Java », l'idée étant qu'il pouvait interagir avec les applets Java sur les pages Web. Cette intégration était cependant superficielle et JavaScript a peu de choses en commun avec le langage Java si ce n'est que les deux sont des langages "accolades".
L'inventeur de JavaScript, Brendan Eich, a déclaré le mois dernier que « Je suis allé faire… un langage de programmation pour HTML, que les concepteurs Web et les programmeurs peuvent utiliser, intégrer directement dans la page Web… pas comme Java qui était un langage professionnel où vous exécutiez du code réel avec des déclarations de type, et vous deviez écrire d'une manière compilée ». Il a ajouté que « le nom est un mensonge total. Il n'est pas tant lié à Java qu'à un ancêtre commun, C, dans la syntaxe ».
Les marques de commerce empêchent les produits d'être copiés par des concurrents et de se faire passer pour de vrais produits. Lorsque Microsoft a proposé une implémentation JavaScript pour Internet Explorer, il a appelé le langage JScript et a ensuite créé une version .NET. Netscape a travaillé avec d'autres sociétés, dont Microsoft, pour normaliser le langage, en utilisant l'organisme de normalisation Ecma International, et ECMAScript a été choisi comme nom neutre, bien qu'Eich ait déclaré que « ECMAScript a toujours été un nom commercial indésirable qui ressemble à une maladie de la peau ».
Oracle a reçu la marque JavaScript lors de l'acquisition de Sun en 2010. En principe, cela signifie que seul Oracle peut autoriser un langage à s'appeler JavaScript, mais Dahl déclare « qu'il semble très probable que la violation de la marque JavaScript serait inapplicable devant les tribunaux en raison de sa non-utilisation ».
Dahl a affirmé qu'Oracle « n'a aucun produit utilisant la marque » bien que, comme l'observe un professionnel de l'informatique, la société propose GraalVM qui inclut une implémentation JavaScript. Cela dit, Oracle ne mentionne pas spécifiquement JavaScript dans ses directives sur les marques, bien qu'il mentionne Java et MySQL. Les directives stipulent que « l'utilisation appropriée des marques Oracle renforce leur rôle en tant que marques pour nos produits et services, et aide à les empêcher de devenir des noms génériques pouvant être utilisés par n'importe qui ».

Brendan Eich
Pourquoi JavaScript a-t-il été un tel succès ?
Il y a plusieurs raisons qui pourraient l'expliquer, y compris la prévoyance d'Eich, la facilité d'apprentissage et la tolérance du code qui seraient des erreurs dans de nombreux langages, comme comparer des chaînes à des nombres et obtenir un résultat qui a du sens (bien qu'Eich ait appelé cela plus tard « un grand regret, parce que cela brise une propriété mathématique importante »).
Un autre facteur important est que la détermination de Google à rendre les applications basées sur un navigateur compétitives avec le bureau a donné au monde le moteur V8 (2008), qui, avec SpiderMonkey de Mozilla et JavaScript Core d'Apple, a donné au langage des performances incroyables compilées JIT. En 2009, Ryan Dahl a proposé Node.js, permettant à V8 de s'exécuter en dehors du navigateur. Dahl avait en tête les applications serveur, mais aujourd'hui, Node.js et NPM (Node Package Manager) sont également essentiels au processus de développement de la plupart des applications Web.
Mais JavaScript ne fait pas l'unanimité
JavaScript est devenu un frein au progrès, selon Douglas Crockford, créateur de la spécification JSON (JavaScript Object Notation) utilisée partout pour sérialiser les données dans les applications web.
Crockford a fait cette affirmation dans une interview il y a deux mois :
« La meilleure chose que nous puissions faire aujourd'hui pour JavaScript est de le retirer. Il y a vingt ans, j'étais l'un des rares défenseurs de JavaScript. Son assemblage de fonctions imbriquées et d'objets dynamiques était brillant. J'ai passé une décennie à essayer de corriger ses défauts. J'ai eu un petit succès avec ES5. Mais depuis lors, il y a eu un fort intérêt à gonfler davantage le langage au lieu de l'améliorer. Ainsi, JavaScript, comme les autres langages dinosaures, est devenu un obstacle au progrès. Nous devrions nous concentrer sur le langage suivant, qui devrait ressembler davantage à E qu'à JavaScript ».
Une partie du problème mentionné par Crockford est qu'avec une capacité accrue, JavaScript a acquis une grande complexité, et une application typique comprend aujourd'hui un processus de construction utilisant WebPack, Rollup ou un autre bundle, loin du concept original d'Eich.
De plus, de nombreux développeurs Web n'écrivent pas de JavaScript ; ils préfèrent par exemple TypeScript, qui se compile en JavaScript. TypeScript a été inventé par Anders Hejlsberg de Microsoft, le raisonnement étant que la malléabilité de JavaScript et le manque de sécurité de type le rendaient inadapté aux grandes applications. TypeScript est un langage de programmation libre et open source développé par Microsoft qui a pour but d'améliorer et de sécuriser la production de code JavaScript. Il s'agit d'un surensemble syntaxique strict de JavaScript. L'avènement de WebAssembly, un format binaire qui peut être ciblé par des langages tels que C, C++, C# et Rust, est une autre innovation qui pourrait saper la popularité de JavaScript.
« JavaScript a explosé en popularité en quelques années seulement et oui, l'écosystème est horriblement complexe. C'est un bâillon courant, même parmi les développeurs JS à temps plein, pour vous indiquer à quel point c'est devenu fou. Aucun de nous ne peut suivre », a avoué un développeur sur un forum de discussion.
Le choix de Crockford pour remplacer JavaScript, E, pourrait sembler aberrant aux yeux de certains professionnels. Créé par Mark Miller, Crockford et d'autres, E est un langage orienté objet conçu pour l'informatique sécurisée et, selon les mots de Crockford, « éliminant bon nombre des mauvaises parties de Java ».
Crockford note également que JavaScript sera difficile à remplacer, notamment parce que c'est le langage pris en charge par tous les navigateurs pour la manipulation du DOM (Document Object Model). Interrogé sur ce qui pourrait être une alternative, Crockford a déclaré: « Il y a deux difficultés. Tout d'abord, nous n'avons pas encore le langage suivant. Il doit s'agir d'un langage d'acteur minimal basé sur les capacités, conçu spécifiquement pour la programmation distribuée sécurisée. Rien de moins ne doit être considéré ».
« Deuxièmement, nous avons besoin que tous les fabricants de navigateurs l'adoptent et remplacent simultanément le DOM par une interface bien conçue. Bonne chance avec ça ».
Après s'être tournés vers des bibliothèques JavaScript, des professionnels ont fait le choix de revenir à JavaScript
Créé pour simplifier l'écriture de JavaScript et HTML, jQuery est arrivé au bon moment en 2006, avec la complexification croissante des interfaces Web. Cela lui a permis de séduire en masse les développeurs Web et d'avoir le statut d'élément fondamental dans les formations aux technologies du Web.
jQuery est une dépendance d'environ 30 Ko utilisée par près de 84 % des pages mobiles en 2021, et pour cause. jQuery était un outil instrumental à une époque où nous avions vraiment besoin d'un moyen de scripter l'interactivité de manière à lisser les différentes implémentations de choses comme la gestion des événements, la sélection d'éléments, l'animation d'éléments, etc.
Voici un exemple d'Ajax avec jQuery :
Code jQuery : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $(document).ready(function() { // Lorsque le document est chargé $(".load_page_on_click").click(function() { // Lorsque l’on clique sur un élément d'attribut class "load_page_on_click" var email = $("input[name=email]").val(); // Variable contenant la valeur d'un élément input d'attribut name "email" $.ajax({ // Exécution d’une requête Ajax avec la configuration donnée par l'objet suivant : async: "true", // - requête asynchrone type: "GET", // - type HTTP GET url: "mapage.php", // - URL de la page à charger data: "email=" + encodeURIComponent(email) + "&action=get_email", // - données à envoyer error: function(errorData) { // - fonction de rappel en cas d’erreur $("#error").html(errorData); }, success: function(data) { // - fonction de rappel pour le traitement des données reçues en cas de succès $("#container").html(data); $("#error").append("Contenu chargé"); } }); // Fermeture de l'appel à la fonction $.ajax }); // Fermeture de la fonction de rappel du $(".load_page_on_click").click }); // Fermeture de la fonction de rappel du $(document).ready |
Le Web est meilleur grâce à jQuery, non seulement parce qu'il a une utilité incroyable, mais parce que son omniprésence a conduit à intégrer ce qu'il a fourni à la plateforme Web elle-même. De nos jours, nous pouvons faire à peu près tout ce que jQuery peut faire en Vanilla JavaScript (un nom auquel se référer lorsque les développeurs utilisent du JavaScript simple sans aucune bibliothèque supplémentaire comme jQuery) :
- Nous pouvons sélectionner des éléments en utilisant une syntaxe de sélecteur CSS avec querySelector et querySelectorAll.
- Nous pouvons ajouter, supprimer et basculer des classes sur des éléments avec l'API classList.
- Nous pouvons attacher des gestionnaires d'événements aux éléments DOM et à la fenêtre en utilisant addEventListener.
- Et tellement, tellement plus.
jQuery était il y a peu la bibliothèque JS la plus utilisée au monde et bon nombre de frameworks l'utilisaient pour fonctionner. Mais avec l'émergence de nouvelles technologies (bibliothèques et frameworks) et la modernisation des navigateurs, le caractère incontournable, voire la pertinence, de jQuery ne fait plus l'unanimité. Les problèmes qui autrefois nécessitaient jQuery sont maintenant en train d'être résolus par les navigateurs et le standard EcmaScript en évolution. Certains développeurs ont donc commencé à prendre de la distance vis-à-vis de la bibliothèque JavaScript.
C'est le cas par exemple de l'équipe Bootstrap qui a annoncé l'abandon de jQuery dès la première version alpha de Bootstrap 5 pour retourner à du pur JavaScript. Selon Mark Otto, créateur du framework et auteur du billet de blog qui a annoncé cette version alpha 1, « jQuery a apporté un accès sans précédent à des comportements JavaScript complexes pour des millions (milliards ?) de personnes au cours des quinze dernières années », et « peut-être qu'il a changé à jamais le JavaScript lui-même », mais le temps était venu pour l’équipe d’abandonner jQuery en tant que dépendance. Selon le billet, ce changement est rendu possible grâce aux progrès réalisés dans les outils de développement front-end et la prise en charge des navigateurs.
Le principal argument avancé pour justifier la suppression de jQuery dans Bootstrap v5 est que maintenant que plus de 95 % des fonctionnalités de jQuery sont désormais natives dans les navigateurs (les 5 % restants étant sans doute des bizarreries excessivement rétrocompatibles qui méritent d'être ignorées), ajouter une dépendance serait soit « stupide », soit un gaspillage de bande passante.
Dans la communauté des développeurs, les avis...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.