IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

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 !

Ryan Dahl : « Cher Oracle, veuillez libérer la marque JavaScript ». Le créateur de Node.js et Deno écrit une lettre ouverte à Oracle,
Lui rappelant que la marque n'a aucune valeur commerciale

Le , par Stéphane le calme

22PARTAGES

10  0 
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 ».

Citation Envoyé par Ryan Dahl
En 1995, Netscape s'est associé à Sun Microsystems pour créer des sites Web interactifs. Le célèbre Brendan Eich n'a passé que 10 jours pour créer la première version de JavaScript - un langage de programmation dynamique avec une lignée à peu près syntaxique du langage Java de Sun. À la suite de ce partenariat, Sun détenait la marque «*JavaScript*». En 2009, Oracle a acquis Sun Microsystems et la marque JavaScript en conséquence.

La marque n'a aucune valeur commerciale. À part le kit d'outils d'extension JavaScript d'Oracle, Oracle n'a aucun produit utilisant la marque et probablement aucune utilisation prévue. Oracle ne participe même pas au développement d'aucun des moteurs JavaScript comme V8, JavaScriptCore ou Spidermonkey. Il semble très probable que la contrefaçon de la marque JavaScript serait inopposable devant les tribunaux en raison de sa non-utilisation.

Néanmoins, la marque est un nuage sombre qui plane sur le langage de programmation le plus populaire au monde. Des ingénieurs attentifs et respectueux des lois se mettent en quatre pour éviter son utilisation, ce qui conduit à des termes déroutants comme ECMAScript.

La meilleure valeur qu'Oracle pourrait tirer de la marque serait de la bonne volonté qu'elle reçoit en l'accordant dans le domaine public. On comprend pourquoi cela ne s'est pas encore produit - il faudrait un employé Oracle très avant-gardiste et de haut niveau pour proposer quelque chose d'aussi intangible. Pourtant, c'est évidemment la bonne décision d'échanger une marque sans valeur contre le marketing de marque et la bonne volonté.

Oracle, veuillez libérer la marque JavaScript.

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 divergent quant à ce changement. Ceux qui l'ont bien accueilli reconnaissent que jQuery est l’une des bibliothèques les plus importantes de l’histoire JavaScript et a permis de créer de véritables applications Web. Ils estiment cependant que depuis lors, les différences entre les navigateurs se sont considérablement réduites et nous avons appris à créer des applications évolutives et que l'on peut maintenir, de manière plus déclarative, grâce à des frameworks comme React, Angular et autres. Du coup, jQuery ne serait plus d'une grande utilité.

La suppression du moteur de sélection de jQuery parce qu'il existe maintenant des sélecteurs natifs dans les navigateurs modernes tend à donner raison à ceux qui pensent que jQuery est de moins en moins pertinent. D'autres estiment malgré tout que la bibliothèque JS est loin d'être obsolète, car les techniques jQuery ne sont pas aussi ergonomiques à mettre en œuvre sans utiliser jQuery. Pour ces derniers, ça reste donc un outil très productif qui offre des solutions simples à de nombreux problèmes.

En mars 2022, Matt Hobbs, responsable du développement front-end de Government Digital Service (qui offre des plateformes, des produits et des services qui aident le gouvernement à devenir intégré, fiable et réactif aux besoins des utilisateurs notamment GOV.UK), a annoncé que GOV.UK avait supprimé sa dépendance jQuery. C'est un gros problème en ce qui concerne l'expérience utilisateur, car GOV.UK fournit des services et des informations en ligne pour le Royaume-Uni à grande échelle. Tout le monde n'utilise pas son MacBook Pro 2022 sur une connexion haut débit à couper le souffle. GOV.UK doit être accessible à tous, et cela signifie qu'il doit rester léger.

Voici quelques-uns des plus grands succès de Matt Hobbs sur ce que GOV.UK a remarqué en supprimant jQuery :
  • Moins de temps de traitement frontal dans l'ensemble.
  • 11 % de temps de blocage en moins au 75e centile.
  • 10 % de temps de blocage en moins pour les utilisateurs au 95e centile. Ce sont des utilisateurs qui rencontrent des conditions de réseau et d'appareils très défavorables, et chaque gain de performance compte particulièrement pour eux.

Le fil Twitter de Matt n'est pas avare en informations diverses, notamment sur la mesure détaillée des performances avec et sans jQuery.

Source : Ryan Dahl

Et vous ?

Que pensez-vous de JavaScript ?
L'avez-vous déjà utilisé pour des projets (personnels ou en entreprises) ?
Que pensez-vous des surensembles syntaxiques de JavaScript comme TypeScript ? En avez-vous déjà utilisé un ? Lequel ?
Que pensez-vous des bibliothèques JavaScript comme jQuery ?
Que pensez-vous des propos de Ryan Dahl mais aussi de son approche ?

Voir aussi :

La popularité de Python continue de monter en flèche : Python reste plus populaire que C et Java, près d'un an après avoir atteint le sommet de l'index Tiobe
L'impact de la suppression de jQuery sur les performances Web : l'expérience de GOV.UK, site Web d'information du secteur public du Royaume-Uni

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

Avatar de yahiko
Rédacteur/Modérateur https://www.developpez.com
Le 07/09/2022 à 8:48
JavaScript est la preuve typique que la popularité d'un langage n'est pas nécessairement liée à ses qualités intrinsèques. J'ai presque envie de dire, au contraire.
Alors qu'au début d'Internet, JavaScript était un mal nécessaire, dans le sens où je n'ai jamais considéré ce langage comme "correct" mais qu'il faisait à peu près le taf, j'ai le sentiment qu'aujourd'hui il devient de plus en plus un frein à l'innovation dans le domaine des applications Web.
Du coup, cela pourrait presque être une bonne chose si Oracle pouvait créer un shitstorm comme ils savent si bien le faire autour de ce langage. Histoire que les éditeurs de navigateurs envisagent une alternative comme Perl par exemple... Une blague évidemment.
Le remplacement de JavaScript n'est cependant pas près d'arriver vu les investissements colossaux qui ont été bâti autour de celui-ci. Je vois mal l'industrie balayer d'un revers de main tout l'écosystème autour de ce langage.
2  1