Aller au contenu
La Trame

Chronologie des applications en réseau · 1990-2025

Repère du

JavaScript entre dans le navigateur

Un communiqué commun de Netscape et de Sun annonce un langage conçu pour s'exécuter dans la page elle-même. Il devait servir à vérifier un formulaire ; il porte aujourd'hui l'essentiel des interfaces en réseau.

Langage 1995 8 min de lecture

Pour comprendre pourquoi ce langage a été écrit, il faut se rappeler ce que coûtait un aller-retour vers le serveur en 1995. Sur une liaison par modem, valider un formulaire prenait plusieurs secondes. Si un champ obligatoire avait été oublié, le visiteur attendait, recevait une page d'erreur, revenait en arrière et recommençait. Un langage capable de vérifier la saisie avant l'envoi ne relevait pas du confort, mais de la survie du formulaire.

Un prototype écrit en une dizaine de jours

Le premier prototype est écrit au printemps 1995 par Brendan Eich, chez Netscape, en une dizaine de jours. Il porte d'abord un autre nom, LiveScript, avant d'être rebaptisé au moment de l'annonce publique du 4 décembre. Cette précipitation explique une partie des bizarreries que le langage traîne encore, et que les éditions suivantes ont corrigées sans jamais pouvoir les supprimer : sur le web, casser l'existant n'est pas une option.

Un nom qui a fait trente ans de dégâts

JavaScript et Java sont deux langages différents, conçus par des équipes différentes, dans des buts différents. Le rapprochement des noms relevait de l'accord commercial du moment. La confusion survit pourtant dans les offres d'emploi et les discussions de comptoir technique.

Java
Langage compilé vers un format intermédiaire, exécuté par une machine virtuelle. Typage déclaré, orientation objet par classes. Employé côté serveur et sur des systèmes embarqués.
JavaScript
Langage interprété puis compilé à la volée par le navigateur. Typage dynamique, objets modifiables à l'exécution, fonctions manipulables comme des valeurs. Employé dans la page, et depuis 2009 également sur le serveur.

Trois traits de 1995 encore présents

Les fonctions sont des valeurs

Une fonction peut être rangée dans une variable, passée en argument, renvoyée par une autre fonction. Ce trait, rare dans les langages grand public de l'époque, est ce qui rendra naturel le style par rappels puis par promesses, et plus tard la description d'une interface comme une fonction de son état.

Les objets se modifient à l'exécution

On ajoute une propriété à un objet existant sans rien déclarer au préalable. Cette souplesse a permis d'écrire des bibliothèques qui corrigent le navigateur depuis la page elle-même, technique qui a maintenu le web compatible pendant les années de divergence.

Un seul fil d'exécution, piloté par les événements

Le code de la page ne s'exécute pas en parallèle : les tâches sont mises en file d'attente et traitées l'une après l'autre. Un traitement long bloque donc l'affichage entier. Cette contrainte, présente dès 1995, dicte encore aujourd'hui la manière d'écrire une interface fluide.

Écran d'ordinateur photographié de trois quarts affichant une page web simple avec un champ de saisie et un bouton d'envoi.
Le cas d'usage fondateur tient en un écran : un champ, un bouton, et un message qui apparaît sans que la page se recharge.

Le prix de l'improvisation

Dès août 1996, un second navigateur embarque son propre dialecte. Deux implémentations proches mais différentes coexistent, et écrire une page revient à écrire deux fois le même comportement. La normalisation sous le nom d'ECMAScript, en juin 1997, donne une référence commune, mais il faudra une décennie et une bibliothèque d'abstraction pour que la question cesse d'occuper les journées de travail.

Le langage, de l'annonce à la cadence annuelle
Date Étape Ce qui change
12/1995Annonce publiqueUn langage dans la page
06/1997Première norme ECMA-262Une référence commune aux éditeurs
2009Cinquième éditionMode strict, méthodes de tableau
06/2015Édition 2015Modules, classes, promesses
Depuis 2015Une édition par anAjouts limités, publiés à date fixe

Ce que ce repère a rendu possible

Sans exécution dans la page, la requête discrète de mars 1999 n'aurait servi à rien : recevoir des données sans recharger l'écran suppose un programme capable de les insérer. De la même façon, le service worker de 2015 est un script JavaScript. Toute la seconde moitié de cette chronologie repose sur la décision de décembre 1995.

Précisions de datation

  • 04/12/1995 : date du communiqué commun annonçant le langage sous son nom définitif.
  • Printemps 1995 : écriture du prototype, sous le nom LiveScript.
  • 06/1997 : première édition de la norme ECMA-262.

Ce que ce langage a permis ensuite

Trois repères qui dépendent directement de l'exécution de code dans la page.

  1. Ajax : un nom pour une pratique déjà possible

  2. Une seule page pour toutes les largeurs d'écran

  3. Le script qui répond quand le réseau est absent