Dans cette vidéo, on va aborder la notion de Runtime JavaScript.
00:03
C'est une notion dont on ne parle pas souvent, parce que toi, peut-être que tu as déjà fait du JavaScript dans le navigateur avec des éléments HTML, CSS, mais on peut aussi faire du JavaScript directement sur ton ordinateur comme un script.
00:16
Et on va voir justement la notion de Runtime qui dirige ces différents environnements.
00:21
Runtime, environnement, là on commence déjà à aller sur des mots similaires, mais je t'explique ça tout de suite.
00:26
Déjà, il faut savoir que quand Netscape a créé le Javascript, il ne pouvait s'exécuter que du côté client.
00:32
Le Javascript était fait pour que ton ordinateur reçoive le Javascript.
00:36
De base, le navigateur, il fonctionnait comme ceci uniquement.
00:39
L'utilisateur, il allait sur ton site web, il allait avoir une information comme quoi ça chargeait, puis le serveur allait récupérer la page HTML pour l'URL qu'il a demandé, ici slash, Lui, il a l'air se voir la page HTML, et donc là, la page était visible, mais pas encore interactif, parce que directement après, on vient récupérer le JavaScript sur le serveur.
00:59
Le fichier JavaScript était retourné, notre navigateur l'exécutait ici, et une fois que le fichier JavaScript était exécuté, on venait rendre la page interactif.
01:09
Et c'est ce qui se passait durant toutes les premières années du JavaScript.
01:13
Mais il faut savoir que là, ce que je te présente ici, ça représente un runtime, et ce runtime, c'est ton navigateur.
01:19
Parce qu'en fait, ici, ce qu'il faut bien comprendre, c'est que le fichier JS qui est sur le serveur, quand il est envoyé au client, ce n'est pas ton ordinateur en soi qui exécute ce fichier JS.
01:28
Ce fichier JS, il est exécuté, encapsulé dans ton navigateur, et ce qui rend dès ta page interactive.
01:34
J'espère que je ne t'ai pas perdu.
01:36
Si je t'ai perdu, ne t'en fais pas, on continue sur la suite.
01:39
Du coup, c'est quoi un runtime?
01:40
Eh bien, il y a eu les runtime JavaScript qui se sont créés.
01:43
Pour t'imaginer ce que c'est un runtime, imagine-toi que le JavaScript, c'est comme un artiste que tu peux déplacer par définition, parce que l'artiste, il va pouvoir aller dans différents lieux.
01:52
Et ces lieux, justement, c'est des runtimes.
01:54
On va parler de deux runtimes principaux qui sont des runtimes modernes.
01:59
Le premier, c'est le Node.js.
02:01
Et donc, imagine-toi ici comme l'image que j'ai fait ici.
02:04
Le Nodess, qui est une salle de théâtre qui accueille notamment des artistes comme Javascript, qui peut se rendre dans cet environnement Nodess et il va pouvoir se présenter ici.
02:17
Et quand il est dans cet environnement, par définition, il aura accès à ce que cette salle de concert présente, c'est à dire qu'il aura accès au matériel informatique qui est là, il aura accès aux guitares qui sont là.
02:29
Enfin, tout ce qu'il n'a pas amené lui-même, il aura accès à cette salle.
02:32
Alors que, par exemple, le V8, qu'on va parler juste après, on pourrait imaginer qu'en fait le V8 c'est une sorte de studio super moderne de la mort qui tue, comme tu vois ici.
02:40
Et du coup, quand Javascript est dans ce studio, il n'a pas du tout les mêmes produits, les mêmes accès qu'ici.
02:46
Tu vois qu'ici, il y a du vieux matériel avec Node.js, ce qui n'a rien à voir avec Node.js.
02:50
Tandis que dans le V8, il va y avoir d'autres matériels.
02:52
Alors, ça reste le même artiste, ça reste le même langage, mais ce langage est exécuté dans des environnements différents, ce qui offre accès à des choses différentes.
03:02
En l'occurrence, ici, une guitare, un machin, etc.
03:05
Alors qu'ici, c'est d'autres choses.
03:06
Voilà un peu pour cette métaphore qui, j'espère, te permettra de mieux comprendre ces fameux Runtime.
03:12
Avec le premier Runtime qui est celui de Node.js.
03:17
Ce Runtime a été introduit en 2019.
03:19
et il permet d'exécuter du JavaScript sur une machine, que ce soit une distribution Linux, macOS ou Windows.
03:27
Ce script, il va permettre notamment de, par exemple, créer un serveur web, créer une API REST, build une application web, ça on verra ce mot clé build plus tard, créer des petits scripts qui ont accès aux fichiers de ton ordinateur.
03:41
Par exemple, si tu as envie d'un script qui supprime tous les fichiers qui finissent par .js, tu pourrais le faire en utilisant JS.
03:47
automatiser des tâches répétitives sur ton ordi et gérer les dépendances avec NPM qu'on verra dans la suite.
03:54
En fait, Node.js, il a des accès, c'est un environnement, c'est un runtime différent qui a des accès différents, notamment au file system qui représente les différents fichiers que tu as sur ton ordinateur.
04:05
et il a accès à HTTP du coup pour créer un serveur sur ton ordinateur et plein d'autres choses que je ne vais pas décrire immédiatement.
04:12
Et ensuite, on a les Runtime Web, notamment le Runtime V8 qui est celui utilisé par Chrome et le Runtime Javascript Core qui est celui utilisé par Safari.
04:24
Encore une fois, ces deux Runtime sont ultra similaires.
04:27
Cependant, il y a quelques différences qui expliquent pourquoi on demande souvent aux personnes de tester sur l'app.
04:33
Safari et sur Chrome, voici pourquoi.
04:35
Voilà, bravo, tu as découvert cette subtilité.
04:37
Et ces deux runtimes sont faits pour être exécutés dans le web, comme on l'avait vu avec le schéma qui était juste ici, c'est-à-dire ils permettent de créer des applications web.
04:45
Ici, j'ai créé des applications web, mais ils permettent juste d'exécuter du GIS.
04:50
Et c'est le fait d'exécuter du GIS qui, derrière, permet d'exécuter des applications web, qu'on soit clair.
04:56
Lui, il va avoir des accès différents que n'a pas Node.js.
04:59
Par exemple, accès au DOM pour interagir avec les éléments, accès à Windows pour modifier les pages, accès à Navigation pour changer d'URL.
05:08
Et ce sont juste des exemples.
05:09
Il y a un nombre fini de différences, mais il y en a beaucoup.
05:11
Ces deux logiciels utilisent tous le langage, l'artiste, comme je t'avais présenté, JavaScript, qui lui-même suit les normes ECMAScript.
05:21
Voici pour ces détails concernant ce runtime ECMAScript, on l'avait vu avant, c'est juste des normes définies par une agence qui définit justement des normes.
05:30
Alors, je ne sais pas si je t'ai perdu.
05:32
Et si je t'es perdu, je tiens à m'en excuser.
05:35
Regarde cette vidéo à la fin, regarde cette vidéo plus tard, il n'y a aucun souci.
05:39
Cette vidéo, elle n'est pas là pour t'apprendre des choses sur l'instantanéité.
05:43
Enfin, elle n'est pas là pour te donner des compétences maintenant.
05:45
Elle est là pour nourrir ton esprit, pour te dire des mots que je vais réutiliser dans la suite.
05:50
Et c'est avec la répétition de ces mots tout au long de la formation que tu vas permettre de les imprégner, de les approprier et de pouvoir toi-même les réutiliser et avoir une compréhension beaucoup plus profonde de ce qu'est le JavaScript.