Dans cette rubrique du Tout Premier, laissez-moi vous raconter l’histoire d’un langage qui a révolutionné le web. C’est l’histoire d’un homme talentueux qui va propulser la navigation internet sur la Lune. Je vous emmène aux origines d’un langage né dans l’urgence et qui va connaitre un succès planétaire.
En 1995, le Web est complètement figé, les pages sont statiques, lentes et sans vie. Les navigateurs affichent du texte et des images, mais rien ne bouge, rien ne réagit. C’est un monde stérile où l’on saute de page en page sans artifice. À cette époque, le navigateur qui domine, c’est Netscape Navigator. Son concurrent, Mosaic, peine face à ce mastodonte quant à Internet Explorer, lui vient tout juste de sortir et ne pèse pas lourd dans la balance, mais tout le monde sait que la firme de Redmond (Microsoft) est si solide et puissante, qu’engager une bataille contre elle, pourrait s’avérer périlleuse sans innovation.
La petite équipe de chez Netscape sent le vent tourner. C’est alors qu’il leur vient l’idée de proposer une navigation plus riche, plus dynamique, plus cool. — Et si on donnait une âme à ces pages ? Et si on permettait aux sites de réagir, de s’animer, de dialoguer avec ceux qui les visitent ? Parce qu’il existe bien un langage nommé Java pour pallier ce manque, mais il est lourd, complexe et n’est pas fait pour les auteurs de pages. Netscape comprend que sa place de leader du web est menacée, il doit réagir vite. Nous devons mettre au jour une brique plus légère, un langage simple, qui dialogue directement avec la page web sans machine virtuelle, ni compilateur. C’est alors que Netscape se lance et fait appel au brillantissime Brendan Eich.
Quand ils embauchent Brendan au printemps 95, ils lui annoncent qu’il aura seulement dix jours pour livrer un prototype fonctionnel et qui puisse s’intégrer dans les versions en développement de Navigator. Ce n’est donc pas une maquette sur papier, mais un vrai moteur écrit en C, branché au navigateur que lui commande l’entreprise californienne. Du haut de ses 33 ans, Brendan signe et part au combat.
Dans l’open space de Netscape à Mountain View dans la Silicon Valley, Brendan avance sans relâche, porté par la lueur froide des néons et l’odeur du café Mocha qui flotte dans l’air. Le nez collé à son écran flambant neuf sous Windows 95, il travaille l’esprit en ébullition, comme si chaque idée avait déjà sa place dans le langage qu’il invente. Il est absorbé par ce projet fou au point d’en oublier les heures et la nuit comme si le temps n’existait plus. Seule compte l’écriture, la danse frénétique de ses doigts sur les touches de son clavier, l’addiction au code, l’envie de franchir la ligne d’arrivée. Il est plongé dans cet état d’ivresse qui lui fait oublier de manger, de dormir, de boire. Les nuits blanches n’étaient pas l’exception, la frontière n’existait plus entre le jour et la nuit. Seules les lois du corps le forçaient à s’éloigner du code, quand ses paupières tombaient d’elles-mêmes ou quand l’appel des toilettes devenait plus fort que la ligne de code suivante à écrire. Et puis, lors d’un instant de conscience, surgit le tic-tac de sa montre, brutal, obsédant, qui libère en lui une dose d’adrénaline qui lui crie : « Dépêche-toi, le temps est compté, la réussite doit avoir lieu. »
Brendan avance seul dans ce projet mais l’équipe qui s’occupe du navigateur l’influence sur certaines fonctionnalités, dont une en particulier qu’il regretta plus tard d’avoir suivie. Ses collègues lui ont demandé que JavaScript soit plus tolérant et qu’une chaîne de caractères “5” soit égale au chiffre 5. Ainsi “5”==5 devient vrai. Ce n’est pas ce qu’il y a de plus beau pour un langage de programmation. Quelques années plus tard, il proposera “===” pour retrouver un comportement sensé et avouera aussi que cette concession prise dans l’urgence est l’une des cicatrices les plus visibles de JavaScript.
Dans la salle de réunion de Netscape, l’air est électrique. Brendan, les bras croisés, fixe le tableau sur lequel Tom Paquin vient d’écrire en gros : if (“5” == 5) { alert(“C’est une bonne idée ?”); }. — On n’a pas le choix, lâche Rick Schell en sirotant un Jolt Cola. Si on veut que les mecs qui bricolent leurs pages web utilisent ça, faut que ça marche même quand ils se plantent. Brendan sert les dents. Il sait que Schell a raison, que Paquin a raison. Que même Jamie Zawinski, l’ingénieur emblématique du groupe, les yeux rivés sur son écran en train de coder le système de favoris de Netscape, a raison. — D’accord, dit Brendan. Mais un jour, vous regretterez tous ça. Personne ne releva ses derniers mots. Le Web n’attendra pas. Microsoft non plus.
En dix jours, perfusé au Jolt Cola, une boisson ultra-caféinée à la mode, Brendan Eich conçoit Mocha, le prototype initial, qui sera renommé plus tard LiveScript puis JavaScript. Son travail, influencé par des langages comme Java, Scheme et Self, pose les bases d’un futur emblématique du web. La syntaxe proche de Java lui sera imposée afin de profiter de la popularité du langage de Sun à cette époque. À partir de ce premier prototype entièrement écrit par un seul homme et non par l’équipe, JavaScript va continuer d’évoluer, de se consolider puis d’être standardisé 2 ans plus tard pour devenir le langage universel que l’on connaît et toujours utilisé aujourd’hui.
Aujourd’hui, JavaScript tourne sur tous les navigateurs du globe. La plupart des animations et des interactions que l’on a avec une page, un formulaire, une galerie d’images, un menu qui se déplie sont pilotées par du JavaScript.
C’est un langage en constante évolution et maintenu par TC39, un groupe de travail d’ECMA International. TC39 est un comité de normalisation chargé de faire évoluer ECMAScript, la norme officielle du langage JavaScript. Son comité regroupe Mozilla, Google, Apple, Microsoft, Intel, Netflix, Meta… et des experts indépendants dont Brendan Eich a longtemps fait partie.
Sous le capot, chaque navigateur embarque son propre moteur JavaScript. Chrome et Edge s’appuient sur V8 développé par Google. Firefox utilise SpiderMonkey développé par Mozilla. Safari tourne avec JavaScriptCore développé par Apple. Tous ces moteurs implémentent la même spécification ECMAScript, ce qui permet au langage JavaScript de fonctionner partout, même si chaque navigateur a son propre moteur.
Après ce sprint de dingo, Brendan reste chez Netscape et continue de faire évoluer le langage. La guerre des navigateurs aura la peau de Netscape mais pas de Javascript. Brendan ne lâche pas le web, il change de camp mais pas de mission. Il rejoint Mozilla, travaille sur Firefox avec pour mission de défendre un web ouvert et contribue à empêcher qu’un seul acteur verrouille tout.
Plus tard, après un passage éclair à la tête de Mozilla, il revient à son obsession du moment, la vie privée et le contrôle utilisateur… Il cofonde Brave. Il a donné un nouvel élan au web avec JavaScript, puis a lutté sans relâche pour qu’il reste un espace de liberté. C’est beau !


