Aller au contenu principal
Bethemesh
BiographieHistoire de l’informatique

Brendan Eich : JavaScript, du prototype de Netscape au standard du Web

Comment Brendan Eich a conçu le premier JavaScript chez Netscape, puis participé à sa transformation en langage standardisé du Web.

Publié le 17 août 2026Lecture : 23 minPar Équipe Bethemesh
Débutant
Portrait de Brendan Eich, créateur de la première version de JavaScript
Afficher le sommaire
  1. Donner un comportement aux pages web
  2. Dix jours pour un prototype, plusieurs mois pour un langage
  3. Des choix rapides devenus des contrats durables
  4. Un langage pris dans la guerre des navigateurs
  5. Pourquoi JavaScript a survécu à ses défauts
  6. De Mozilla à Brave
  7. Pourquoi Brendan Eich compte encore
  8. Chronologie
  9. Questions fréquentes
  10. Brendan Eich a-t-il vraiment créé JavaScript en dix jours ?
  11. JavaScript est-il une version de Java ?
  12. Quelle différence existe entre JavaScript et ECMAScript ?
  13. Pourquoi JavaScript utilise-t-il des prototypes ?
  14. Brendan Eich a-t-il créé Node.js ?
  15. Pourquoi les anciens défauts du langage ne sont-ils pas simplement supprimés ?
  16. Avant JavaScript : un ingénieur des langages
  17. 1995 : le Web a besoin d’un langage de script
  18. Les fameux « dix jours »
  19. Mocha, LiveScript, puis JavaScript
  20. Une syntaxe de famille C, un cœur plus proche de Scheme et Self
  21. Les fonctions de première classe
  22. Les prototypes plutôt que les classes
  23. Un langage dynamique dans un navigateur
  24. Netscape contre Microsoft : le langage devient un enjeu stratégique
  25. ECMAScript : transformer un langage propriétaire en standard
  26. TC39 : le langage devient une œuvre collective
  27. La compatibilité : la contrainte qui façonne JavaScript
  28. Les premières années difficiles
  29. ECMAScript 4 : l’évolution qui n’aboutit pas
  30. ES5 : consolider avant de repartir
  31. AJAX change la perception du navigateur
  32. Les moteurs JavaScript deviennent une compétition technologique
  33. Mozilla : d’un projet Netscape à une communauté ouverte
  34. Firefox et la concurrence des navigateurs
  35. Node.js : JavaScript sort du navigateur
  36. npm et l’explosion de l’écosystème
  37. ECMAScript 2015 : le langage change d’échelle
  38. Les classes JavaScript ne suppriment pas les prototypes
  39. Les promesses et async/await
  40. Brendan Eich et SpiderMonkey
  41. Le Web n’est pas JavaScript seul
  42. Comparaison avec Java
  43. Comparaison avec Python
  44. Comparaison avec l’orienté objet classique
  45. Le rôle de Brendan Eich dans l’histoire ne doit pas être exagéré
  46. 2014 : une controverse et un départ rapide de Mozilla
  47. Brave Software
  48. Une invention née sous contrainte
  49. Les erreurs deviennent parfois des contrats
  50. JavaScript comme infrastructure mondiale
  51. L’héritage de Brendan Eich
  52. Questions fréquentes
  53. Qui a créé JavaScript ?
  54. JavaScript a-t-il vraiment été créé en dix jours ?
  55. Pourquoi JavaScript s’appelle-t-il ainsi ?
  56. Quels langages ont influencé JavaScript ?
  57. Brendan Eich a-t-il créé ECMAScript ?
  58. JavaScript utilise-t-il vraiment des prototypes malgré la syntaxe class ?
  59. Brendan Eich a-t-il travaillé chez Mozilla ?
  60. Qu’est-ce que SpiderMonkey ?
  61. Quel est le lien entre Brendan Eich et Brave ?
  62. Pourquoi Brendan Eich reste-t-il important ?

Brendan Eich est le créateur de la première version de JavaScript, mais la formule « un langage créé en dix jours » demande une précision essentielle. En mai 1995, Eich produit en dix jours un prototype pour Netscape. Le langage déployé, normalisé et utilisé aujourd’hui résulte ensuite de trois décennies de corrections, de compromis et de travail collectif.

Cette origine sous contrainte explique pourtant beaucoup de JavaScript. Netscape avait besoin d’un langage immédiatement accessible dans le navigateur, distinct de Java mais capable de compléter son rôle. Eich a dû réunir des idées issues de plusieurs traditions dans une syntaxe que les programmeurs reconnaîtraient.

Donner un comportement aux pages web

Brendan Eich naît en 1961 à Pittsburgh. Il étudie les mathématiques et l’informatique, puis obtient en 1986 un master à l’université de l’Illinois à Urbana-Champaign. Avant Netscape, il travaille notamment sur des compilateurs et des systèmes chez Silicon Graphics.

En 1995, le Web est surtout constitué de documents. Le navigateur envoie une requête, reçoit une page HTML et l’affiche. Pour valider un formulaire ou modifier un contenu, il faut souvent solliciter le serveur et charger une nouvelle page.

Netscape, alors au premier plan du marché des navigateurs, veut intégrer un langage simple destiné aux auteurs de pages. L’entreprise collabore parallèlement avec Sun autour de Java, plutôt présenté comme une technologie pour des applications plus structurées. Le futur JavaScript doit être léger, interprété directement dans la page et utilisable sans chaîne de compilation.

Dix jours pour un prototype, plusieurs mois pour un langage

Eich rejoint Netscape en avril 1995. En mai, il construit le premier prototype, appelé Mocha. Le délai de dix jours concerne cette démonstration initiale, pas une version définitive conçue d’un seul jet.

Le langage devient ensuite LiveScript, puis JavaScript lors de son lancement à la fin de 1995. Ce dernier nom accompagne un accord commercial avec Sun et profite de l’attention portée à Java. Les deux langages restent pourtant distincts par leur conception, leurs types et leurs environnements d’exécution.

JavaScript présente une surface proche de C : accolades, expressions et structures de contrôle familières. Sous cette apparence, Eich introduit des fonctions de première classe inspirées notamment de Scheme et un modèle d’objets par prototypes rappelant Self.

Une fonction de première classe peut être stockée dans une variable, transmise à une autre fonction ou retournée comme résultat. Cette propriété convient bien à un environnement piloté par des événements : le programme associe une fonction à un clic, une saisie ou la fin d’une opération.

Dans le modèle prototypal, un objet peut déléguer la recherche de propriétés à un autre objet. Les classes ajoutées plus tard à la syntaxe n’ont pas supprimé ce mécanisme fondamental ; elles offrent une manière plus familière de l’utiliser.

Des choix rapides devenus des contrats durables

Le prototype doit répondre à des objectifs partiellement contradictoires. Netscape veut un langage accueillant pour les auteurs de pages, mais suffisamment familier aux programmeurs de C et de Java. Eich adopte donc un typage dynamique : une variable peut recevoir des valeurs de natures différentes, et de nombreuses conversions sont effectuées au moment de l’exécution.

Ce choix facilite les petits scripts, mais certaines conversions implicites produisent des résultats surprenants. JavaScript distingue aussi plusieurs catégories de nombres moins finement que Java et reprend une arithmétique principalement fondée sur les nombres à virgule flottante. Ces décisions ne sont pas des accidents ajoutés longtemps après : elles appartiennent au compromis initial entre rapidité d’apprentissage, délai de livraison et puissance expressive.

Eich écrit également le premier moteur du langage, futur SpiderMonkey. Concevoir simultanément la syntaxe et son interprète lui permet de tester les idées rapidement, mais limite le temps disponible pour corriger les incohérences avant leur exposition publique. Dès qu’un comportement est utilisé par des pages web, le modifier risque de casser des sites. Les particularités de la première implantation deviennent ainsi une partie du contrat de compatibilité.

Cette situation distingue JavaScript d’un langage déployé dans un environnement contrôlé. Son évolution doit tenir compte de programmes dispersés sur le Web, parfois sans auteur disponible pour les mettre à jour.

Un langage pris dans la guerre des navigateurs

JavaScript apparaît dans Netscape Navigator 2. Microsoft produit rapidement une implantation compatible pour Internet Explorer sous le nom JScript. Les navigateurs ajoutent leurs propres objets et comportements, tandis que le modèle de document permettant de manipuler les pages reste instable.

Le problème dépasse le langage. JavaScript définit des valeurs, des fonctions et des opérations ; le navigateur lui fournit des API comme le document, les événements ou le réseau. Confondre ces deux couches rend difficile l’identification des incompatibilités.

Pour établir un socle commun, Netscape soumet le langage à Ecma International en 1996. La première édition d’ECMA-262 paraît en 1997 sous le nom ECMAScript. JavaScript devient ainsi l’implantation la plus connue d’une spécification indépendante d’un éditeur.

La normalisation ne règle pas immédiatement les divergences. Un projet ambitieux d’ECMAScript 4 échoue dans les années 2000 face à des désaccords techniques. Le compromis aboutit à ECMAScript 5 en 2009, puis à ECMAScript 2015, qui introduit notamment modules, promesses, classes syntaxiques et nouvelles constructions de déclaration. Depuis, la spécification évolue selon un rythme annuel.

Pourquoi JavaScript a survécu à ses défauts

La compatibilité du Web joue un rôle décisif. Un site ancien doit continuer à fonctionner dans un navigateur récent. Les erreurs historiques ne peuvent donc pas toujours être supprimées ; elles sont documentées, contournées ou complétées par des mécanismes plus sûrs.

Cette contrainte explique certains aspects déroutants : conversions implicites, deux valeurs principales pour l’absence de donnée, règles historiques de portée ou comportement particulier de this. Elle explique aussi la remarquable continuité de la plateforme.

À partir des années 2000, les requêtes asynchrones favorisent des interfaces capables de se mettre à jour sans rechargement complet. En 2008, de nouveaux moteurs, dont V8, accélèrent fortement l’exécution grâce à la compilation à la volée. En 2009, Node.js utilise V8 pour exécuter JavaScript hors du navigateur, notamment sur les serveurs et dans les outils de développement.

Eich n’est pas l’auteur de ces évolutions. Son apport initial a rendu possible une plateforme que les organismes de normalisation, éditeurs de navigateurs et communautés ont ensuite transformée.

De Mozilla à Brave

Après le rachat de Netscape par AOL, Eich participe au développement du projet Mozilla. Il devient un responsable technique majeur de Mozilla puis de la Mozilla Corporation. Firefox, lancé en 2004, contribue au retour d’un navigateur libre et à la concurrence sur les standards du Web.

En 2014, Eich devient brièvement directeur général de Mozilla avant de démissionner dans un contexte de controverse publique liée à un don politique effectué en 2008. Cet épisode relève de sa trajectoire professionnelle et ne doit être ni effacé ni confondu avec l’histoire technique de JavaScript.

En 2015, il cofonde Brave Software, qui développe un navigateur centré sur le blocage des traqueurs et un modèle publicitaire alternatif. Cette activité prolonge son implication dans les navigateurs, mais constitue un projet distinct de JavaScript et de sa normalisation.

Pourquoi Brendan Eich compte encore

La contribution la plus durable d’Eich est d’avoir donné au Web un langage embarqué au moment où celui-ci pouvait encore rester un système de documents essentiellement statiques. Ses choix ont permis la programmation événementielle et la manipulation dynamique des pages avec un coût d’entrée très faible : un navigateur suffisait pour expérimenter.

JavaScript est aujourd’hui plus rigoureux, plus vaste et plus performant que le prototype de 1995. Son histoire rappelle qu’un langage populaire n’est jamais seulement le plan de son créateur. Il devient un contrat entre spécification, implémentations, outils, programmes existants et utilisateurs.

Chronologie

  • 1961 : naissance de Brendan Eich à Pittsburgh.
  • 1986 : master en informatique à l’université de l’Illinois.
  • Avril 1995 : arrivée chez Netscape.
  • Mai 1995 : réalisation en dix jours du prototype Mocha.
  • Septembre 1995 : annonce de LiveScript dans Netscape Navigator.
  • Décembre 1995 : adoption du nom JavaScript.
  • 1996 : soumission du langage à Ecma International.
  • 1997 : publication de la première édition d’ECMA-262.
  • 1998 : participation d’Eich à la création de Mozilla.
  • 2005 : l’essor d’Ajax popularise les applications web plus dynamiques.
  • 2009 : ECMAScript 5 et lancement de Node.js.
  • 2015 : ECMAScript 2015 et création de Brave Software.
  • Aujourd’hui : ECMAScript évolue annuellement et JavaScript reste le langage natif universel du Web.

Questions fréquentes

Brendan Eich a-t-il vraiment créé JavaScript en dix jours ?

Il a réalisé le premier prototype en dix jours en mai 1995. Le langage commercialisé a encore évolué avant sa sortie, puis sa spécification et ses implantations ont été développées pendant des décennies.

JavaScript est-il une version de Java ?

Non. Leurs noms et une partie de leur syntaxe prêtent à confusion, mais leurs systèmes de types, leurs modèles d’objets et leurs environnements sont différents. Le nom JavaScript répondait surtout au contexte commercial de 1995.

Quelle différence existe entre JavaScript et ECMAScript ?

ECMAScript est la spécification standard publiée par Ecma International. JavaScript est le nom usuel du langage et de ses implantations conformes à cette spécification, enrichies dans le navigateur par des API web.

Pourquoi JavaScript utilise-t-il des prototypes ?

Eich s’est inspiré de Self pour permettre aux objets de déléguer directement à d’autres objets. La syntaxe de classes moderne repose toujours sur cette chaîne de prototypes.

Brendan Eich a-t-il créé Node.js ?

Non. Node.js a été créé par Ryan Dahl en 2009. Il utilise le moteur V8 et permet d’exécuter JavaScript hors du navigateur.

Pourquoi les anciens défauts du langage ne sont-ils pas simplement supprimés ?

Parce que modifier leur comportement casserait des pages existantes. La compatibilité ascendante est l’un des contrats fondamentaux du Web ; les standards ajoutent donc souvent de meilleurs mécanismes sans retirer les anciens.

Avant JavaScript : un ingénieur des langages

Brendan Eich naît en 1961 à Pittsburgh et grandit aux États-Unis. Il étudie les mathématiques et l’informatique avant d’obtenir un master à l’université de l’Illinois à Urbana-Champaign.

Avant Netscape, il travaille notamment chez Silicon Graphics et MicroUnity. Son parcours le confronte aux compilateurs, aux langages et aux systèmes de bas niveau. Cette expérience est importante : lorsqu’il arrive chez Netscape en 1995, il n’est pas un débutant chargé d’improviser un langage au hasard, mais un ingénieur déjà familier des compromis entre syntaxe, implémentation et contraintes réelles.

1995 : le Web a besoin d’un langage de script

Le Web du milieu des années 1990 est très différent du Web actuel. Les pages sont essentiellement des documents. Netscape Navigator est au cœur d’une compétition intense entre navigateurs et l’entreprise veut rendre les pages plus interactives.

L’idée est d’ajouter un langage suffisamment accessible pour être utilisé directement dans les pages HTML.

Eich rejoint Netscape avec un intérêt pour Scheme. Mais les contraintes commerciales et techniques poussent vers une syntaxe ressemblant davantage à Java et aux langages de la famille C.

Cette tension explique une partie de l’identité étrange et féconde de JavaScript : apparence familière de langage en accolades, fonctions de première classe et héritage par prototypes.

Les fameux « dix jours »

L’histoire de JavaScript est souvent réduite à une formule : Brendan Eich aurait « créé JavaScript en dix jours ».

Elle est vraie dans un sens précis et trompeuse dans un autre.

En mai 1995, Eich assemble effectivement en une période extrêmement courte le premier prototype du langage qui deviendra JavaScript. Mais le JavaScript utilisé aujourd’hui n’a évidemment pas été entièrement conçu pendant ces dix jours.

Le prototype initial constitue un point de départ. Le langage sera ensuite corrigé, standardisé, étendu et réinterprété pendant plus de trente ans par de très nombreux acteurs.

Les dix jours expliquent certaines particularités historiques ; ils ne résument pas l’histoire du langage.

Mocha, LiveScript, puis JavaScript

Le langage porte d’abord le nom Mocha, puis LiveScript.

Il devient finalement JavaScript à la fin de 1995.

Le choix du nom intervient alors que Java bénéficie d’une visibilité considérable. Il crée une confusion qui dure encore aujourd’hui : JavaScript n’est pas une version simplifiée de Java.

Java, associé à James Gosling, repose sur un modèle, un système de types et une histoire très différents.

Le rapprochement des noms relève surtout du contexte commercial du Web des années 1990.

Une syntaxe de famille C, un cœur plus proche de Scheme et Self

JavaScript utilise accolades, opérateurs et nombreuses formes syntaxiques familières aux programmeurs de C ou Java.

Mais derrière cette apparence, plusieurs idées viennent d’ailleurs.

Les fonctions sont des valeurs de première classe, caractéristique qui rapproche le langage de traditions fonctionnelles comme Scheme. Le modèle d’objets repose sur les prototypes, fortement influencés par Self, plutôt que sur le modèle classique centré sur les classes.

Cette combinaison explique pourquoi JavaScript a longtemps dérouté les développeurs qui l’abordaient comme un « petit Java ».

Les fonctions de première classe

En JavaScript, une fonction peut être stockée dans une variable, passée comme argument, retournée par une autre fonction ou créée dynamiquement.

Ce choix deviendra extrêmement important.

Les callbacks seront omniprésents dans la programmation événementielle du navigateur. Plus tard, fermetures lexicales, fonctions fléchées, promesses et programmation asynchrone s’inscriront dans un langage où les fonctions ont toujours occupé une place centrale.

Cette caractéristique du prototype de 1995 se révèle remarquablement durable.

Les prototypes plutôt que les classes

Le modèle d’objets initial de JavaScript est fondé sur la délégation par prototypes.

Un objet peut hériter directement du comportement d’un autre objet à travers sa chaîne de prototypes.

Pour les développeurs habitués aux langages orientés objet classiques, le modèle peut sembler inhabituel. Pourtant, il offre une grande souplesse.

Les syntaxes class ajoutées beaucoup plus tard rendront certaines constructions plus familières, mais elles s’appuient toujours sur le mécanisme de prototypes.

Ce choix permet de relier JavaScript à l’histoire de la programmation orientée objet, tout en rappelant qu’il existe plusieurs manières de concevoir les objets.

Un langage dynamique dans un navigateur

JavaScript est dynamiquement typé.

Les variables ne sont pas attachées de manière permanente à un type déclaré comme dans de nombreux langages statiques. Les objets peuvent être enrichis à l’exécution et les conversions implicites font partie du comportement historique du langage.

Cette flexibilité facilite certains usages rapides mais produit également des pièges devenus célèbres.

Une partie de l’évolution de JavaScript consistera précisément à offrir de meilleures pratiques et de nouveaux outils sans casser les milliards de pages qui dépendent de comportements anciens.

Netscape contre Microsoft : le langage devient un enjeu stratégique

Lorsque Microsoft développe Internet Explorer, il implémente son propre langage compatible, JScript.

Le risque devient évident : si chaque navigateur fait évoluer sa propre variante, les développeurs devront écrire des pages spécifiques à chaque environnement.

Le problème dépasse Brendan Eich et Netscape.

Pour que le Web reste une plateforme commune, le langage doit sortir du contrôle exclusif d’un navigateur.

ECMAScript : transformer un langage propriétaire en standard

Netscape soumet le langage à Ecma International.

Le standard ECMAScript naît de ce processus, avec une première édition publiée en 1997.

La distinction entre JavaScript et ECMAScript est importante : ECMAScript désigne la spécification standardisée du langage, tandis que JavaScript est le nom de l’implémentation et de l’écosystème que les utilisateurs connaissent.

La standardisation permet à plusieurs moteurs et navigateurs de viser un comportement commun.

C’est l’une des décisions les plus importantes de toute l’histoire de JavaScript.

TC39 : le langage devient une œuvre collective

Les évolutions d’ECMAScript sont discutées au sein du comité TC39.

Brendan Eich reste une figure majeure de l’histoire du langage, mais JavaScript cesse rapidement d’être « son » langage au sens où une personne pourrait décider seule de son avenir.

Des représentants de navigateurs, entreprises et communautés participent aux propositions.

Le processus moderne d’évolution passe par plusieurs étapes avant qu’une fonctionnalité ne rejoigne la spécification.

Cette gouvernance explique comment un langage né dans l’urgence peut continuer à évoluer sans être réécrit de zéro.

La compatibilité : la contrainte qui façonne JavaScript

JavaScript possède une contrainte particulièrement sévère : ne pas casser le Web.

Une page ancienne peut toujours être visitée des années plus tard. Les navigateurs ne peuvent pas simplement supprimer chaque comportement jugé maladroit.

Des bizarreries historiques deviennent donc parfois des obligations de compatibilité.

C’est un contraste intéressant avec Python, dont la transition Python 2 vers Python 3 a accepté une rupture importante pour corriger certaines décisions. JavaScript, intégré directement au Web public, dispose de beaucoup moins de liberté pour effectuer une rupture comparable.

Les premières années difficiles

À la fin des années 1990 et au début des années 2000, JavaScript souffre d’une réputation médiocre.

Les incompatibilités entre navigateurs sont nombreuses. Beaucoup de scripts servent à des effets visuels superficiels, fenêtres surgissantes ou validations simples.

Le langage est souvent considéré comme un outil secondaire.

Pourtant, son avantage décisif est déjà là : il est disponible dans pratiquement chaque navigateur Web.

Cette distribution universelle finira par compter autant que ses qualités intrinsèques.

ECMAScript 4 : l’évolution qui n’aboutit pas

L’histoire de JavaScript comporte aussi des projets abandonnés.

ECMAScript 4 devait transformer fortement le langage avec de nombreuses fonctionnalités ambitieuses. Les désaccords sur la complexité et la direction du projet empêchent finalement son adoption sous la forme prévue.

Cet échec est instructif.

Faire évoluer un langage extrêmement déployé exige plus que de bonnes idées techniques. Il faut maintenir un équilibre entre innovation, implémentation, compatibilité et accord entre acteurs concurrents.

ES5 : consolider avant de repartir

ECMAScript 5, publié en 2009, constitue une étape de consolidation importante.

Il améliore et formalise plusieurs aspects du langage, notamment avec le mode strict et de nouvelles capacités standardisées.

Le langage entre alors dans une nouvelle période.

Le Web lui-même change : les applications deviennent plus riches, les moteurs JavaScript gagnent énormément en performances et le navigateur devient une véritable plateforme applicative.

AJAX change la perception du navigateur

Au milieu des années 2000, la généralisation des techniques regroupées sous le terme AJAX montre qu’une page Web peut échanger des données avec un serveur sans recharger entièrement le document.

Des applications comme Gmail ou Google Maps contribuent à changer les attentes.

JavaScript n’est plus seulement utilisé pour ajouter quelques interactions à une page.

Il devient le langage qui orchestre de véritables applications dans le navigateur.

Cette transformation n’est pas l’œuvre d’Eich seul, mais elle valide l’importance du choix initial d’un langage programmable intégré au Web.

Les moteurs JavaScript deviennent une compétition technologique

Avec l’importance croissante des applications Web, les performances deviennent stratégiques.

Les navigateurs investissent massivement dans leurs moteurs : SpiderMonkey chez Mozilla, V8 chez Google, JavaScriptCore chez Apple et d’autres.

Compilation juste-à-temps, optimisation dynamique et nouvelles techniques d’exécution transforment les performances du langage.

Le JavaScript de 1995, pensé pour de petits scripts, devient capable d’exécuter des applications d’une complexité inimaginable lors de sa création.

Mozilla : d’un projet Netscape à une communauté ouverte

Après les difficultés de Netscape, le projet Mozilla prend une importance croissante.

Eich participe à la création de la Mozilla Foundation puis occupe plusieurs responsabilités techniques au sein de Mozilla.

L’organisation développe Firefox et défend un Web ouvert face aux risques de domination d’une seule plateforme.

Cette étape élargit le rôle d’Eich : il n’est plus seulement le créateur initial de JavaScript, mais un acteur de l’écosystème des navigateurs et des standards du Web.

Firefox et la concurrence des navigateurs

Firefox contribue au retour d’une forte concurrence sur le marché des navigateurs au cours des années 2000.

Cette concurrence est essentielle pour JavaScript.

Plusieurs moteurs doivent implémenter les standards, améliorer leurs performances et corriger leurs divergences.

Un langage Web sain ne dépend pas seulement d’une bonne spécification : il a besoin de plusieurs implémentations capables de se confronter aux mêmes tests et aux mêmes contenus.

Node.js : JavaScript sort du navigateur

En 2009, Ryan Dahl présente Node.js, construit autour du moteur V8.

L’événement change profondément la portée de JavaScript.

Le langage peut désormais être utilisé facilement côté serveur, pour des outils en ligne de commande, des systèmes de build et de nombreuses formes d’automatisation.

JavaScript devient progressivement un langage utilisable sur une grande partie de la pile logicielle.

Cette évolution n’était pas l’objectif du prototype de Netscape, mais elle montre la capacité d’un langage largement disponible à dépasser son contexte initial.

npm et l’explosion de l’écosystème

Node.js s’accompagne de l’essor de npm et d’un écosystème gigantesque de paquets.

Cette richesse accélère le développement mais introduit également de nouveaux problèmes : dépendances profondes, sécurité de la chaîne d’approvisionnement, fragmentation et maintenance de milliers de petits modules.

L’histoire moderne de JavaScript ne peut plus être comprise uniquement à travers le langage.

Elle englobe gestionnaires de paquets, transpileurs, frameworks, bundlers, outils de test et environnements d’exécution.

ECMAScript 2015 : le langage change d’échelle

ECMAScript 2015, souvent appelé ES6, représente l’une des évolutions majeures du langage.

let, const, fonctions fléchées, classes, modules, promesses, itérateurs et nombreuses autres fonctionnalités modernisent fortement l’expérience de développement.

Cette version montre à quel point JavaScript est devenu différent du prototype initial.

Mais l’évolution reste largement additive : le nouveau langage doit continuer à exécuter le Web ancien.

Les classes JavaScript ne suppriment pas les prototypes

La syntaxe class rend JavaScript plus familier pour les développeurs provenant de Java, C++ ou C#.

Elle ne remplace cependant pas le modèle fondamental de prototypes.

Les objets et méthodes créés avec class reposent toujours sur la chaîne de prototypes.

Cette distinction est utile pour comprendre l’histoire du langage : JavaScript peut ajouter une syntaxe plus accessible sans effacer le modèle conceptuel choisi dès ses débuts.

Les promesses et async/await

La programmation du navigateur est naturellement événementielle et asynchrone.

Les callbacks, très puissants, peuvent devenir difficiles à organiser lorsque les opérations s’enchaînent.

Les Promises, puis async/await, apportent des abstractions plus structurées.

Cette évolution illustre le fonctionnement moderne du langage : identifier des pratiques apparues dans l’écosystème, les formaliser et les intégrer progressivement au standard.

Brendan Eich et SpiderMonkey

Eich est également associé à SpiderMonkey, le moteur JavaScript initial de Netscape, aujourd’hui développé dans l’écosystème Mozilla.

Un langage n’existe pas seulement comme spécification.

Il doit être analysé, compilé ou interprété, exécuter du code, gérer la mémoire et interagir avec son environnement.

Le travail autour du moteur rappelle qu’Eich est à la fois concepteur de langage et ingénieur d’implémentation.

Le Web n’est pas JavaScript seul

JavaScript fonctionne avec d’autres technologies.

HTML décrit la structure des documents, CSS leur présentation et les API Web donnent accès au DOM, au réseau, au stockage, aux médias ou à de nombreuses capacités du navigateur.

Cette distinction évite une confusion fréquente : tout ce qu’un script utilise dans un navigateur ne fait pas partie du langage ECMAScript.

Le succès de JavaScript vient justement de son emplacement au centre d’une plateforme beaucoup plus large.

Comparaison avec Java

Le nom entretient la confusion, mais les philosophies diffèrent profondément.

Java est conçu comme un langage statiquement typé exécuté autour d’une machine virtuelle et fortement associé à un modèle de classes.

JavaScript naît comme langage dynamique de script pour le navigateur, avec fonctions de première classe et prototypes.

Au fil du temps, les deux langages empruntent parfois des idées similaires, mais leurs architectures et leurs écosystèmes restent distincts.

Comparaison avec Python

Python, créé par Guido van Rossum, partage avec JavaScript le typage dynamique et l’importance des fonctions et objets.

Leurs histoires sont pourtant presque opposées.

Python grandit à partir d’un langage généraliste volontairement conçu autour de la lisibilité. JavaScript obtient d’abord sa position parce qu’il est intégré au navigateur dominant puis standardisé comme langage du Web.

L’un montre la force d’une philosophie de langage ; l’autre montre la puissance extraordinaire de la distribution et de la compatibilité.

Comparaison avec l’orienté objet classique

JavaScript participe pleinement à l’histoire de la programmation orientée objet, mais son modèle initial ne repose pas sur les classes de la même manière que Java.

Cette différence rappelle l’influence de Self et, plus largement, le fait que l’orienté objet ne possède pas une définition unique.

L’ajout ultérieur des classes ne doit donc pas masquer l’originalité du modèle historique.

Le rôle de Brendan Eich dans l’histoire ne doit pas être exagéré

Dire qu’Eich a créé JavaScript est correct.

Dire qu’il a conçu seul le JavaScript moderne serait faux.

Le langage actuel résulte de décennies de travail de standardisation, de moteurs concurrents, de propositions TC39, de bibliothèques, de frameworks et de retours de millions de développeurs.

L’intérêt de sa biographie est justement de montrer comment une création individuelle peut devenir une infrastructure collective que son créateur ne contrôle plus.

2014 : une controverse et un départ rapide de Mozilla

En 2014, Brendan Eich est nommé CEO de Mozilla Corporation.

Sa nomination provoque une controverse publique liée à un don politique effectué plusieurs années auparavant en faveur de Proposition 8 en Californie, qui visait à interdire le mariage entre personnes de même sexe.

Après une période très courte à la tête de l’organisation, Eich démissionne.

Cet épisode appartient à sa biographie publique, mais il est distinct de l’évaluation technique de JavaScript. Le mentionner permet de retracer son parcours sans transformer un article sur son œuvre informatique en débat politique.

Brave Software

En 2015, Eich cofonde Brave Software.

L’entreprise développe le navigateur Brave avec un positionnement centré notamment sur la confidentialité, le blocage de certains mécanismes de suivi et une approche différente de la publicité en ligne.

Cette nouvelle étape replace Eich dans le domaine qui a défini une grande partie de sa carrière : le navigateur Web.

Elle montre aussi que, vingt ans après JavaScript, il continue à travailler sur les questions de plateforme, de standards et d’économie du Web.

Une invention née sous contrainte

L’une des leçons les plus intéressantes de l’histoire de JavaScript est qu’une invention durable n’est pas toujours issue d’un processus idéal.

Eich disposait de très peu de temps. Le langage devait s’insérer dans une stratégie commerciale, ressembler suffisamment aux syntaxes connues et fonctionner dans un navigateur en pleine compétition.

Ces contraintes ont produit des compromis parfois critiqués.

Mais elles ont aussi donné naissance à une combinaison inhabituelle de concepts qui s’est révélée extraordinairement adaptable.

Les erreurs deviennent parfois des contrats

Lorsqu’un langage est jeune, un concepteur peut corriger un comportement.

Lorsqu’il est exécuté sur des milliards de pages, ce comportement peut devenir un contrat, même s’il paraît maladroit.

C’est l’une des particularités essentielles de JavaScript.

La compatibilité avec l’ancien Web explique pourquoi certaines bizarreries survivent, tandis que de nouvelles constructions sont ajoutées pour permettre un style plus sûr ou plus clair.

Le langage avance souvent par stratification plutôt que par remplacement.

JavaScript comme infrastructure mondiale

Aujourd’hui, JavaScript ne se limite plus à des scripts de navigateur.

Il est utilisé dans applications Web, serveurs, outils de développement, applications desktop hybrides, environnements mobiles, automatisation et nombreuses plateformes embarquées.

Cette extension ne signifie pas qu’il soit toujours le meilleur choix pour chaque tâche.

Elle montre surtout l’effet cumulatif de trois facteurs : présence universelle dans le navigateur, standard ouvert et écosystème gigantesque.

L’héritage de Brendan Eich

L’héritage de Brendan Eich ne réside pas dans la perfection du prototype de 1995.

Il réside dans le fait d’avoir créé, sous des contraintes extraordinaires, un noyau suffisamment expressif pour survivre à des usages que personne ne pouvait prévoir.

Fonctions de première classe, objets à prototypes, dynamisme et intégration au navigateur ont fourni une base qui a ensuite été transformée par une communauté mondiale.

Son histoire rappelle également qu’un langage à succès finit par dépasser son créateur.

JavaScript est aujourd’hui moins l’œuvre d’un individu qu’une couche fondamentale du Web, maintenue par standards, moteurs, entreprises et développeurs du monde entier.

Questions fréquentes

Qui a créé JavaScript ?

Brendan Eich a créé le premier prototype de JavaScript chez Netscape en 1995. Le langage moderne est ensuite le résultat de décennies d’évolution collective.

JavaScript a-t-il vraiment été créé en dix jours ?

Le premier prototype a été assemblé en environ dix jours en mai 1995. Le langage actuel, lui, a évolué pendant plus de trente ans.

Pourquoi JavaScript s’appelle-t-il ainsi ?

Le nom a été adopté dans le contexte de la popularité de Java en 1995. JavaScript et Java restent deux langages distincts.

Quels langages ont influencé JavaScript ?

Sa syntaxe reprend des éléments familiers de la famille C, tandis que ses fonctions doivent beaucoup aux langages fonctionnels comme Scheme et son modèle de prototypes à Self.

Brendan Eich a-t-il créé ECMAScript ?

Il a participé au processus historique qui a conduit à sa standardisation, mais ECMAScript est un standard développé collectivement au sein d’Ecma et de TC39.

JavaScript utilise-t-il vraiment des prototypes malgré la syntaxe class ?

Oui. La syntaxe class repose toujours sur le système de prototypes du langage.

Brendan Eich a-t-il travaillé chez Mozilla ?

Oui. Il a joué un rôle important dans Mozilla et a notamment été CTO avant une très courte période comme CEO en 2014.

Qu’est-ce que SpiderMonkey ?

SpiderMonkey est le moteur JavaScript né chez Netscape et aujourd’hui associé à Mozilla Firefox.

Quel est le lien entre Brendan Eich et Brave ?

Il a cofondé Brave Software en 2015 et en est devenu le dirigeant.

Pourquoi Brendan Eich reste-t-il important ?

Parce que le langage dont il a créé le prototype est devenu le langage de programmation universel du navigateur et une technologie utilisée bien au-delà du Web client.

Sources et références

  1. 1.Allen Wirfs-Brock et Brendan Eich — JavaScript: The First 20 Years
  2. 2.Ecma International — ECMAScript Language Specification
  3. 3.Mozilla — A re-introduction to JavaScript
  4. 4.Computer History Museum — Brendan Eich oral history

Collection

Langages de programmation

  1. 01Grace Hopper : des premiers compilateurs à COBOL
  2. 02John Backus : FORTRAN, la notation BNF et le refus du code machine
  3. 03Dennis Ritchie : le langage C au cœur d'Unix
  4. 04FORTRAN : prouver qu'un compilateur peut rivaliser avec l'assembleur
  5. 05Le langage C : rendre les systèmes portables sans masquer la machine
  6. 06Niklaus Wirth : de Pascal à Oberon, concevoir par la simplicité
  7. 07Bjarne Stroustrup : concevoir C++ sans renoncer aux performances
  8. 08Pascal : apprendre à programmer en rendant la structure visible
  9. 09C++ : de C with Classes à un langage généraliste
  10. 10La programmation orientée objet : objets, messages et abstractions réutilisables
  11. 11Guido van Rossum : créer Python pour rendre le code lisible
  12. 12Brendan Eich : JavaScript, du prototype de Netscape au standard du Web
  13. 13James Gosling : l'ingénieur à l'origine de Java
  14. 14Python : la lisibilité, les batteries incluses et un écosystème mondial
  15. 15Java : écrire une fois, exécuter partout
  16. 16JavaScript : le langage qui a rendu le Web interactif
  17. 17Ken Thompson : d’Unix au langage Go, la simplicité comme méthode
  18. 18John McCarthy : Lisp et l’idée de programmer avec des symboles
  19. 19Alan Kay : Smalltalk et l’ordinateur comme média personnel
  20. 20Barbara Liskov : l'abstraction qui a rendu le logiciel modulaire
  21. 21Robin Milner : ML, la preuve assistée et les langages de l’interaction
  22. 22Brian Kernighan : AWK, Unix et l'art d'expliquer le code
  23. 23Anders Hejlsberg : de Turbo Pascal à C# et TypeScript
  24. 24Larry Wall : Perl, le langage qui a relié les outils d'Internet
  25. 25Yukihiro Matsumoto : Ruby et le bonheur du programmeur
  26. 26Rasmus Lerdorf : PHP et la démocratisation du Web dynamique

Cet article vous a-t-il été utile ?