Logo Spiria

Lanaissance du JavaScript

14 février 2014.
Qu’on l’aime ou qu’on ne l’aime pas, le JavaScript s’est taillé une place de choix dans l’informatique contemporaine. Il est devenu un peu un incontournable. Mais d’où vient-il ? Comment est-il passé de langage de second ordre à un des langages les plus utilisés sur le Web ? Quel était son but initial ? Comment a-t-il évolué ? Quels sont ses mauvais côtés ? Ses qualités ? Ce qui le démarque des autres langages ? Je crois que pour bien comprendre sa raison d’être, il faut faire un petit retour sur son histoire.

Je crois que pour bien comprendre sa raison d'être, il faut faire un petit retour sur son histoire.

Internet a été inventé en 1974, mais au début il était essentiellement utilisé pour partager de l'information et d'être capable de toujours rejoindre une destination peu importe la route utilisée. En contexte de guerre froid, il devait être capable de trouver le plus rapide chemin pour rejoindre une destination même si la topologie du réseau venait soudainement à changer, comme une ville bombardée. C'est en 1983, à la version 4 du Internet Protocol, qu'on réussi finalement à créer une version jugé « stable ». Mais l'Internet tel que la plupart du monde ordinaire le connait aujourd'hui est apparu plutôt en 1993 avec première version d'un obscur logiciel appelé « World Wide Web ». Inventé au CERN, c'est le premier outil qui permet de représenter des documents riches de façon graphique. Ça ressemblait essentiellement à ça:

decorative

Comme vous pouvez l'observer, c'est le tout début. Dans cette version, ils ne supportent pas les images imbriquées, il ne fonctionne que sur une machine plutôt rare, le NeXT, l'ancêtre de Mac OS X, il est écrit en Objective-C, un langage de programmation peu connu. Si dans sa première année, il sert essentiellement à distribuer du contenu statique aux chercheurs du CERN, rapidement des programmeurs, à cause de la simplicité du protocole invente un premier serveur HTTP qui envoie des fichiers HTML générés dynamiquement. Les formulaires font rapidement leur apparition dans HTML2 pour permettre aux utilisateurs de soumettre du contenu au serveur. Mais rapidement un problème est soulevé par les développeurs. Si une erreur est détectée dans un formulaire, il fallait renvoyer en totalité le formulaire à l'utilisateur et lui mentionner son erreur. Occupant du temps de processeur serveur et de la largeur de bande, deux choses très dispendieuses à l'époque.

Netscape prend alors l'initiative en 1995 d'écrire un langage de programmation pour son navigateur.

Il est développé initialement sous le nom « Mocha ». Initialement, il devait être un vrai langage plus conventionnel, orienté vers les pages web. Mais les designers voulaient un langage ciblé pour les personnes ayant peu ou pas de connaissance en programmation parce que chez Sun Microsystem, on travaillait à intégrer Java dans le navigateur. Alors dans sa deuxième proposition, les types de données disparaissent, la syntaxe devient très laxiste, beaucoup des concepts classiques des langages orientés objet disparaissent. Mais Brendan Eich décide de laisser dans le langage suffisamment de fonctionnalité pour que les programmeurs professionnels s'y retrouvent. Et éventuellement, il est apparu dans Netscape 2.0 sous le nom « LiveScript ». Mais dans Netscape 2.0 Bêta 3, il est renommé JavaScript, une décision d'entreprise lorsque Netscape prends la décision d'intégrer Java dans son serveur web, espérant que le mélange des deux outils créeront le premier « OS distribué », l'ancien terme pour le « Cloud Computing ».

La question que beaucoup de programmeur se posent en faisant leurs premier pas en JavaScript, c'est comment est-il passé de langage de second ordre à un des langages les plus utilisés sur le Web.

En un mot : Microsoft. Si vous êtes en informatique depuis aussi longtemps que moi, vous avez peut-être connu le Microsoft Network. En 1994, à l'aube de la sortie de Windows 95, Microsoft décide de créer sa propre version d'Internet, le Microsoft Network.

decorative

Ils n'utilisent aucune des technologies web actuelles. C'est essentiellement un émule de CompuServe, un service disponible à l'époque. Ils offrent des nouvelles, la météo, le courriel, du clavardage, des forums. Tout est basé sur des technologies Microsoft de A à Z. Même si l'interface est très conviviale, le seule problème pour Microsoft est que les développeurs et les utilisateurs n'y adhère pas. Les clientèles cibles de ce type de service à l'époque sont des power users, des universitaires. Ils ont besoin d'une chose très importante : l'interopabilité. Ces utilisateurs doivent interagir avec d'autres utilisateurs qui n'ont pas nécessairement des PCs. À l'époque, ce marché est constitué d’une variété de plateformes, des UNIX, des NeXT, des Macs, et plus marginalement, de PC tournant sur Windows.

Bref, le TCP/IP, le HTTP, le HTML remportent la bataille de la popularité parce que Mosaic, un navigateur développé par l'Université d'Illinois, rend disponible le code source de son navigateur moyennant certaines conditions. Mosaic devient rapidement disponible sur littéralement toutes les plateformes. Les dirigeants de Microsoft voyant le potentiel des réseaux interconnectés ne veulent pas rater le bateau. Ils décident d'acheter une licence de Mosaic, ils le rebrand et ils sortent Internet Explorer. Mais devant la popularité de Netscape, ils se sentent obligés d'implanter toutes les fonctionnalités de Netscape 2.0...

Incluant JavaScript.

À l'époque le langage n'est pas encore standardisé par le ECMA. Microsoft décompile [1] Netscape et il fait une implantation parfaite de JavaScript en un temps record. Le fait que Microsoft fasse en sorte qu'Internet Explorer soient 100 % compatible avec Netscape, le navigateur le plus populaire à l'époque, font en sorte qu'il devient un standard de facto.

Très rapidement, Microsoft réalise qu'il ne contrôlera pas JavaScript parce que Netscape vient de commencer le processus pour devenir un standard ECMA. Dès Internet Explorer 3, Microsoft essaie de rediriger le marché en intégrant un nouveau langage de scriptage, VBScript. Mais la communauté de développeur ne les suit pas. L'utilisation de VBScript restera toujours marginale.


[1] La décompilation, ou plus grossièrement le Reverse Engineering, est un processus par lequel le code binaire est lu par un humain dans le but de recréer la logique ayant servit à généré un code binaire.