SlideShare une entreprise Scribd logo
une introduction...

ApéroTech Oxalide, 24 juin 2013
(version légèrement modifiée, avec plus de texte, pour l’adapter à la mise en ligne)

pierre.lancien@toxicode.fr
Qu’est-ce que c’est ?
JavaScript

JavaScript, un langage qui a été connu dans les années
90 pour servir à faire des animations comme :
Welcome to my
homepage !!!
They are so cute !

I love kittens !!!!
photo : www.christianholmer.com
JavaScript, ça ressemble à :
JavaScript
Hors du
navigateur

accès aux fichiers, au reste de la machine
=> on pourrait par exemple faire un logiciel de

conversion d’image, logiciel de backup...
JavaScript
Hors du
navigateur

Avec des
fonctions pour
serveurs

JS

JS

JS
Pourquoi en parle-t-on ?
JavaScript
Hors du
navigateur

Avec des
fonctions pour
serveurs
Utilise V8
JavaScript
Hors du
navigateur

Avec des
fonctions pour
serveurs

Événementiel
Utilise V8
Événementiel
JavaScript
Hors du
navigateur

Asynchrone

Avec des
fonctions pour
serveurs

Événementiel
Utilise V8
Synchrone
Appel HTTP
Asynchrone : Illustration
imaginons un serveur web
qui lorsque vous l’interrogez,
va demander à son tour à Twitter
les derniers tweets de tel utilisateur

Voyons ce qui se passe sur un serveur «normal», synchrone
Synchrone
Appel HTTP

Serveur bloqué
pendant ce temps
Synchrone
Autre appel HTTP

Mis en attente...
Asynchrone

le serveur n’est pas bloqué pendant l’appel à Twitter
Synchrone

Asynchrone
Synchrone

Asynchrone
Un exemple très simple
Exemple
L’écosystème
Est-ce mûr ?
L’écosystème nodeJS
• nodeJS autosuffisant en serveur web
(vs php => Apache)

• des modules NPM

express, jade, socket.io, mocha

• la communauté, très dynamique mais avec
un aspect expérimental fort
JavaScript
Hors du
navigateur

Asynchrone

Avec des
fonctions pour
serveurs

Événementiel
Utilise V8
Le quotidien du développeur nodeJS,
c’est avant tout du :

Asynchrone

JavaScript

Hors du
navigateur

Avec des
fonctions pour
serveurs

Événementiel
Utilise V8
Remise en contexte :
l’histoire de JavaScript
JavaScript
1995

N’est pas un mini

Un nom de langage assez mal choisi, qui l’a desservi
JavaScript
1996

vs
La guerre des navigateurs porte un coup fatal au JS
JavaScript
1999-2000

Macromedia / Adobe Flash
Remplace JavaScript comme moyen phare pour rendre les
pages web dynamiques
JavaScript
2004-2007

Asynchronous JavaScript And XML
Relance un intérêt pour JavaScript
JavaScript
2007-2008

Surcouche gérant la compatibilité :
permet d’amoindrir les désastres causés
par guerre des navigateurs.
JavaScript
2008-2010

V8
Le JavaScript devient rapide,
enclenchant une compétition entre navigateurs
JavaScript
2010-2012

Apple en refusant Flash,
en accélère l’adoption
sur mobile

HTML 5 révolutionne le web,
le grand pilote central, c’est JavaScript
JavaScript
2010-...

Backbone
Quand l’utiliser ?
La réponse découle des caractéristiques déjà évoquées :
JavaScript
Hors du
navigateur

Asynchrone

Événementiel
Utilise V8

Avec des
fonctions pour
serveurs

... mais aussi de l’histoire de JavaScript
Quand l’utiliser ?

JavaScript

lorsqu’on aime JavaScript...
Quand l’utiliser ?

JS

JS

Lorsqu’il est intéressant d’avoir le même langage côté serveur & client
Quand l’utiliser ?

Appel de WebServices
Quand l’utiliser ?

Serveur d’API
surtout JSON

Utilise V8

Pages web simples
Quand l’utiliser ?
Avec des
fonctions pour
serveurs

manipulations http bas niveau

TCP / UDP
Utilise V8

Streaming
Quand l’utiliser ?

Temps réel / websockets
Quand ne PAS l’utiliser ?
Quand ne PAS l’utiliser ?

• Projets nécessitant frameworks pour
architecture

• Gros projets en terme de développeurs
• Calculs très gourmands en CPU
• Faire votre blog...
Qui l’utilise ?
Ebay
Mozilla

Walmart
Yahoo!
LinkedIn
Pinterest
Exemple : LinkedIn
• Rails => node.js
• rapidité => x20
• nombre de serveurs : 30 => 3
NodeJS en est probablement ici
Le problème de
recrutement
Rappelez vous les mauvais départs de JavaScript...

vs
Le problème de
recrutement
• très grosse majorité de novices
• ne savent pas qu’ils sont novices
• JQuery n’es pas JavaScript
Test : demandez leur ce qu’est un «prototype» !
Le problème de
recrutement
• les programmeurs expérimentés dans
d’autres langages ont des a priori sur
JavaScript

• La programmation asynchrone est

particulière, c’est une manière différente de
penser et de coder
Livre conseillé pour prendre
un peu de recul sur JavaScript
Autant pour ses enseignements
et conseils sur le langage que
pour la démarche intellectuelle
de l’auteur
Les chapitres très intéressants :
1, 3, 4 & 5
Merci !

pierre.lancien@toxicode.fr

Conseils, prestations et
formations en JS avancé

Contenu connexe

NodeJs, une introduction