JavaScript, le classique et l'irremplaçable
On peut dire que les années 90 étaient les plus fécondes que l'Internet a jamais vécues - peut-être même les plus fécondes de toute sa carrière passée et future : en 1991, Linus Thorwald parla pour la première fois de Linux, son système d'exploitation en open source. En 1995, la première version d'Apache, du fameux serveur en open source, voyait le jour, et juste quelques mois plus tard, en 1996, le XML fut proclamé héritier du HTML.
Bref, l'heure du renouveau avait sonné. Ainsi, personne n'était sérieusement étonné lorsque, juste au lancement de la version 2.0 de son Netscape Navigator, la Netscape Communication Corporation annonça une grande "surprise" : la naissance de LiveScript.
Plus tard, le nom de LiveScript fut transformé en JavaScript. L'évocation du langage Java n'avait évidemment rien d'un hasard : la syntaxe du nouveau "bébé" du Net base carrément sur celle du Java. Toutefois, cela ne signifie pas qu'une application Java aurait quelque chose en commun avec la technique du JavaScript.
Il est vrai que le JavaScript était le premier langage script à être "inventé" et que, aujourd'hui, on peut parler de lui comme d'un véritable "classique". Il est aussi vrai que, plus tard, d'autres langages ont essayé de l'égaler - tel que, par exemple, le PHP. Mais jusqu'à ce jour, aucune autre technique n'a réussi de le remplacer.
À l'époque de sa création, les Webmasters du monde entier étaient fascinés : avec JavaScript, une nouvelle étape vers l'interactivité du Web fut franchie. Désormais, une page était capable de "bouger". Pour la première fois, il était possible d'échanger une image contre une autre sans que l'internaute y "clique", de remplacer un bouton par un autre au moment où la souris glisse sur lui, d'afficher du texte dans la barre d'état, de faire bouger un texte, d'ouvrir une fenêtre pop-up... Tout à coup, les possibilités d'insérer du "mouvement" dans une page étaient devenues immenses : le monde avait découvert le DHTML.
Le DHTML, ce "mariage" entre le HTML, les CSS et le JavaScript est une expression typique du "véritable caractère" du JavaScript : il s'intègre facilement dans un autre langage du style HTML et "s'accouple" sans problèmes avec les CSS. Le programmeur n'est donc pas obligé de choisir - il peut faire appel aux capacités de plusieurs techniques à la fois. Les textes, les images, les liens, la mise en page etc. restent sous la gestion du HTML et de ses feuilles de style, tandis que le "mouvement" dans la page est pris en main par JavaScript.
Mais ce mouvement n'était pas la seule nouveauté avec laquelle JavaScript réussit à conquérir son monde : il savait aussi travailler dans le "secret". Grâce à lui, une page Web était enfin en mesure d'interroger un ordinateur pour connaître les préférences de son "maître" : avec un simple script, un Webmaster pouvait, par exemple, connaître le type et la version du navigateur employé par le visiteur de sa page. Avec cette information, il avait la possibilité de brancher l'internaute sur une deuxième ou troisième page dont le design avait spécialement été adapté aux besoins de ce browser.
Ou prenons les fameux cookies, une autre réalisation du JavaScript. Le Webmaster avait enfin la possibilité de sauvegarder des informations fournies par l'internaute : son nom, ses coordonnées, ses courses faites sur le Net, ses goûts en matière de sites, son numéro de carte bleue - tout pouvait être gardé et réutilisé lors d'une prochaine session.
Tout le monde sait qu'à la longue, les capacités du JavaScript de scruter l'ordinateur de l'internaute ne furent pas seulement employés pour informer le Webmaster du browser préféré d'un internaute ou pour retenir son prénom pour, lors de sa prochaine visite, pouvoir l'accueillir par un "hello John" bien personnalisé. On ne se contentait pas non plus de retenir la liste des livres préférés de l'internaute pour, plus tard, lui rappeler son envie de les acheter. - Les capacités du JavaScript ont aussi servi aux hackers et autres groupes de "génies" informatiques plus ou moins malhonnêtes, et nous pouvons dire que, sans l'invention du JavaScript, une bonne partie des mesures de sécurité dont, aujourd'hui, nous avons pris l'habitude, n'aurait jamais été développée.
Or, les temps ont changé, et JavaScript n'est plus le seul langage capable de gérer nos bases de données ou de placer un cookie. Il est vrai que certaines fonctions comme, par exemple, les pop-up windows ou le roll-over ne peuvent toujours pas être réalisées dans d'autres langages. Mais ces détails plus sympas qu'importants sont-ils suffisants pour expliquer, pourquoi ce "classique" de l'Internet est resté irremplaçable ?
Il n'y a qu'une seule réponse à cette "énigme" : JavaScript a toujours "quelque-chose" d'unique - son fonctionnement en client-side. Au contraire des langages du style Perl ou PHP, JavaScript charge dans l'ordinateur de l'internaute toutes les données dont il a besoin pour fonctionner, et c'est ici où il stocke toutes les informations. La technique des autres langages qui, suivant le système server-side, font tout passer par le serveur a certainement des avantages - mais également des désavantages.
Les avantages du server-side sont clairs. Ne prenons que la question de la mémoire : une donnée stockée sur le serveur n'encombre pas l'ordinateur, sa mémoire reste "libre" pour remplir d'autres fonctions. Ou le fameux problème des navigateurs : tant qu'un langage doit être interprété à l'intérieur de l'ordinateur, l'affichage des pages dépend toujours de la "bonne volonté" des navigateurs. Un langage server-side se passe des services du navigateur et est indépendante des dispositions prises par ses créateurs.
Toutefois, la technique server-side implique que l'internaute est tout le temps en communication directe avec le serveur. Le serveur doit donc rester "ouvert" pour laisser entrer les données envoyées par l'internaute et pour pouvoir lui répondre. Or un internaute malveillant n'envoie pas forcément toujours des données sans risque...
Pour limiter les dangers dus aux "portes ouvertes" d'un serveur en liaison directe avec l'internaute, ces "ouvertures" ont besoin de "gardiens" extrêmement sévères : ils doivent veiller à ce qu'une porte ne s'ouvre pas plus grand que nécessaire et qu'elle soit soigneusement fermée après chaque visite pour éviter les entrées incontrôlées. Ils doivent contrôler toutes les données qui entrent et savoir distinguer les "bonnes" données des "nuisibles". Mais ils doivent aussi contrôler les données sortant pour éviter les "vols". Bref, la moindre erreur dans une programmation server-side du genre PHP peut s'avérer fatale pour le serveur et pour tout son contenu.
Lorsqu'on travaille en JavaScript, de tels risques n'existent pas. Le serveur reste fermé et l'internaute ne communique qu'avec - son propre ordinateur.
La partie de la formation online du Webmaster pro consacrée à l'apprentissage du JavaScript permet à l'étudiant de maîtriser toutes les techniques du ce langage et de réaliser en JavaScript toutes les tâches qui ont besoin d'une technique script. Mais il apprend aussi à distinguer ses avantages de ses désavantages et à décider, sous quelle circonstances il devrait opter pour Perl ou PHP et dans quelles conditions la technique du JavaScript reste irremplaçable.