SlideShare a Scribd company logo
1 of 24
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
JS awesomeness!
or How will ES6 help me build better apps ?
2
Plamen Stoev
Senior Front-end Developer @ MentorMate
@pstoevPlamen Stoev
April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
Agenda
 Brief history of JavaScript
 Why EcmaScript 6 ?
 Environments to run ES6
 Give me the new stuff ?
3 April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
Brief History of JavaScript
Notable figures
Brendan Eich
- Co-founder of Mozilla Foundation
- CTO @ Mozilla (resigned)
- CEO @ Mozilla (resigned)
- Creator of JavaScript - 1995
4 April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
Brief History of JavaScript
Notable figures
Douglas Crockford
aka (The JavaScript Guy)
- JSON
- JSLint
5 April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
Brief History of JavaScript
Glossary
EcmaScript – synonym for JavaScript
Ecma International – standards organization
Ecma-262 – The official EcmaScript specification
EcmaScript5 – 5th edition of Ecma-262
Timeline:
EcmaScript 3 – Dec 1999
EcmaScript 5 - Dec 2009
EcmaScript 6 (ES.next) – Publication process starts March 2015
EcmaScript 7 (TBA)
6 April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
Brief History of JavaScript
Why “Harmony” ?
What is “Harmony” ?
7 April 4, 2015
Photo by Alberto Giorgio
A superset of ES6
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
Why EcmaScript 6 ?
Overview
Why a new version ?
What problem does it solve ?
“The purpose of a programming language is to aid programmers in
producing error-free programs”
-- D. Crockford
8 April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
Agenda
So far
 Brief history of JavaScript
 Why EcmaScript 6 ?
 Environments to run ES6
 So what’s new ?
9 February 13, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
Environments to run ES6
Overview
 Server-side environments
 Client-side environments
 Transpilers
Note: ES6 currently runs in strict mode only
10 April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
Environments to run ES6
Server-side
11 April 4, 2015
node –-harmony app.js
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
Environments to run ES6
Client-side
12 April 4, 2015
chrome://flags/
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
Environments to run ES6
Transpilers
13 April 4, 2015
npm install babel
Check out the
online transpiler!
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
So what’s new ?
Overview
 Arrow function syntax
 Operators let, const
 Weak maps
 Generators
 Destructuring
 Object.observe
 Other interesting ES6 features
14 April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
So what’s new ?
Arrow function syntax
Note: ‘this’ is preserving context of the containing method
15 April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
So what’s new ?
let, const
Operators let and const – the new ‘var’.
They are “visible” in the current block scope only
Prevents hoisting and global scope pollution
16 April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
So what’s new ?
Weak maps
Weird naming :)
17 April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
So what’s new ?
Generators
18 April 4, 2015
 Allows function execution to be “paused”
 You write synchronous code
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
So what’s new ?
Destructuring - Arrays
19 April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
So what’s new ?
Destructuring - Objects
20 April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
So what’s new ?
Object.observe
It’s a ES7 feature!
21 April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
So what’s new ?
Other features worth mentioning
 More object-related methods – String.includes, parseInt goes in Number,
Array.from, more Math.* methods for precise computing
 Default values for params – i.e. function(foo, bar = 7, baz = true);
 Rest params: function(foo, bar, …everythingElse)
 Template strings (multi-line strings)
 Modules
 Promises
 Proxies
 Tail calls
 Class syntax
22 April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
Useful Links
Overview
 http://wiki.ecmascript.org
 https://developer.mozilla.org/en-
US/docs/Web/JavaScript/New_in_JavaScript
 http://kangax.github.io/compat-table/es6/
 http://babel.io/
 http://iojs.org/
 https://google.github.io/traceur-compiler/demo/repl.html
23 April 4, 2015
CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
Thank you!
Plamen Stoev
Questions?
Senior Front-end Developer
MentorMate
@pstoevPlamen Stoev
24 April 4, 2015

More Related Content

Viewers also liked

エシカルアワード2011授賞式での紹介資料
エシカルアワード2011授賞式での紹介資料エシカルアワード2011授賞式での紹介資料
エシカルアワード2011授賞式での紹介資料Takamasa Kitamura
 
The Poor as Customers (Development Thru Revolutionary Marketing Concepts) - A...
The Poor as Customers (Development Thru Revolutionary Marketing Concepts) - A...The Poor as Customers (Development Thru Revolutionary Marketing Concepts) - A...
The Poor as Customers (Development Thru Revolutionary Marketing Concepts) - A...Magna Kultura Foundation
 
Pitchdeckinestormivestav2.4
Pitchdeckinestormivestav2.4Pitchdeckinestormivestav2.4
Pitchdeckinestormivestav2.4Ricky Velasquez
 
麻福商品カタログ Ver.1.0
麻福商品カタログ Ver.1.0麻福商品カタログ Ver.1.0
麻福商品カタログ Ver.1.0Takamasa Kitamura
 
八王子ファッション協議会150320
八王子ファッション協議会150320八王子ファッション協議会150320
八王子ファッション協議会150320Takamasa Kitamura
 
SOX ICMS Implmenetation - 2007
SOX ICMS Implmenetation - 2007SOX ICMS Implmenetation - 2007
SOX ICMS Implmenetation - 2007Slava Gorbunov
 
ヘンプの衣料について
ヘンプの衣料についてヘンプの衣料について
ヘンプの衣料についてTakamasa Kitamura
 
20110613 ifi講演1 ヤンガー
20110613 ifi講演1 ヤンガー20110613 ifi講演1 ヤンガー
20110613 ifi講演1 ヤンガーTakamasa Kitamura
 
The Tragedies of Mentor - A Reason to Fix Anti-Bullying Legislation
The Tragedies of Mentor - A Reason to Fix Anti-Bullying LegislationThe Tragedies of Mentor - A Reason to Fix Anti-Bullying Legislation
The Tragedies of Mentor - A Reason to Fix Anti-Bullying LegislationMichael Muha
 
Pitchdeckinestormivestav2.3
Pitchdeckinestormivestav2.3Pitchdeckinestormivestav2.3
Pitchdeckinestormivestav2.3Ricky Velasquez
 
Larong Pinoy Mini-Olympics Company Sportsfest
Larong Pinoy Mini-Olympics Company SportsfestLarong Pinoy Mini-Olympics Company Sportsfest
Larong Pinoy Mini-Olympics Company SportsfestMagna Kultura Foundation
 

Viewers also liked (16)

セミナー資料150208
セミナー資料150208セミナー資料150208
セミナー資料150208
 
エシカルアワード2011授賞式での紹介資料
エシカルアワード2011授賞式での紹介資料エシカルアワード2011授賞式での紹介資料
エシカルアワード2011授賞式での紹介資料
 
Uihfrs paula.
Uihfrs paula.Uihfrs paula.
Uihfrs paula.
 
The Poor as Customers (Development Thru Revolutionary Marketing Concepts) - A...
The Poor as Customers (Development Thru Revolutionary Marketing Concepts) - A...The Poor as Customers (Development Thru Revolutionary Marketing Concepts) - A...
The Poor as Customers (Development Thru Revolutionary Marketing Concepts) - A...
 
Pitchdeckinestormivestav2.4
Pitchdeckinestormivestav2.4Pitchdeckinestormivestav2.4
Pitchdeckinestormivestav2.4
 
麻福商品カタログ Ver.1.0
麻福商品カタログ Ver.1.0麻福商品カタログ Ver.1.0
麻福商品カタログ Ver.1.0
 
八王子ファッション協議会150320
八王子ファッション協議会150320八王子ファッション協議会150320
八王子ファッション協議会150320
 
SOX ICMS Implmenetation - 2007
SOX ICMS Implmenetation - 2007SOX ICMS Implmenetation - 2007
SOX ICMS Implmenetation - 2007
 
ヘンプの衣料について
ヘンプの衣料についてヘンプの衣料について
ヘンプの衣料について
 
20110613 ifi講演1 ヤンガー
20110613 ifi講演1 ヤンガー20110613 ifi講演1 ヤンガー
20110613 ifi講演1 ヤンガー
 
The Tragedies of Mentor - A Reason to Fix Anti-Bullying Legislation
The Tragedies of Mentor - A Reason to Fix Anti-Bullying LegislationThe Tragedies of Mentor - A Reason to Fix Anti-Bullying Legislation
The Tragedies of Mentor - A Reason to Fix Anti-Bullying Legislation
 
Pitchdeckinestormivestav2.3
Pitchdeckinestormivestav2.3Pitchdeckinestormivestav2.3
Pitchdeckinestormivestav2.3
 
MivestaAngellist
MivestaAngellistMivestaAngellist
MivestaAngellist
 
Larong Pinoy Direct Marketing Promotions
Larong Pinoy Direct Marketing PromotionsLarong Pinoy Direct Marketing Promotions
Larong Pinoy Direct Marketing Promotions
 
Alistpitch
AlistpitchAlistpitch
Alistpitch
 
Larong Pinoy Mini-Olympics Company Sportsfest
Larong Pinoy Mini-Olympics Company SportsfestLarong Pinoy Mini-Olympics Company Sportsfest
Larong Pinoy Mini-Olympics Company Sportsfest
 

Similar to JS awesomeness or how will ES6 help me build better apps ?

Mobile Wireframing with Indigo Studio
Mobile Wireframing with Indigo StudioMobile Wireframing with Indigo Studio
Mobile Wireframing with Indigo StudioStefan Ivanov
 
Making ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCoreMaking ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCoreChristian Heilmann
 
Upgrading JavaScript to ES6 and using TypeScript as a shortcut
Upgrading JavaScript to ES6 and using TypeScript as a shortcutUpgrading JavaScript to ES6 and using TypeScript as a shortcut
Upgrading JavaScript to ES6 and using TypeScript as a shortcutChristian Heilmann
 
Making ES6 available to all with ChakraCore and Typescript
Making ES6 available to all with ChakraCore and TypescriptMaking ES6 available to all with ChakraCore and Typescript
Making ES6 available to all with ChakraCore and TypescriptChristian Heilmann
 
Keeping a codebase fresh for over a decade
Keeping a codebase fresh for over a decadeKeeping a codebase fresh for over a decade
Keeping a codebase fresh for over a decadeChristian Keuerleber
 
Modern .NET Apps - Telerik Webinar
Modern .NET Apps - Telerik WebinarModern .NET Apps - Telerik Webinar
Modern .NET Apps - Telerik WebinarSam Basu
 
FOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group ReplicationFOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group ReplicationShivji Kumar Jha
 
Анастасия Войтова: Здоровая психологическая атмосфера в жизни разработчика, ...
Анастасия Войтова:  Здоровая психологическая атмосфера в жизни разработчика, ...Анастасия Войтова:  Здоровая психологическая атмосфера в жизни разработчика, ...
Анастасия Войтова: Здоровая психологическая атмосфера в жизни разработчика, ...Fwdays
 
The case for Web components - Drupal4Gov webinar
The case for Web components - Drupal4Gov webinarThe case for Web components - Drupal4Gov webinar
The case for Web components - Drupal4Gov webinarbtopro
 
Get Ready for Changes To Load Testing
Get Ready for Changes To Load Testing Get Ready for Changes To Load Testing
Get Ready for Changes To Load Testing SOASTA
 
The Present and Future of JavaScript: ES2015 and Beyond
The Present and Future of JavaScript: ES2015 and BeyondThe Present and Future of JavaScript: ES2015 and Beyond
The Present and Future of JavaScript: ES2015 and BeyondNizar Khalife
 
Introduction to OPNFV and ONAP training courses
Introduction to OPNFV and ONAP training coursesIntroduction to OPNFV and ONAP training courses
Introduction to OPNFV and ONAP training coursesaarnanetworks
 
OpenPOWER Overview - August 2016
OpenPOWER Overview - August 2016OpenPOWER Overview - August 2016
OpenPOWER Overview - August 2016Mandie Quartly
 
ASP.NET 5: What's the Big Deal
ASP.NET 5: What's the Big DealASP.NET 5: What's the Big Deal
ASP.NET 5: What's the Big DealJim Duffy
 
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaCoding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaJAXLondon_Conference
 
Introduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsIntroduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsOlaf Janssen
 
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?Steve Poole
 
Mark Hughes Annual Seminar Presentation on Open Source
Mark Hughes Annual Seminar Presentation on Open Source Mark Hughes Annual Seminar Presentation on Open Source
Mark Hughes Annual Seminar Presentation on Open Source Tracy Kent
 
JVMCON Java in the 21st Century: are you thinking far enough ahead?
JVMCON Java in the 21st Century: are you thinking far enough ahead?JVMCON Java in the 21st Century: are you thinking far enough ahead?
JVMCON Java in the 21st Century: are you thinking far enough ahead?Steve Poole
 

Similar to JS awesomeness or how will ES6 help me build better apps ? (20)

Mobile Wireframing with Indigo Studio
Mobile Wireframing with Indigo StudioMobile Wireframing with Indigo Studio
Mobile Wireframing with Indigo Studio
 
Making ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCoreMaking ES6 available to all with ChakraCore
Making ES6 available to all with ChakraCore
 
Upgrading JavaScript to ES6 and using TypeScript as a shortcut
Upgrading JavaScript to ES6 and using TypeScript as a shortcutUpgrading JavaScript to ES6 and using TypeScript as a shortcut
Upgrading JavaScript to ES6 and using TypeScript as a shortcut
 
Making ES6 available to all with ChakraCore and Typescript
Making ES6 available to all with ChakraCore and TypescriptMaking ES6 available to all with ChakraCore and Typescript
Making ES6 available to all with ChakraCore and Typescript
 
Keeping a codebase fresh for over a decade
Keeping a codebase fresh for over a decadeKeeping a codebase fresh for over a decade
Keeping a codebase fresh for over a decade
 
Modern .NET Apps - Telerik Webinar
Modern .NET Apps - Telerik WebinarModern .NET Apps - Telerik Webinar
Modern .NET Apps - Telerik Webinar
 
FOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group ReplicationFOSSASIA 2015: MySQL Group Replication
FOSSASIA 2015: MySQL Group Replication
 
Анастасия Войтова: Здоровая психологическая атмосфера в жизни разработчика, ...
Анастасия Войтова:  Здоровая психологическая атмосфера в жизни разработчика, ...Анастасия Войтова:  Здоровая психологическая атмосфера в жизни разработчика, ...
Анастасия Войтова: Здоровая психологическая атмосфера в жизни разработчика, ...
 
The case for Web components - Drupal4Gov webinar
The case for Web components - Drupal4Gov webinarThe case for Web components - Drupal4Gov webinar
The case for Web components - Drupal4Gov webinar
 
Get Ready for Changes To Load Testing
Get Ready for Changes To Load Testing Get Ready for Changes To Load Testing
Get Ready for Changes To Load Testing
 
The Present and Future of JavaScript: ES2015 and Beyond
The Present and Future of JavaScript: ES2015 and BeyondThe Present and Future of JavaScript: ES2015 and Beyond
The Present and Future of JavaScript: ES2015 and Beyond
 
Eclipse Way
Eclipse WayEclipse Way
Eclipse Way
 
Introduction to OPNFV and ONAP training courses
Introduction to OPNFV and ONAP training coursesIntroduction to OPNFV and ONAP training courses
Introduction to OPNFV and ONAP training courses
 
OpenPOWER Overview - August 2016
OpenPOWER Overview - August 2016OpenPOWER Overview - August 2016
OpenPOWER Overview - August 2016
 
ASP.NET 5: What's the Big Deal
ASP.NET 5: What's the Big DealASP.NET 5: What's the Big Deal
ASP.NET 5: What's the Big Deal
 
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan WielengaCoding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
Coding for desktop and mobile with HTML5 and Java EE 7 - Geertjan Wielenga
 
Introduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trendsIntroduction to (web) APIs - definitions, examples, concepts and trends
Introduction to (web) APIs - definitions, examples, concepts and trends
 
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?
Dev talks Cluj 2018 : Java in the 21 Century: Are you thinking far enough ahead?
 
Mark Hughes Annual Seminar Presentation on Open Source
Mark Hughes Annual Seminar Presentation on Open Source Mark Hughes Annual Seminar Presentation on Open Source
Mark Hughes Annual Seminar Presentation on Open Source
 
JVMCON Java in the 21st Century: are you thinking far enough ahead?
JVMCON Java in the 21st Century: are you thinking far enough ahead?JVMCON Java in the 21st Century: are you thinking far enough ahead?
JVMCON Java in the 21st Century: are you thinking far enough ahead?
 

Recently uploaded

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 

Recently uploaded (20)

Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 

JS awesomeness or how will ES6 help me build better apps ?

  • 1. CONFIDENTIAL © MobCon Bulgaria. All rights reserved.
  • 2. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. JS awesomeness! or How will ES6 help me build better apps ? 2 Plamen Stoev Senior Front-end Developer @ MentorMate @pstoevPlamen Stoev April 4, 2015
  • 3. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. Agenda  Brief history of JavaScript  Why EcmaScript 6 ?  Environments to run ES6  Give me the new stuff ? 3 April 4, 2015
  • 4. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. Brief History of JavaScript Notable figures Brendan Eich - Co-founder of Mozilla Foundation - CTO @ Mozilla (resigned) - CEO @ Mozilla (resigned) - Creator of JavaScript - 1995 4 April 4, 2015
  • 5. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. Brief History of JavaScript Notable figures Douglas Crockford aka (The JavaScript Guy) - JSON - JSLint 5 April 4, 2015
  • 6. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. Brief History of JavaScript Glossary EcmaScript – synonym for JavaScript Ecma International – standards organization Ecma-262 – The official EcmaScript specification EcmaScript5 – 5th edition of Ecma-262 Timeline: EcmaScript 3 – Dec 1999 EcmaScript 5 - Dec 2009 EcmaScript 6 (ES.next) – Publication process starts March 2015 EcmaScript 7 (TBA) 6 April 4, 2015
  • 7. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. Brief History of JavaScript Why “Harmony” ? What is “Harmony” ? 7 April 4, 2015 Photo by Alberto Giorgio A superset of ES6
  • 8. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. Why EcmaScript 6 ? Overview Why a new version ? What problem does it solve ? “The purpose of a programming language is to aid programmers in producing error-free programs” -- D. Crockford 8 April 4, 2015
  • 9. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. Agenda So far  Brief history of JavaScript  Why EcmaScript 6 ?  Environments to run ES6  So what’s new ? 9 February 13, 2015
  • 10. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. Environments to run ES6 Overview  Server-side environments  Client-side environments  Transpilers Note: ES6 currently runs in strict mode only 10 April 4, 2015
  • 11. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. Environments to run ES6 Server-side 11 April 4, 2015 node –-harmony app.js
  • 12. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. Environments to run ES6 Client-side 12 April 4, 2015 chrome://flags/
  • 13. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. Environments to run ES6 Transpilers 13 April 4, 2015 npm install babel Check out the online transpiler!
  • 14. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. So what’s new ? Overview  Arrow function syntax  Operators let, const  Weak maps  Generators  Destructuring  Object.observe  Other interesting ES6 features 14 April 4, 2015
  • 15. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. So what’s new ? Arrow function syntax Note: ‘this’ is preserving context of the containing method 15 April 4, 2015
  • 16. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. So what’s new ? let, const Operators let and const – the new ‘var’. They are “visible” in the current block scope only Prevents hoisting and global scope pollution 16 April 4, 2015
  • 17. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. So what’s new ? Weak maps Weird naming :) 17 April 4, 2015
  • 18. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. So what’s new ? Generators 18 April 4, 2015  Allows function execution to be “paused”  You write synchronous code
  • 19. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. So what’s new ? Destructuring - Arrays 19 April 4, 2015
  • 20. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. So what’s new ? Destructuring - Objects 20 April 4, 2015
  • 21. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. So what’s new ? Object.observe It’s a ES7 feature! 21 April 4, 2015
  • 22. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. So what’s new ? Other features worth mentioning  More object-related methods – String.includes, parseInt goes in Number, Array.from, more Math.* methods for precise computing  Default values for params – i.e. function(foo, bar = 7, baz = true);  Rest params: function(foo, bar, …everythingElse)  Template strings (multi-line strings)  Modules  Promises  Proxies  Tail calls  Class syntax 22 April 4, 2015
  • 23. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. Useful Links Overview  http://wiki.ecmascript.org  https://developer.mozilla.org/en- US/docs/Web/JavaScript/New_in_JavaScript  http://kangax.github.io/compat-table/es6/  http://babel.io/  http://iojs.org/  https://google.github.io/traceur-compiler/demo/repl.html 23 April 4, 2015
  • 24. CONFIDENTIAL © MobCon Bulgaria. All rights reserved. Thank you! Plamen Stoev Questions? Senior Front-end Developer MentorMate @pstoevPlamen Stoev 24 April 4, 2015