SlideShare a Scribd company logo
From ES6 to Javascript 2.0 
What use today ? 
Jonathan Rivalan
From ES6 to Javascript 2.0 
● Introduction / a brief history 
→ What is the difference between EcmaScript and JS ? 
● Methods compatibility 
→ What is the global browser support ? 
● Use Cases 
- promises 
● Next 
OWF 2014 – 31 Octobre 2014 2
From ES6 to Javascript 2.0 
● Introduction / a brief history 
→ EcmaScript creation in 1996 
→ ES5 standard submission in 2009 
● What is the difference between EcmaScript and 
Javascript ? 
→ EcmaScript is the language when Javascript, 
jscript and as3 are dialects of it 
→ today mostly none, except for the browser 
support 
OWF 2014 – 31 Octobre 2014 3
From ES6 to Javascript 2.0 
● Methods compatibility 
→ a rich version with more than 100 new features 
_ http://kangax.github.io/compat-table/es6/ 
→ currently limited support with a bit less than 
50 features, mostly oriented around the number, 
math objects and collections (~30 features) 
→ mostly no support on IE11- and Opera last 
version 
→ various and numerous ES5 polyfills 
_http://addyosmani.com/blog/ecmascript-6-resources-for-the-curious-javascripter/ 
OWF 2014 – 31 Octobre 2014 4
From ES6 to Javascript 2.0 
● Use case : promises 
→ ES6 star feature, allows the rigging of 
asynchronous scenarios 
→ a promise represents the maybe result of an 
asynchronous operation, usable through the 
.then method, which will return the value of the 
resolved promise, or the reason in a revoked 
case. 
Promises = linear programming + readability 
OWF 2014 – 31 Octobre 2014 5
From ES6 to Javascript 2.0 
● Use case : promises, .then 
● Cas d'usage : les promises 
function asyncFunction () { 
function asyncFunction () { 
return new Promise(function(resolve,reject) { 
return new Promise(function(resolve,reject) { 
/*asynchronous actions*/ 
resolve(successObj) //WIN 
reject(errorMsg) //FAIL 
/*asynchronous actions*/ 
resolve(successObj) //WIN 
reject(errorMsg) //FAIL 
}) 
}) 
} 
var successHandler = function(successObj){ 
} 
var successHandler = function(successObj){ 
console.log("I launch if won !"); 
console.log("I launch if won !"); 
} 
var errorHandler = function(errorMsg){ 
} 
var errorHandler = function(errorMsg){ 
console.log("I launch if failed !"); 
console.log("I launch if failed !"); 
} 
asyncFunction.then(successHandler,errorHandler); 
} 
asyncFunction.then(successHandler,errorHandler); 
OWF 2014 – 31 Octobre 2014 6
From ES6 to Javascript 2.0 
● Use case : promises, .catch 
function asyncFunction () { 
function asyncFunction () { 
return new Promise(function(resolve,reject) { 
return new Promise(function(resolve,reject) { 
/*asynchronous actions*/ 
resolve(successObj) //WIN 
reject(errorMsg) //FAIL 
/*asynchronous actions*/ 
resolve(successObj) //WIN 
reject(errorMsg) //FAIL 
● Cas d'usage : les promises 
}) 
}) 
} 
var successHandler = function(successObj){ 
} 
var successHandler = function(successObj){ 
/*stuff*/ 
/*stuff*/ 
} 
var errorHandler = function(errorMsg){ 
} 
var errorHandler = function(errorMsg){ 
/*stuff*/ 
/*stuff*/ 
} 
var correctError = function(obj){ 
} 
var correctError = function(obj){ 
/*recovery try*/ 
return obj ; 
/*recovery try*/ 
return obj ; 
} 
asyncFunction.then(successHandler) 
.catch(correctError) 
.then(successHandler) 
.catch(errorHandler); 
} 
asyncFunction.then(successHandler) 
.catch(correctError) 
.then(successHandler) 
.catch(errorHandler); 
OWF 2014 – 31 Octobre 2014 7
From ES6 to Javascript 2.0 
- then 
- catch 
- then 
- catch 
OWF 2014 – 31 Octobre 2014 8
From ES6 to Javascript 2.0 
● Use case : promises, .race 
● Cas d'usage : les promises 
function asyncFunction () { 
function asyncFunction () { 
return new Promise(function(resolve,reject) { 
return new Promise(function(resolve,reject) { 
/*asynchronous actions*/ 
resolve(successObj) //WIN 
reject(errorMsg) //FAIL 
/*asynchronous actions*/ 
resolve(successObj) //WIN 
reject(errorMsg) //FAIL 
}) 
}) 
} 
var PromiseA = asyncFunction(someParams); 
var PromiseB = asyncFunction(otherParams); 
Promise.race([PromiseA, PromiseB]) 
.then(function(obj){console.log(obj+'was served first!')}); 
} 
var PromiseA = asyncFunction(someParams); 
var PromiseB = asyncFunction(otherParams); 
Promise.race([PromiseA, PromiseB]) 
.then(function(obj){console.log(obj+'was served first!')}); 
OWF 2014 – 31 Octobre 2014 9
From ES6 to Javascript 2.0 
● Use case : promises, .all 
● Cas d'usage : les promises 
var p = new Promise(function(resolve, reject) { resolve(3); }); 
Promise.all([true, p]).then(function(values) { 
// values == [ true, 3 ] 
}); 
var p = new Promise(function(resolve, reject) { resolve(3); }); 
Promise.all([true, p]).then(function(values) { 
// values == [ true, 3 ] 
}); 
OWF 2014 – 31 Octobre 2014 10
From ES6 to Javascript 2.0 
● Use case : promises 
→ standard exploration : 
_https://promisesaplus.com/ 
→ strong polyfill : 
_https://github.com/tildeio/rsvp.js/ 
OWF 2014 – 31 Octobre 2014 11
From ES6 to Javascript 2.0 
● Next ? 
Numerous interesting features regarding classes, 
generators, modules… and so on ! 
To go further : 
→ have a peek at the standard 
_http://www.ecma-international.org/ 
→ full es6 nowadays features review 
_http://code.tutsplus.com/articles/use-ecmascript-6-today--net-31582 
OWF 2014 – 31 Octobre 2014 12
From ES6 to Javascript 2.0 
Jonathan Rivalan 
> jonathan.rivalan@alterway.fr 
> jonathan.rivalan@gmail.com 
OWF 2014 – 31 Octobre 2014 13

More Related Content

What's hot

Ob1k presentation at Java.IL
Ob1k presentation at Java.ILOb1k presentation at Java.IL
Ob1k presentation at Java.IL
Eran Harel
 
Mage Titans - Workshop - UI Components
Mage Titans - Workshop - UI ComponentsMage Titans - Workshop - UI Components
Mage Titans - Workshop - UI Components
vkorotun
 
Constructor in detail
Constructor in detailConstructor in detail
Constructor in detail
HSS-Software House
 
Understanding of node
Understanding of nodeUnderstanding of node
Understanding of node
Mudassar Ali Sahil
 
Callbacks and control flow in Node js
Callbacks and control flow in Node jsCallbacks and control flow in Node js
Callbacks and control flow in Node js
Thomas Roch
 
CasperJS and PhantomJS for Automated Testing
CasperJS and PhantomJS for Automated TestingCasperJS and PhantomJS for Automated Testing
CasperJS and PhantomJS for Automated Testing
X-Team
 
非同期javascriptの過去と未来
非同期javascriptの過去と未来非同期javascriptの過去と未来
非同期javascriptの過去と未来
Taketoshi 青野健利
 
Accessing Mule variables in groovy
Accessing Mule variables in groovyAccessing Mule variables in groovy
Accessing Mule variables in groovy
Anirban Sen Chowdhary
 
Elm architecture
Elm architectureElm architecture
Elm architecture
Slobodan Blazeski
 
[Js hcm] Java script- Testing the awesome
[Js hcm] Java script- Testing the awesome[Js hcm] Java script- Testing the awesome
[Js hcm] Java script- Testing the awesome
JavaScript Meetup HCMC
 
Basics of Node.js
Basics of Node.jsBasics of Node.js
Basics of Node.js
Alper Unal
 
Modern frontend in react.js
Modern frontend in react.jsModern frontend in react.js
Modern frontend in react.js
Abdulsattar Mohammed
 
TsWorkflow
TsWorkflowTsWorkflow
TsWorkflow
Yongwu Choi
 
Kotlin Coroutines and Rx
Kotlin Coroutines and RxKotlin Coroutines and Rx
Kotlin Coroutines and Rx
Shaul Rosenzwieg
 
Messaging with the Docker
Messaging with the DockerMessaging with the Docker
Messaging with the Docker
Henryk Konsek
 
Reactive Streams Condensed
Reactive Streams CondensedReactive Streams Condensed
Reactive Streams Condensed
Artur Skowroński
 
[JCConf 2017] Reactive Programming with Reactor
[JCConf 2017] Reactive Programming with Reactor[JCConf 2017] Reactive Programming with Reactor
[JCConf 2017] Reactive Programming with Reactor
Swanky Hsiao
 
Asynchronous javascript
 Asynchronous javascript Asynchronous javascript
Asynchronous javascript
Eman Mohamed
 
RxJava Applied
RxJava AppliedRxJava Applied
RxJava Applied
Igor Lozynskyi
 
Groovy in Mule
Groovy in MuleGroovy in Mule
Groovy in Mule
Praneethchampion
 

What's hot (20)

Ob1k presentation at Java.IL
Ob1k presentation at Java.ILOb1k presentation at Java.IL
Ob1k presentation at Java.IL
 
Mage Titans - Workshop - UI Components
Mage Titans - Workshop - UI ComponentsMage Titans - Workshop - UI Components
Mage Titans - Workshop - UI Components
 
Constructor in detail
Constructor in detailConstructor in detail
Constructor in detail
 
Understanding of node
Understanding of nodeUnderstanding of node
Understanding of node
 
Callbacks and control flow in Node js
Callbacks and control flow in Node jsCallbacks and control flow in Node js
Callbacks and control flow in Node js
 
CasperJS and PhantomJS for Automated Testing
CasperJS and PhantomJS for Automated TestingCasperJS and PhantomJS for Automated Testing
CasperJS and PhantomJS for Automated Testing
 
非同期javascriptの過去と未来
非同期javascriptの過去と未来非同期javascriptの過去と未来
非同期javascriptの過去と未来
 
Accessing Mule variables in groovy
Accessing Mule variables in groovyAccessing Mule variables in groovy
Accessing Mule variables in groovy
 
Elm architecture
Elm architectureElm architecture
Elm architecture
 
[Js hcm] Java script- Testing the awesome
[Js hcm] Java script- Testing the awesome[Js hcm] Java script- Testing the awesome
[Js hcm] Java script- Testing the awesome
 
Basics of Node.js
Basics of Node.jsBasics of Node.js
Basics of Node.js
 
Modern frontend in react.js
Modern frontend in react.jsModern frontend in react.js
Modern frontend in react.js
 
TsWorkflow
TsWorkflowTsWorkflow
TsWorkflow
 
Kotlin Coroutines and Rx
Kotlin Coroutines and RxKotlin Coroutines and Rx
Kotlin Coroutines and Rx
 
Messaging with the Docker
Messaging with the DockerMessaging with the Docker
Messaging with the Docker
 
Reactive Streams Condensed
Reactive Streams CondensedReactive Streams Condensed
Reactive Streams Condensed
 
[JCConf 2017] Reactive Programming with Reactor
[JCConf 2017] Reactive Programming with Reactor[JCConf 2017] Reactive Programming with Reactor
[JCConf 2017] Reactive Programming with Reactor
 
Asynchronous javascript
 Asynchronous javascript Asynchronous javascript
Asynchronous javascript
 
RxJava Applied
RxJava AppliedRxJava Applied
RxJava Applied
 
Groovy in Mule
Groovy in MuleGroovy in Mule
Groovy in Mule
 

Similar to Open World Forum 2014 : From ES6 to Javascript 2.0. What use today ? par Jonathan Rivalan

Async js - Nemetschek Presentaion @ HackBulgaria
Async js - Nemetschek Presentaion @ HackBulgariaAsync js - Nemetschek Presentaion @ HackBulgaria
Async js - Nemetschek Presentaion @ HackBulgaria
HackBulgaria
 
JS class slides (2016)
JS class slides (2016)JS class slides (2016)
JS class slides (2016)
Yves-Emmanuel Jutard
 
JS Class 2016
JS Class 2016JS Class 2016
JS Class 2016
Yves-Emmanuel Jutard
 
Asynchronous development in JavaScript
Asynchronous development  in JavaScriptAsynchronous development  in JavaScript
Asynchronous development in JavaScript
Amitai Barnea
 
Promises & limbo
Promises & limboPromises & limbo
Promises & limbo
Sylvain Faucherand
 
Advanced JavaScript Development
Advanced JavaScript DevelopmentAdvanced JavaScript Development
Advanced JavaScript Development
Jussi Pohjolainen
 
JavaScript and AJAX
JavaScript and AJAXJavaScript and AJAX
JavaScript and AJAX
Frane Bandov
 
Async Frontiers
Async FrontiersAsync Frontiers
Async Frontiers
Domenic Denicola
 
Java script for web developer
Java script for web developerJava script for web developer
Java script for web developer
Chalermpon Areepong
 
Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...
Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...
Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...
GITS Indonesia
 
Promises - Asynchronous Control Flow
Promises - Asynchronous Control FlowPromises - Asynchronous Control Flow
Promises - Asynchronous Control Flow
Henrique Barcelos
 
You promise?
You promise?You promise?
You promise?
IT Weekend
 
Tech friday 22.01.2016
Tech friday 22.01.2016Tech friday 22.01.2016
Tech friday 22.01.2016
Poutapilvi Web Design
 
Javascript Promises/Q Library
Javascript Promises/Q LibraryJavascript Promises/Q Library
Javascript Promises/Q Library
async_io
 
Training javascript 2012 hcmut
Training javascript 2012 hcmutTraining javascript 2012 hcmut
Training javascript 2012 hcmut
University of Technology
 
Advanced JavaScript - Internship Presentation - Week6
Advanced JavaScript - Internship Presentation - Week6Advanced JavaScript - Internship Presentation - Week6
Advanced JavaScript - Internship Presentation - Week6
Devang Garach
 
ES6: The Awesome Parts
ES6: The Awesome PartsES6: The Awesome Parts
ES6: The Awesome Parts
Domenic Denicola
 
Modern JS with ES6
Modern JS with ES6Modern JS with ES6
Modern JS with ES6
Rifatul Islam
 
Understanding Asynchronous JavaScript
Understanding Asynchronous JavaScriptUnderstanding Asynchronous JavaScript
Understanding Asynchronous JavaScript
jnewmanux
 
JavaScript promise
JavaScript promiseJavaScript promise
JavaScript promise
eslam_me
 

Similar to Open World Forum 2014 : From ES6 to Javascript 2.0. What use today ? par Jonathan Rivalan (20)

Async js - Nemetschek Presentaion @ HackBulgaria
Async js - Nemetschek Presentaion @ HackBulgariaAsync js - Nemetschek Presentaion @ HackBulgaria
Async js - Nemetschek Presentaion @ HackBulgaria
 
JS class slides (2016)
JS class slides (2016)JS class slides (2016)
JS class slides (2016)
 
JS Class 2016
JS Class 2016JS Class 2016
JS Class 2016
 
Asynchronous development in JavaScript
Asynchronous development  in JavaScriptAsynchronous development  in JavaScript
Asynchronous development in JavaScript
 
Promises & limbo
Promises & limboPromises & limbo
Promises & limbo
 
Advanced JavaScript Development
Advanced JavaScript DevelopmentAdvanced JavaScript Development
Advanced JavaScript Development
 
JavaScript and AJAX
JavaScript and AJAXJavaScript and AJAX
JavaScript and AJAX
 
Async Frontiers
Async FrontiersAsync Frontiers
Async Frontiers
 
Java script for web developer
Java script for web developerJava script for web developer
Java script for web developer
 
Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...
Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...
Fundamental Node.js (Workshop bersama Front-end Developer GITS Indonesia, War...
 
Promises - Asynchronous Control Flow
Promises - Asynchronous Control FlowPromises - Asynchronous Control Flow
Promises - Asynchronous Control Flow
 
You promise?
You promise?You promise?
You promise?
 
Tech friday 22.01.2016
Tech friday 22.01.2016Tech friday 22.01.2016
Tech friday 22.01.2016
 
Javascript Promises/Q Library
Javascript Promises/Q LibraryJavascript Promises/Q Library
Javascript Promises/Q Library
 
Training javascript 2012 hcmut
Training javascript 2012 hcmutTraining javascript 2012 hcmut
Training javascript 2012 hcmut
 
Advanced JavaScript - Internship Presentation - Week6
Advanced JavaScript - Internship Presentation - Week6Advanced JavaScript - Internship Presentation - Week6
Advanced JavaScript - Internship Presentation - Week6
 
ES6: The Awesome Parts
ES6: The Awesome PartsES6: The Awesome Parts
ES6: The Awesome Parts
 
Modern JS with ES6
Modern JS with ES6Modern JS with ES6
Modern JS with ES6
 
Understanding Asynchronous JavaScript
Understanding Asynchronous JavaScriptUnderstanding Asynchronous JavaScript
Understanding Asynchronous JavaScript
 
JavaScript promise
JavaScript promiseJavaScript promise
JavaScript promise
 

More from ALTER WAY

Drupagora 2019 : Drupal, accessibilité et RGAA
Drupagora 2019 : Drupal, accessibilité et RGAADrupagora 2019 : Drupal, accessibilité et RGAA
Drupagora 2019 : Drupal, accessibilité et RGAA
ALTER WAY
 
#sharingLille : L'Open Source pour une société numérique ouverte, transparent...
#sharingLille : L'Open Source pour une société numérique ouverte, transparent...#sharingLille : L'Open Source pour une société numérique ouverte, transparent...
#sharingLille : L'Open Source pour une société numérique ouverte, transparent...
ALTER WAY
 
Flyer promotions Alter Way Formation Avril Mai 2015
Flyer promotions Alter Way Formation Avril Mai 2015Flyer promotions Alter Way Formation Avril Mai 2015
Flyer promotions Alter Way Formation Avril Mai 2015
ALTER WAY
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ? Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
ALTER WAY
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
ALTER WAY
 
Open World Forum 2014 : Guerre des IAAS par Stéphane Vincent
Open World Forum 2014 : Guerre des IAAS par Stéphane Vincent Open World Forum 2014 : Guerre des IAAS par Stéphane Vincent
Open World Forum 2014 : Guerre des IAAS par Stéphane Vincent
ALTER WAY
 
Séminaire Big Data Alter Way - Elasticsearch - octobre 2014
Séminaire Big Data Alter Way - Elasticsearch - octobre 2014Séminaire Big Data Alter Way - Elasticsearch - octobre 2014
Séminaire Big Data Alter Way - Elasticsearch - octobre 2014
ALTER WAY
 
Meetup Drupal Paris : Connexion Drupal et Elasticsearch
Meetup Drupal Paris : Connexion Drupal et Elasticsearch Meetup Drupal Paris : Connexion Drupal et Elasticsearch
Meetup Drupal Paris : Connexion Drupal et Elasticsearch ALTER WAY
 
Solutions Linux 2014 – Alter Way : Révélations sur les pratiques de la NSA
Solutions Linux 2014 – Alter Way : Révélations sur les pratiques de la NSASolutions Linux 2014 – Alter Way : Révélations sur les pratiques de la NSA
Solutions Linux 2014 – Alter Way : Révélations sur les pratiques de la NSA
ALTER WAY
 
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
ALTER WAY
 
Solutions Linux 2014 - Alter Way : Évolutions des back offices des CMS/CMF
Solutions Linux 2014 - Alter Way : Évolutions des back offices des CMS/CMF Solutions Linux 2014 - Alter Way : Évolutions des back offices des CMS/CMF
Solutions Linux 2014 - Alter Way : Évolutions des back offices des CMS/CMF
ALTER WAY
 
Elasticsearch : petit déjeuner du 13 mars 2014
Elasticsearch : petit déjeuner du 13 mars 2014Elasticsearch : petit déjeuner du 13 mars 2014
Elasticsearch : petit déjeuner du 13 mars 2014
ALTER WAY
 
Alter way-wordcamp-paris-2014
Alter way-wordcamp-paris-2014Alter way-wordcamp-paris-2014
Alter way-wordcamp-paris-2014ALTER WAY
 
Présentation Drupal - Global Training Days
Présentation Drupal - Global Training DaysPrésentation Drupal - Global Training Days
Présentation Drupal - Global Training Days
ALTER WAY
 
OpenStack havana tour d'horizon
OpenStack havana tour d'horizonOpenStack havana tour d'horizon
OpenStack havana tour d'horizonALTER WAY
 
H2O, le Cloud par Alter Way
H2O, le Cloud par Alter WayH2O, le Cloud par Alter Way
H2O, le Cloud par Alter Way
ALTER WAY
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php ALTER WAY
 
Reprise sur incident , par Jean Marc Fontaine
Reprise sur incident , par Jean Marc FontaineReprise sur incident , par Jean Marc Fontaine
Reprise sur incident , par Jean Marc Fontaine
ALTER WAY
 
Organiser efficacement son depot de code par Jean Marc Fontaine
Organiser efficacement son depot de code par Jean Marc FontaineOrganiser efficacement son depot de code par Jean Marc Fontaine
Organiser efficacement son depot de code par Jean Marc Fontaine
ALTER WAY
 
Objets patterns et genie logiciel , par Julien Pauli
Objets patterns et genie logiciel , par Julien PauliObjets patterns et genie logiciel , par Julien Pauli
Objets patterns et genie logiciel , par Julien Pauli
ALTER WAY
 

More from ALTER WAY (20)

Drupagora 2019 : Drupal, accessibilité et RGAA
Drupagora 2019 : Drupal, accessibilité et RGAADrupagora 2019 : Drupal, accessibilité et RGAA
Drupagora 2019 : Drupal, accessibilité et RGAA
 
#sharingLille : L'Open Source pour une société numérique ouverte, transparent...
#sharingLille : L'Open Source pour une société numérique ouverte, transparent...#sharingLille : L'Open Source pour une société numérique ouverte, transparent...
#sharingLille : L'Open Source pour une société numérique ouverte, transparent...
 
Flyer promotions Alter Way Formation Avril Mai 2015
Flyer promotions Alter Way Formation Avril Mai 2015Flyer promotions Alter Way Formation Avril Mai 2015
Flyer promotions Alter Way Formation Avril Mai 2015
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ? Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
 
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?Alter Way's digitalks - Docker  : des conteneurs pour tout faire ?
Alter Way's digitalks - Docker : des conteneurs pour tout faire ?
 
Open World Forum 2014 : Guerre des IAAS par Stéphane Vincent
Open World Forum 2014 : Guerre des IAAS par Stéphane Vincent Open World Forum 2014 : Guerre des IAAS par Stéphane Vincent
Open World Forum 2014 : Guerre des IAAS par Stéphane Vincent
 
Séminaire Big Data Alter Way - Elasticsearch - octobre 2014
Séminaire Big Data Alter Way - Elasticsearch - octobre 2014Séminaire Big Data Alter Way - Elasticsearch - octobre 2014
Séminaire Big Data Alter Way - Elasticsearch - octobre 2014
 
Meetup Drupal Paris : Connexion Drupal et Elasticsearch
Meetup Drupal Paris : Connexion Drupal et Elasticsearch Meetup Drupal Paris : Connexion Drupal et Elasticsearch
Meetup Drupal Paris : Connexion Drupal et Elasticsearch
 
Solutions Linux 2014 – Alter Way : Révélations sur les pratiques de la NSA
Solutions Linux 2014 – Alter Way : Révélations sur les pratiques de la NSASolutions Linux 2014 – Alter Way : Révélations sur les pratiques de la NSA
Solutions Linux 2014 – Alter Way : Révélations sur les pratiques de la NSA
 
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
Solutions Linux 2014 – Alter Way : Industrialisation des développements en Ja...
 
Solutions Linux 2014 - Alter Way : Évolutions des back offices des CMS/CMF
Solutions Linux 2014 - Alter Way : Évolutions des back offices des CMS/CMF Solutions Linux 2014 - Alter Way : Évolutions des back offices des CMS/CMF
Solutions Linux 2014 - Alter Way : Évolutions des back offices des CMS/CMF
 
Elasticsearch : petit déjeuner du 13 mars 2014
Elasticsearch : petit déjeuner du 13 mars 2014Elasticsearch : petit déjeuner du 13 mars 2014
Elasticsearch : petit déjeuner du 13 mars 2014
 
Alter way-wordcamp-paris-2014
Alter way-wordcamp-paris-2014Alter way-wordcamp-paris-2014
Alter way-wordcamp-paris-2014
 
Présentation Drupal - Global Training Days
Présentation Drupal - Global Training DaysPrésentation Drupal - Global Training Days
Présentation Drupal - Global Training Days
 
OpenStack havana tour d'horizon
OpenStack havana tour d'horizonOpenStack havana tour d'horizon
OpenStack havana tour d'horizon
 
H2O, le Cloud par Alter Way
H2O, le Cloud par Alter WayH2O, le Cloud par Alter Way
H2O, le Cloud par Alter Way
 
Industrialisez vos projets Php
Industrialisez vos projets Php Industrialisez vos projets Php
Industrialisez vos projets Php
 
Reprise sur incident , par Jean Marc Fontaine
Reprise sur incident , par Jean Marc FontaineReprise sur incident , par Jean Marc Fontaine
Reprise sur incident , par Jean Marc Fontaine
 
Organiser efficacement son depot de code par Jean Marc Fontaine
Organiser efficacement son depot de code par Jean Marc FontaineOrganiser efficacement son depot de code par Jean Marc Fontaine
Organiser efficacement son depot de code par Jean Marc Fontaine
 
Objets patterns et genie logiciel , par Julien Pauli
Objets patterns et genie logiciel , par Julien PauliObjets patterns et genie logiciel , par Julien Pauli
Objets patterns et genie logiciel , par Julien Pauli
 

Recently uploaded

“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
Edge AI and Vision Alliance
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Malak Abu Hammad
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
Postman
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
kumardaparthi1024
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
Federico Razzoli
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
fredae14
 

Recently uploaded (20)

“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
“Building and Scaling AI Applications with the Nx AI Manager,” a Presentation...
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdfUnlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
Unlock the Future of Search with MongoDB Atlas_ Vector Search Unleashed.pdf
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
WeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation TechniquesWeTestAthens: Postman's AI & Automation Techniques
WeTestAthens: Postman's AI & Automation Techniques
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
GenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizationsGenAI Pilot Implementation in the organizations
GenAI Pilot Implementation in the organizations
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Webinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data WarehouseWebinar: Designing a schema for a Data Warehouse
Webinar: Designing a schema for a Data Warehouse
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Recommendation System using RAG Architecture
Recommendation System using RAG ArchitectureRecommendation System using RAG Architecture
Recommendation System using RAG Architecture
 

Open World Forum 2014 : From ES6 to Javascript 2.0. What use today ? par Jonathan Rivalan

  • 1. From ES6 to Javascript 2.0 What use today ? Jonathan Rivalan
  • 2. From ES6 to Javascript 2.0 ● Introduction / a brief history → What is the difference between EcmaScript and JS ? ● Methods compatibility → What is the global browser support ? ● Use Cases - promises ● Next OWF 2014 – 31 Octobre 2014 2
  • 3. From ES6 to Javascript 2.0 ● Introduction / a brief history → EcmaScript creation in 1996 → ES5 standard submission in 2009 ● What is the difference between EcmaScript and Javascript ? → EcmaScript is the language when Javascript, jscript and as3 are dialects of it → today mostly none, except for the browser support OWF 2014 – 31 Octobre 2014 3
  • 4. From ES6 to Javascript 2.0 ● Methods compatibility → a rich version with more than 100 new features _ http://kangax.github.io/compat-table/es6/ → currently limited support with a bit less than 50 features, mostly oriented around the number, math objects and collections (~30 features) → mostly no support on IE11- and Opera last version → various and numerous ES5 polyfills _http://addyosmani.com/blog/ecmascript-6-resources-for-the-curious-javascripter/ OWF 2014 – 31 Octobre 2014 4
  • 5. From ES6 to Javascript 2.0 ● Use case : promises → ES6 star feature, allows the rigging of asynchronous scenarios → a promise represents the maybe result of an asynchronous operation, usable through the .then method, which will return the value of the resolved promise, or the reason in a revoked case. Promises = linear programming + readability OWF 2014 – 31 Octobre 2014 5
  • 6. From ES6 to Javascript 2.0 ● Use case : promises, .then ● Cas d'usage : les promises function asyncFunction () { function asyncFunction () { return new Promise(function(resolve,reject) { return new Promise(function(resolve,reject) { /*asynchronous actions*/ resolve(successObj) //WIN reject(errorMsg) //FAIL /*asynchronous actions*/ resolve(successObj) //WIN reject(errorMsg) //FAIL }) }) } var successHandler = function(successObj){ } var successHandler = function(successObj){ console.log("I launch if won !"); console.log("I launch if won !"); } var errorHandler = function(errorMsg){ } var errorHandler = function(errorMsg){ console.log("I launch if failed !"); console.log("I launch if failed !"); } asyncFunction.then(successHandler,errorHandler); } asyncFunction.then(successHandler,errorHandler); OWF 2014 – 31 Octobre 2014 6
  • 7. From ES6 to Javascript 2.0 ● Use case : promises, .catch function asyncFunction () { function asyncFunction () { return new Promise(function(resolve,reject) { return new Promise(function(resolve,reject) { /*asynchronous actions*/ resolve(successObj) //WIN reject(errorMsg) //FAIL /*asynchronous actions*/ resolve(successObj) //WIN reject(errorMsg) //FAIL ● Cas d'usage : les promises }) }) } var successHandler = function(successObj){ } var successHandler = function(successObj){ /*stuff*/ /*stuff*/ } var errorHandler = function(errorMsg){ } var errorHandler = function(errorMsg){ /*stuff*/ /*stuff*/ } var correctError = function(obj){ } var correctError = function(obj){ /*recovery try*/ return obj ; /*recovery try*/ return obj ; } asyncFunction.then(successHandler) .catch(correctError) .then(successHandler) .catch(errorHandler); } asyncFunction.then(successHandler) .catch(correctError) .then(successHandler) .catch(errorHandler); OWF 2014 – 31 Octobre 2014 7
  • 8. From ES6 to Javascript 2.0 - then - catch - then - catch OWF 2014 – 31 Octobre 2014 8
  • 9. From ES6 to Javascript 2.0 ● Use case : promises, .race ● Cas d'usage : les promises function asyncFunction () { function asyncFunction () { return new Promise(function(resolve,reject) { return new Promise(function(resolve,reject) { /*asynchronous actions*/ resolve(successObj) //WIN reject(errorMsg) //FAIL /*asynchronous actions*/ resolve(successObj) //WIN reject(errorMsg) //FAIL }) }) } var PromiseA = asyncFunction(someParams); var PromiseB = asyncFunction(otherParams); Promise.race([PromiseA, PromiseB]) .then(function(obj){console.log(obj+'was served first!')}); } var PromiseA = asyncFunction(someParams); var PromiseB = asyncFunction(otherParams); Promise.race([PromiseA, PromiseB]) .then(function(obj){console.log(obj+'was served first!')}); OWF 2014 – 31 Octobre 2014 9
  • 10. From ES6 to Javascript 2.0 ● Use case : promises, .all ● Cas d'usage : les promises var p = new Promise(function(resolve, reject) { resolve(3); }); Promise.all([true, p]).then(function(values) { // values == [ true, 3 ] }); var p = new Promise(function(resolve, reject) { resolve(3); }); Promise.all([true, p]).then(function(values) { // values == [ true, 3 ] }); OWF 2014 – 31 Octobre 2014 10
  • 11. From ES6 to Javascript 2.0 ● Use case : promises → standard exploration : _https://promisesaplus.com/ → strong polyfill : _https://github.com/tildeio/rsvp.js/ OWF 2014 – 31 Octobre 2014 11
  • 12. From ES6 to Javascript 2.0 ● Next ? Numerous interesting features regarding classes, generators, modules… and so on ! To go further : → have a peek at the standard _http://www.ecma-international.org/ → full es6 nowadays features review _http://code.tutsplus.com/articles/use-ecmascript-6-today--net-31582 OWF 2014 – 31 Octobre 2014 12
  • 13. From ES6 to Javascript 2.0 Jonathan Rivalan > jonathan.rivalan@alterway.fr > jonathan.rivalan@gmail.com OWF 2014 – 31 Octobre 2014 13