De Javascript à NodeJS

Technique

18 déc, 2017

Certains l’adorent voire l’idolâtrent, d’autres le détestent ou l’exècrent… Ce qui est sûr c’est que Javascript a fait couler de l’encre depuis ses débuts et si vous travaillez dans le monde du web il est impossible que ce nom vous soit complètement étranger.
Nous allons voir ici comment ce langage a fait son petit bout de chemin pour en arriver à nous proposer le NodeJs dont tout le monde parle aujourd’hui.

Javascript : sa vie, son oeuvre

Les origines, 60 ans d’histoire.

Au début, on s’en doute bien, il n’y avait rien. Ce n’est qu’en 1958 que les laboratoires BELL créent le premier Modem permettant de transmettre des données binaires par le biais d’une ligne téléphonique. Nous sommes encore loin de pouvoir afficher la page que vous lisez actuellement.

image5 De Javascript à NodeJS
Illustration tentant de représenter fidèlement le Rien

La machine est lancée

1983 : l’International Network Working Group adopte le protocole TCP/IP et le mot « Internet » voit officiellement le jour. La révolution du “tout connecté” est en marche mais ce ne sera qu’en 1989 que le langage balisé HTML fera son apparition.
Semblable à des feuilles A4 numérisées, l’HTML pur fait son bout de chemin mais le besoin de déporter une partie de l’intelligence du serveur au client se fait ressentir et, en 1995, Javascript, grâce à Brendan Eich, fait son apparition. C’est le début d’une nouvelle ère.

image4 De Javascript à NodeJS
Protérozoïque HTML & Javascript évoluant dans leur milieu naturel

Un écosystème se crée

image2 De Javascript à NodeJS
Le Paléozoïque Javascript et son écosystème

Javascript fait son bout de chemin. Quelques personnes l’utilisent, les besoins grandissent. Inévitablement en même temps qu’une communauté se crée, tout l’écosystème est chamboulé et nous retiendrons de cette époque les outils qui persistent encore aujourd’hui comme jQuery, Prototype, Dojo ou encore Mootools

Premiers pas en dehors du web (Mésozoïque)

Ça y est, Javascript sort des navigateurs web et on le retrouve dans pleins d’autres applications. Il sert notamment de :

– langage de script dans les fichiers PDF
– langage de scripting d’applications parmi lesquelles, LibreOffice, Adobe Photoshop et InDesign
– langage de scripting ou de développement sur différents OS/Bureaux comme Gnome, KDE, OSX ou Windows 8, 8.1 et 10
– langage de requête et de développement dans certaines bases de données NoSQL
– NodeJS

image3 De Javascript à NodeJS
Mésozoïque Javascript : exploration du monde

NodeJS, qui est-il vraiment ?

C’est ce dernier dérivé sur lequel nous allons nous concentrer.
Il se base sur le moteur d’exécution V8 de Google ce qui a donné un gros coup de renouveau au langage avec des performances jusque là jamais égalées pour ce langage.
Il facilite la création de requêtes asynchrones et se trouve bien adapté pour gérer le nombre titanesque de requêtes et de données qu’il peut être demandé de traiter actuellement.

giphy De Javascript à NodeJSServeur essayant de répondre aux requêtes client

Côté technique

Véritable couteau suisse du web, grâce à sa communauté nous pouvons nous en servir de :
– Générateur des sites statiques

– Système de gestion de contenu (CMS)
– Applications temps réel
– Générateur d’APIs
– Transpileurs
– Gestionnaire de tâches
– Packageur de modules
– Gestionnaire de paquets, etc.


Sa grande force ? La gestion asynchrone des événements !

En effet, cela a permis à beaucoup de serveurs de doubler leur capacité de réception de requêtes à la seconde mais aussi de diminuer le temps de réponse à ces dernières de façon significative.

image6 De Javascript à NodeJS
File d’attente avant la gestion asynchrone de NodeJS

Il a donc trouvé sa place dans de nombreux domaines d’application comme l’e-commerce (ex : Groupon), le traitement des paiements (PayPal), le streaming de données (Netflix), les réseaux sociaux et professionnels (LikedIn) et bien d’autres.

Côté stratégique

Les avantages techniques ne sont pas les seuls aspects à prendre en compte dans un projet et NodeJS présente également de ce côté-là des avantages intéressants.

FullStack

Habituellement, dans un projet utilisant des technologies différentes en front-end et back-end il faut gérer 2 équipes dédiées… Avec une stack full Javascript, la difficulté à gérer deux équipes disparaît. Toute l’équipe de développement peut intervenir sur l’intégralité du code et il est plus facile d’échanger sur les stratégies à adopter puisque tout le monde maîtrise une technologie commune : le Javascript.

Grande communauté

NodeJS rassemble une communauté grande et passionnée. Des Meetups ou des conférences ont lieu dans toutes les grandes villes. D’autre part, des articles spécialisés et des cours en lignes sont en libre accès sur le web.
Un gestionnaire de paquet (npm) existe. Il est très complet et le nombre de paquets ne cesse d’augmenter. Cela offre une grande force de réutilisation permettant de booster les vitesses de production.

Bons outils de développement

Il existe de nombreux outils de bonne qualité pour faciliter le développement et la maintenance d’applications. On compte par exemple des inspecteurs évolués (celui du navigateur chrome est très pratique), des formateurs de code s’intégrant très souvent dans votre éditeur préféré, des linters…

Technologie stable et éprouvée

NodeJS n’est plus une technologie embryonnaire. Elle est utilisée et approuvée par les géants du web : une politique stricte a été mise en place concernant les mises à jour et le suivi des versions, avec un suivi actif sur les 18 mois suivant une mise à jour majeure puis une maintenance sur les 12 mois suivants.

 

 

NodeJS est, pour le moment, un bon choix pour le web. Il réconcilie vos développeurs, facilite le management, offre des performances optimales, dispose d’une communauté super active, d’outils à la pointe et d’une stabilité assurée.
Toutefois il ne faut pas oublier que les besoins et les technologies évoluent très vite. Nous ne sommes pas à l’abri d’un bouleversement des besoins du public risquant de détroner les applications titanesques que nous connaissons aujourd’hui. Peut être au profit de solutions plus modestes qui évolueront elles aussi dans le temps.

image1 De Javascript à NodeJS
L’informatique face aux besoins radicaux du public

 

Sources:

https://www-sop.inria.fr/acacia/personnel/Fabien.Gandon/lecture/mass1_internet2000/history/
https://histoiredutemps.free.fr/terrestre/ere_geologique.html
es7 : https://tc39.github.io/ecma262/

Laisser un commentaire.