Apprendre à programmer en JavaScript pour Débutant

Le JavaScript est un langage de programmation de scripts orienté objet. Dans cette description un peu barbare se trouvent plusieurs éléments que nous allons décortiquer.

Introduction sur JavaScript

  • Le JavaScript est un langage de programmation interprété, c’est-à-dire qu’il a besoin d’un interpréteur pour pouvoir être exécuté.
  • Le JavaScript est utilisé majoritairement au sein des pages web mais son utilisation en guise de serveur ou d’application commence à se répandre.
  • Tout comme le HTML, le JavaScript est généralement exécuté par le navigateur de l’internaute : on parle d’un comportement client-side, par opposition au server-side lorsque le code est exécuté par le serveur.
  • Le JavaScript est standardisé par l’ECMA International sous le nom d’ECMAScript, qui constitue la référence du langage.
  • La dernière version standardisée du JavaScript est basée sur l’ECMAScript 5, sorti en 2009. Mais sa nouvelle version, ECMAScript 6, prend du terrain.

Programmer des scripts

Le JavaScript permet de programmer des scripts. Comme nous venons de le voir, un langage de programmation permet d’écrire du code source qui sera analysé par l’ordinateur. Il existe trois manières d’utiliser du code source.

  • Langage compilé : le code source est donné à un programme appelé « compilateur » qui va lire le code source et le convertir dans un langage que l’ordinateur sera capable d’interpréter : c’est le langage binaire, fait de 0 et de 1. Les langages comme le C ou le C++ sont des langages dits compilés.
  • Langage précompilé : ici, le code source est compilé partiellement, généralement dans un code plus simple à lire pour l’ordinateur, mais qui n’est pas encore du binaire. Ce code intermédiaire devra être lu par ce qu’on appelle une « machine virtuelle » qui exécutera ce code. Les langages comme le C# ou le Java sont dits précompilés.
  • Langage interprété : dans ce cas, il n’y a pas de compilation. Le code source reste tel quel, et si l’on veut l’exécuter, on doit le fournir à un interpréteur qui se chargera de le lire et de réaliser les actions demandées.

Les scripts sont majoritairement interprétés. Et quand on dit que le JavaScript est un langage de scripts, cela signifie qu’il s’agit d’un langage interprété ! Il est donc nécessaire d’utiliser un interpréteur pour faire fonctionner du code JavaScript, ce que vous faites fréquemment car il est inclus dans votre navigateur web ! En effet, chaque navigateur possède un interpréteur JavaScript propre :

  • pour Internet Explorer, il s’agit de Chakra (l’interpréteur JavaScript des versions antérieures à IE 9 est JScript) ;
  • pour Mozilla Firefox, l’interpréteur se nomme SpiderMonkey ;
  • pour Google Chrome, il s’agit de V8.

Un langage orienté objet

Intéressons-nous maintenant à la notion « orienté objet ». Ce concept est assez compliqué à définir à ce stade, il sera approfondi par la suite, notamment dans la deuxième partie du livre. Sachez toutefois qu’un langage de programmation orienté objet est un langage qui contient des éléments, appelés « objets », lesquels possèdent des caractéristiques spécifiques et peuvent être utilisés de différentes manières.

Le langage fournit des objets de base comme des images, des dates, des chaînes de caractères, etc., mais il est également possible de créer soi-même des objets pour se faciliter la vie et obtenir un code source plus clair (donc plus facile à lire) et une manière de programmer beaucoup plus intuitive (et donc plus logique). Il est probable que vous n’ayez rien compris à ce passage si vous n’avez jamais fait de programmation, mais ne vous en faites pas : vous comprendrez bien assez vite comment tout cela fonctionne.

Le JavaScript, le langage de scripts

Le JavaScript est majoritairement utilisé sur Internet, conjointement avec les pages web HTML dans lesquelles il est inclus (ou dans un fichier externe). Le JavaScript permet de « dynamiser » une page HTML en ajoutant des interactions avec l’utilisateur, des animations, de l’aide à la navigation. Par exemple :

  • afficher/masquer du texte ;
  • faire défiler des images ;
  • créer un diaporama avec un aperçu « en grand » des images ;
  • créer des infobulles. Le JavaScript est un langage dit client-side, c’est-à-dire que les scripts sont exécutés par le navigateur de l’internaute (le client).

Cela diffère des langages de scripts dits server-side qui sont exécutés par le serveur web. C’est le cas des langages comme le PHP (https://openclassrooms.com/courses/concevez-votre-site-web-avec-php-et-mysql).

Cette distinction est importante car la finalité des scripts client-side et server-side n’est pas la même. Un script server-side va s’occuper de « créer » la page web qui sera envoyée au navigateur. Ce dernier va alors afficher la page, puis exécuter les scripts client-side tels que le JavaScript.

Le JavaScript, pas que le Web

Si le langage JavaScript a été conçu pour être utilisé conjointement avec le HTML, il a depuis évolué vers d’autres destinées. En effet, il est régulièrement utilisé pour réaliser des extensions pour différents programmes : Chrome et Firefox possèdent tous deux un panel gigantesque d’extensions en partie codées en JavaScript.

Mais là où le JavaScript a su grandement évoluer ces dernières années, c’est dans la possibilité d’être exécuté sur n’importe quelle machine. Quelques projets permettent d’utiliser le JavaScript en dehors de votre navigateur, le plus connu est sans nul doute Node.js (https://openclassrooms.com/informatique/cours/des-applications-ultra-rapides-avec-node-js).

Le JavaScript peut aussi être utilisé pour réaliser des applications. L’interface de Firefox est notamment développée avec ce langage mais cela reste une implémentation bien particulière à la société Mozilla. Cependant, il vous est tout à fait possible aujourd’hui de créer une application en JavaScript grâce à Node.js et si vous souhaitez y ajouter une interface, d’autres projets venant se greffer à Node vous faciliteront la tâche, tel qu’Electron (http://electron.atom.io/) ou NW.js (https://github.com/nwjs/nw.js).

 

Petite histoire du langage JavaScript

En 1995, Brendan Eich travaillait chez Netscape Communication Corporation, la société qui éditait le célèbre navigateur Netscape Navigator, alors principal concurrent d’Internet Explorer. Brendan développe le LiveScript, un langage de scripts qui s’inspire du langage Java, et qui est destiné à être installé sur les serveurs développés par Netscape.

Netscape se met à développer une version client du LiveScript, qui sera renommée JavaScript en hommage au langage Java créé par la société Sun Microsystems. En effet, à cette époque, le langage Java était de plus en plus populaire, et appeler le LiveScript « JavaScript » était une manière de faire de la publicité à la fois au Java et au JavaScript lui-même. Mais attention, au final, ces deux langages sont radicalement différents ! N’allez pas confondre le Java et le JavaScript car ils n’ont clairement pas le même fonctionnement.

Le JavaScript sort en décembre 1995 et est embarqué dans le navigateur Netscape 2. Le langage est alors un succès, si bien que Microsoft développe une version semblable, appelée JScript, qu’il embarque dans Internet Explorer 3, en 1996.

Netscape décide d’envoyer sa version de JavaScript à l’ECMA International (European Computer Manufacturers Association à l’époque, aujourd’hui European Association for Standardizing Information and Communication Systems) pour que le langage soit standardisé, c’est-à-dire pour qu’une référence du langage soit créée et qu’il puisse ainsi être utilisé par d’autres personnes et embarqué dans d’autres logiciels. L’ECMA International standardise le langage sous le nom d’ECMAScript.

Depuis, les versions de l’ECMAScript ont évolué. La version la plus connue et mondialement utilisée est la version ECMAScript 5, parue en décembre 2009.

L’ECMAScript et ses dérivés

L’ECMAScript est la référence de base dont découlent des implémentations. On peut évidemment citer le JavaScript, qui est implémenté dans la plupart des navigateurs, mais aussi :

L’ECMAScript est la référence de base dont découlent des implémentations. On peut évidemment citer le JavaScript, qui est implémenté dans la plupart des navigateurs, mais aussi :

  • JScript (http://fr.wikipedia.org/wiki/JScript), qui est l’implémentation embarquée dans Internet Explorer. C’est aussi le nom de l’ancien interpréteur d’Internet Explorer ;
  • JScript.NET, qui est embarqué dans le framework .NET de Microsoft ;
  • ActionScript, qui est l’implémentation faite par Adobe au sein de Flash ;
  • EX4, qui est l’implémentation de la gestion du XML d’ECMAScript au sein de SpiderMonkey, l’interpréteur JavaScript de Firefox.

La plupart de ces implémentations sont quelque peu tombées en désuétude hormis le JavaScript qui a su se frayer une place de choix.

Les versions du JavaScript

Les versions du JavaScript Les versions du JavaScript sont basées sur celles de l’ECMAScript (ES). Ainsi, il existe :

  • ES 1 et ES 2, qui sont les prémices du langage JavaScript ;
  • ES 3 (sorti en décembre 1999) ;
  • ES 4, qui a été abandonné en raison de modifications trop importantes qui ne furent pas appréciées ;
  • ES 5 (sorti en décembre 2009), la version la plus répandue et utilisée à ce jour ;
  • ES 6 finalisé en décembre 2014 et dont l’implémentation avait déjà été commencée avant cette date au sein de plusieurs navigateurs. Ce cours portera sur la version 5 de l’ECMAScript, la version 6 n’étant pas encore très bien supportée à l’heure où nous écrivons ces lignes.

Un logo inconnu de JavaScript

Il n’y a pas de logo officiel pour représenter le JavaScript. Cependant, le logo suivant est beaucoup utilisé par la communauté, surtout depuis sa présentation à la JSConf EU de 2011. Vous pourrez le trouver à cette adresse : https://github.com/voodootikigod/logo.js sous différents formats. N’hésitez pas à en abuser en cas de besoin.