JavaScript, le langage de programmation le plus populaire au monde selon la plupart des enquêtes, est devenu un obstacle 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 le mois dernier :
“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 la langue au lieu de l’améliorer. Ainsi, JavaScript, comme les autres langages de dinosaures, est devenu un obstacle au progrès. Nous devrions nous concentrer sur le langage suivant, qui devrait ressembler davantage à E qu’à JavaScript.

Selon une enquête StackOverflow plus tôt cette année, JavaScript est utilisé par plus de 65 % des développeurs, loin devant Python en deuxième position à 48 % (en ignorant HTML, CSS et SQL qui ne sont pas des langages à usage général). C’est une réalisation improbable compte tenu de ses origines.
Brendan Eich a inventé le langage pour Netscape en 1995, apparemment en seulement 10 jours. “En mai, j’ai fait 10 jours de travail acharné, je n’ai pas beaucoup dormi”, a déclaré Eich à la conférence dot.JS en 2018. En 2012, Eich a déclaré à Charles Severance de Computer: “Je suis allé faire… un langage de programmation pour HTML , pour les concepteurs Web et les programmeurs à utiliser, intégré directement dans la page Web… pas comme Java qui était un langage professionnel où vous exécutiez du vrai code 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.
Eich a qualifié le travail de “travail urgent” mais a également déclaré que “je savais qu’il y aurait des erreurs, il y aurait des lacunes, alors je l’ai rendu très malléable en tant que langage. Cela a permis aux développeurs Web d’en faire ce qu’ils veulent qu’il soit. »
Pourquoi JavaScript a-t-il été un tel succès ?
Il y a plusieurs raisons, y compris la prévoyance d’Eich, la facilité d’apprentissage et la tolérance du code qui seraient des erreurs dans de nombreuses langues, comme comparer des chaînes à des nombres et obtenir un résultat de bon 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, a donné au JavaScript Core d’Apple l’étonnante performance compilée 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.
processus de développement? 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 écrivent plutôt 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 maintenant le langage numéro trois dans l’enquête mentionnée ci-dessus, et est la preuve que JavaScript n’est pas tout à fait aimé. 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 peut embarrasser la domination 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 à plein temps, à quel point c’est devenu fou. Aucun de nous ne peut suivre », a avoué un développeur lors d’une récente discussion sur Hacker News.
JavaScript évolue avec de nombreuses nouvelles fonctionnalités et les progrès peuvent être suivis ici, bien que les exigences de compatibilité signifient que certains défauts ne peuvent pas être corrigés, et à l’autre bout, le gonflement des fonctionnalités est un risque constant.
Le choix de Crockford pour remplacer JavaScript, E, est une valeur aberrante. 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 à déplacer, 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 peut le remplacer là-bas, Crockford a déclaré: «Il y a deux difficultés. Tout d’abord, nous n’avons pas encore la prochaine langue. 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.”