SlideShare a Scribd company logo
1 of 40
Download to read offline
NetBeans support for
EcmaScript 6
Kostas Saidis
@saikos
NetBeans Day Athens 2017
April 21, 2016
About Me
Software and Data Architect
Adjunct Lecturer @ di.uoa.gr (University of
Athens) teaching Software Engineering
Managing Director @ niovity.com
Early Java enthusiast (since 1997)
Diving into JavaScript since 2010
2
The JavaScript Ecosystem
3
Brief history
1993: First web browser
Mosaic by NCSA, University of Illinois
1994: Netscape browser
Netscape Navigator (code named Mozilla)
1995: Brendan Eich develops JavaScript
Netscape Navigator 2.0 & Netscape Enterprise
Server
4
The core of JavaScript
A dynamically typed, interpreted language
that was intentionally designed to look like Java
supporting Scheme-like functions (functional
paradigm)
and Self-like prototypes (object-oriented
paradigm)
Douglas Crockford, "JavaScript: The good parts",
2008, O'Reilly Media
5
Example
https://github.com/monsur/jscache
function Cache(maxSize, debug, storage) {
this.maxSize_ = maxSize || -1;
this.debug_ = debug || false;
this.storage_ = storage ||
new Cache.BasicCacheStorage();
this.fillFactor_ = .75;
this.stats_ = {};
this.stats_['hits'] = 0;
this.stats_['misses'] = 0;
}
6
The rst 20 years
1996
Microsoft JScript engine (in IE 3.0 & IIS)
Mozilla SpiderMonkey JavaScript engine
(Netscape Navigator 3.0)
Submission of JavaScript to ECMA International
Opera Browser
NetBeans IDE!
7
The rst 20 years
1997
Dynamic HTML (IE 4)
ES1 (ECMA-262 standard)
8
The rst 20 years
1998
Netscape releases the source of Navigator
Mozilla Foundation
Gecko HTML engine
Rhino JavaScript engine (Java)
ES2 (ISO/IEC 16262 standard)
9
The rst 20 years
1999
AJAX, XMLHTTPRequest (IE 5)
Macromedia Flash
ES3
Regular expressions
Exceptions, try/catch blocks
do...while , in , instanceof
Enhancements in arrays, strings, numbers
10
The rst 20 years
2000
ES4 (Never released, abandoned)
Adobe ActionScript, ES4 derivative (classes, static
typing, etc)
11
The rst 20 years
2001
Douglas Crockford
The World's Most Misunderstood Programming
Language
JSON
12
The rst 20 years
2002
Mozilla Suite 1.0
Firefox
Outlook Web App (AJAX goes mainstream)
JSON.org
13
The rst 20 years
2003
Safari Web Browser
WebKit & Nitro engines (forks of KDE HTML/JS
engines)
14
The rst 20 years
2004
Google Mail (AJAX for the masses)
Dojo toolkit
15
The rst 20 years
2005
Jesse James Garrett, Ajax: A New Approach to
Web Applications
prototype.js, the dollar function $()
16
The rst 20 years
2006
jQuery
Yahoo! User Interface library
17
The rst 20 years
2007
PC World, Netspace Navigator: the best tech
product of all time
18
The rst 20 years
2008
Google Chrome
V8 JavaScript engine
Chromium Project
19
The rst 20 years
2009
ES5 (ES3.1 essentially)
node.js (server-side JS)
CommonJS (JS modules)
AngularJS
PhoneGap, hybrid JS apps (now Apache Cordova)
20
The rst 20 years
2009
CoffeeScript, the rst language to transpile to JS
underscore.js, functional programming in JS
(superseded by lodash.js)
21
The rst 20 years
2010
Backbone.js, MVC library
Express.js, Web framework for node.js
Knockout.js, MVVM library
PhantomJS, Headless Webkit
22
The rst 20 years
2011
Data-driven documents with D3.js
Asynchronous Module De nitions (AMD) with
require.js
Ember.js, MVC library
23
The rst 20 years
2012
Oracle releases Nashorn JavaScript engine (Java),
the default JavaScript engine in Java 8
Meteor.js, web framework (node.js, hybrid,
reactive)
TypeScript by Microsoft (transpiled to JS)
24
The rst 20 years
2013
React framework by Facebook
asm.js by Mozilla
ElectronJS by Github (atom-shell)
25
The rst 20 years
2014
HTML5 - APIs everywhere
The (unof cial) death of XML?
26
The rst 20 years
2015
ES6 (Harmony, ES2015)
React Native (hybrid apps)
WebAssembly (assembly for the web)
27
JavaScript is here to stay!
JavaScript is the lingua franca of the Web rapidly
turning into a general-purpose programming
language with a massive usage base
ES2016 (minor additions to ES6)
ESNext (next features, like async/await)
28
Apache NetBeans
is here to stay, too! 29
JavaScript Support in
NetBeans 8.2
Built-in support for JS and a multitude of tools,
libraries and frameworks
Support for ES6 and beyond
30
Built-in JS Support
Syntax highlighting
Code folding
Code completion and analysis
Refactoring
Structural navigation
Lints/Hints
Integrated debugger
31
And more
Bracket matching
Go to declaration
JSDoc
JSON
JS embedding (HTML, PHP, etc)
32
Developing JS with Netbeans
Embedded web server (run your apps from within
the IDE)
Automagical update in the web browser
(Embedded Webkit or Chrome with plugin)
33
Tools and Libraries
Inherent support for JS libs/tools at the source
level
Node.js and npm
Grunt, Gulp, Bower, Require.js, Karma, Express.js,
Babel, Webpack, ...
LESS, SASS
Apache Cordova
Oracle JET
NB Plugins
34
ES6 Features
Modules with import and export
Constants with const
Block scoped variables with let
Arrow functions with =>
Classes with class and extends and super
String interporation with `${var}`
35
ES6 Features
Default parameter values, rest & spread operators
Desctructuring of objects and arrays
Promises
Enhanced object literals
New collections (Set, Map, WeakSet, WeakMap)
36
Not covered here
Generators & iterators
Various other goodies, such as
Symbols
Metaprogramming (Proxies & Re ection)
Math, String, Number enhancements
Binary and octal literals
and more...
37
Example
github repo
38
References
A brief history of JavaScript
A re-introduction to JavaScript
ECMAScript 6 New Features: Overview &
Comparison
NB Wiki
ECMAScript 6, Modules, Babel, Webpack, and
NetBeans IDE
39
Thank you!
@saikos
Linkedin
40

More Related Content

What's hot

[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...ZeroTurnaround
 
Gradle - the Enterprise Automation Tool
Gradle  - the Enterprise Automation ToolGradle  - the Enterprise Automation Tool
Gradle - the Enterprise Automation ToolIzzet Mustafaiev
 
Gradle: The Build System you have been waiting for!
Gradle: The Build System you have been waiting for!Gradle: The Build System you have been waiting for!
Gradle: The Build System you have been waiting for!Corneil du Plessis
 
うさぎ組 in G* WorkShop -うさみみの日常-
うさぎ組 in G* WorkShop -うさみみの日常-うさぎ組 in G* WorkShop -うさみみの日常-
うさぎ組 in G* WorkShop -うさみみの日常-kyon mm
 
Basic Gradle Plugin Writing
Basic Gradle Plugin WritingBasic Gradle Plugin Writing
Basic Gradle Plugin WritingSchalk Cronjé
 
Testing cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestTesting cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestMicael Gallego
 
Gradle For Beginners (Serbian Developer Conference 2013 english)
Gradle For Beginners (Serbian Developer Conference 2013 english)Gradle For Beginners (Serbian Developer Conference 2013 english)
Gradle For Beginners (Serbian Developer Conference 2013 english)Joachim Baumann
 
Gradle 3.0: Unleash the Daemon!
Gradle 3.0: Unleash the Daemon!Gradle 3.0: Unleash the Daemon!
Gradle 3.0: Unleash the Daemon!Eric Wendelin
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbtFabio Fumarola
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosMicael Gallego
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsMicael Gallego
 
Scala and Play with Gradle
Scala and Play with GradleScala and Play with Gradle
Scala and Play with GradleWei Chen
 
Implementing Quality on Java projects
Implementing Quality on Java projectsImplementing Quality on Java projects
Implementing Quality on Java projectsVincent Massol
 
Gradle - time for another build
Gradle - time for another buildGradle - time for another build
Gradle - time for another buildIgor Khotin
 

What's hot (20)

Gradle : An introduction
Gradle : An introduction Gradle : An introduction
Gradle : An introduction
 
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...
[Image Results] Java Build Tools: Part 2 - A Decision Maker's Guide Compariso...
 
Gradle - the Enterprise Automation Tool
Gradle  - the Enterprise Automation ToolGradle  - the Enterprise Automation Tool
Gradle - the Enterprise Automation Tool
 
Gradle: The Build System you have been waiting for!
Gradle: The Build System you have been waiting for!Gradle: The Build System you have been waiting for!
Gradle: The Build System you have been waiting for!
 
Gradle in 45min
Gradle in 45minGradle in 45min
Gradle in 45min
 
Gradle presentation
Gradle presentationGradle presentation
Gradle presentation
 
うさぎ組 in G* WorkShop -うさみみの日常-
うさぎ組 in G* WorkShop -うさみみの日常-うさぎ組 in G* WorkShop -うさみみの日常-
うさぎ組 in G* WorkShop -うさみみの日常-
 
Building with Gradle
Building with GradleBuilding with Gradle
Building with Gradle
 
Hands on the Gradle
Hands on the GradleHands on the Gradle
Hands on the Gradle
 
Basic Gradle Plugin Writing
Basic Gradle Plugin WritingBasic Gradle Plugin Writing
Basic Gradle Plugin Writing
 
Gradle como alternativa a maven
Gradle como alternativa a mavenGradle como alternativa a maven
Gradle como alternativa a maven
 
Testing cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTestTesting cloud and kubernetes applications - ElasTest
Testing cloud and kubernetes applications - ElasTest
 
Gradle For Beginners (Serbian Developer Conference 2013 english)
Gradle For Beginners (Serbian Developer Conference 2013 english)Gradle For Beginners (Serbian Developer Conference 2013 english)
Gradle For Beginners (Serbian Developer Conference 2013 english)
 
Gradle 3.0: Unleash the Daemon!
Gradle 3.0: Unleash the Daemon!Gradle 3.0: Unleash the Daemon!
Gradle 3.0: Unleash the Daemon!
 
An introduction to maven gradle and sbt
An introduction to maven gradle and sbtAn introduction to maven gradle and sbt
An introduction to maven gradle and sbt
 
Testing fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornosTesting fácil con Docker: Gestiona dependencias y unifica entornos
Testing fácil con Docker: Gestiona dependencias y unifica entornos
 
Using Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and JenkinsUsing Docker to build and test in your laptop and Jenkins
Using Docker to build and test in your laptop and Jenkins
 
Scala and Play with Gradle
Scala and Play with GradleScala and Play with Gradle
Scala and Play with Gradle
 
Implementing Quality on Java projects
Implementing Quality on Java projectsImplementing Quality on Java projects
Implementing Quality on Java projects
 
Gradle - time for another build
Gradle - time for another buildGradle - time for another build
Gradle - time for another build
 

Similar to NetBeans Support for EcmaScript 6

Powerful tools for building web solutions
Powerful tools for building web solutionsPowerful tools for building web solutions
Powerful tools for building web solutionsAndrea Tino
 
whats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptxwhats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptxGabrielSoche
 
005528214.pdf
005528214.pdf005528214.pdf
005528214.pdfEidTahir
 
three_software_development_trends_to_follow_in_2016
three_software_development_trends_to_follow_in_2016three_software_development_trends_to_follow_in_2016
three_software_development_trends_to_follow_in_2016Interbrand
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xGeertjan Wielenga
 
What’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.xWhat’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.xErik Gur
 
Busy developer-html5-javaee7
Busy developer-html5-javaee7Busy developer-html5-javaee7
Busy developer-html5-javaee7Geertjan Wielenga
 
JSON Part 2: Working with Ajax
JSON Part 2: Working with AjaxJSON Part 2: Working with Ajax
JSON Part 2: Working with AjaxJeff Fox
 
Asp.net in a new world
Asp.net in a new worldAsp.net in a new world
Asp.net in a new worldnextbuild
 
LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) Sascha Sambale
 
Programming in HTML5 With Java Script and CSS3
Programming in HTML5 With Java Script and CSS3Programming in HTML5 With Java Script and CSS3
Programming in HTML5 With Java Script and CSS3Testbells
 
Introduction to Modern and Emerging Web Technologies
Introduction to Modern and Emerging Web TechnologiesIntroduction to Modern and Emerging Web Technologies
Introduction to Modern and Emerging Web TechnologiesSuresh Patidar
 
Copmuter Languages
Copmuter LanguagesCopmuter Languages
Copmuter Languagesactanimation
 
Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the restgeorge.james
 

Similar to NetBeans Support for EcmaScript 6 (20)

Powerful tools for building web solutions
Powerful tools for building web solutionsPowerful tools for building web solutions
Powerful tools for building web solutions
 
whats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptxwhats-new-netbeans-ide-7x.pptx
whats-new-netbeans-ide-7x.pptx
 
005528214.pdf
005528214.pdf005528214.pdf
005528214.pdf
 
three_software_development_trends_to_follow_in_2016
three_software_development_trends_to_follow_in_2016three_software_development_trends_to_follow_in_2016
three_software_development_trends_to_follow_in_2016
 
What's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.xWhat's New in NetBeans IDE 7.x
What's New in NetBeans IDE 7.x
 
What’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.xWhat’s New & Cool in NetBeans IDE 7.x
What’s New & Cool in NetBeans IDE 7.x
 
Busy developer-html5-javaee7
Busy developer-html5-javaee7Busy developer-html5-javaee7
Busy developer-html5-javaee7
 
JSON Part 2: Working with Ajax
JSON Part 2: Working with AjaxJSON Part 2: Working with Ajax
JSON Part 2: Working with Ajax
 
Asp.net in a new world
Asp.net in a new worldAsp.net in a new world
Asp.net in a new world
 
LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :) LAMP is so yesterday, MEAN is so tomorrow! :)
LAMP is so yesterday, MEAN is so tomorrow! :)
 
AFTAB AHMED.pptx
AFTAB AHMED.pptxAFTAB AHMED.pptx
AFTAB AHMED.pptx
 
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Node J pdf.docx
 
Node J pdf.docx
Node J pdf.docxNode J pdf.docx
Node J pdf.docx
 
World of Node.JS
World of Node.JSWorld of Node.JS
World of Node.JS
 
Programming in HTML5 With Java Script and CSS3
Programming in HTML5 With Java Script and CSS3Programming in HTML5 With Java Script and CSS3
Programming in HTML5 With Java Script and CSS3
 
API
APIAPI
API
 
API
APIAPI
API
 
Introduction to Modern and Emerging Web Technologies
Introduction to Modern and Emerging Web TechnologiesIntroduction to Modern and Emerging Web Technologies
Introduction to Modern and Emerging Web Technologies
 
Copmuter Languages
Copmuter LanguagesCopmuter Languages
Copmuter Languages
 
Web Development Environments: Choose the best or go with the rest
Web Development Environments:  Choose the best or go with the restWeb Development Environments:  Choose the best or go with the rest
Web Development Environments: Choose the best or go with the rest
 

Recently uploaded

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraDeakin University
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetEnjoy Anytime
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
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
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

Artificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning eraArtificial intelligence in the post-deep learning era
Artificial intelligence in the post-deep learning era
 
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your BudgetHyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
Hyderabad Call Girls Khairatabad ✨ 7001305949 ✨ Cheap Price Your Budget
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
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
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 

NetBeans Support for EcmaScript 6

  • 1. NetBeans support for EcmaScript 6 Kostas Saidis @saikos NetBeans Day Athens 2017 April 21, 2016
  • 2. About Me Software and Data Architect Adjunct Lecturer @ di.uoa.gr (University of Athens) teaching Software Engineering Managing Director @ niovity.com Early Java enthusiast (since 1997) Diving into JavaScript since 2010 2
  • 4. Brief history 1993: First web browser Mosaic by NCSA, University of Illinois 1994: Netscape browser Netscape Navigator (code named Mozilla) 1995: Brendan Eich develops JavaScript Netscape Navigator 2.0 & Netscape Enterprise Server 4
  • 5. The core of JavaScript A dynamically typed, interpreted language that was intentionally designed to look like Java supporting Scheme-like functions (functional paradigm) and Self-like prototypes (object-oriented paradigm) Douglas Crockford, "JavaScript: The good parts", 2008, O'Reilly Media 5
  • 6. Example https://github.com/monsur/jscache function Cache(maxSize, debug, storage) { this.maxSize_ = maxSize || -1; this.debug_ = debug || false; this.storage_ = storage || new Cache.BasicCacheStorage(); this.fillFactor_ = .75; this.stats_ = {}; this.stats_['hits'] = 0; this.stats_['misses'] = 0; } 6
  • 7. The rst 20 years 1996 Microsoft JScript engine (in IE 3.0 & IIS) Mozilla SpiderMonkey JavaScript engine (Netscape Navigator 3.0) Submission of JavaScript to ECMA International Opera Browser NetBeans IDE! 7
  • 8. The rst 20 years 1997 Dynamic HTML (IE 4) ES1 (ECMA-262 standard) 8
  • 9. The rst 20 years 1998 Netscape releases the source of Navigator Mozilla Foundation Gecko HTML engine Rhino JavaScript engine (Java) ES2 (ISO/IEC 16262 standard) 9
  • 10. The rst 20 years 1999 AJAX, XMLHTTPRequest (IE 5) Macromedia Flash ES3 Regular expressions Exceptions, try/catch blocks do...while , in , instanceof Enhancements in arrays, strings, numbers 10
  • 11. The rst 20 years 2000 ES4 (Never released, abandoned) Adobe ActionScript, ES4 derivative (classes, static typing, etc) 11
  • 12. The rst 20 years 2001 Douglas Crockford The World's Most Misunderstood Programming Language JSON 12
  • 13. The rst 20 years 2002 Mozilla Suite 1.0 Firefox Outlook Web App (AJAX goes mainstream) JSON.org 13
  • 14. The rst 20 years 2003 Safari Web Browser WebKit & Nitro engines (forks of KDE HTML/JS engines) 14
  • 15. The rst 20 years 2004 Google Mail (AJAX for the masses) Dojo toolkit 15
  • 16. The rst 20 years 2005 Jesse James Garrett, Ajax: A New Approach to Web Applications prototype.js, the dollar function $() 16
  • 17. The rst 20 years 2006 jQuery Yahoo! User Interface library 17
  • 18. The rst 20 years 2007 PC World, Netspace Navigator: the best tech product of all time 18
  • 19. The rst 20 years 2008 Google Chrome V8 JavaScript engine Chromium Project 19
  • 20. The rst 20 years 2009 ES5 (ES3.1 essentially) node.js (server-side JS) CommonJS (JS modules) AngularJS PhoneGap, hybrid JS apps (now Apache Cordova) 20
  • 21. The rst 20 years 2009 CoffeeScript, the rst language to transpile to JS underscore.js, functional programming in JS (superseded by lodash.js) 21
  • 22. The rst 20 years 2010 Backbone.js, MVC library Express.js, Web framework for node.js Knockout.js, MVVM library PhantomJS, Headless Webkit 22
  • 23. The rst 20 years 2011 Data-driven documents with D3.js Asynchronous Module De nitions (AMD) with require.js Ember.js, MVC library 23
  • 24. The rst 20 years 2012 Oracle releases Nashorn JavaScript engine (Java), the default JavaScript engine in Java 8 Meteor.js, web framework (node.js, hybrid, reactive) TypeScript by Microsoft (transpiled to JS) 24
  • 25. The rst 20 years 2013 React framework by Facebook asm.js by Mozilla ElectronJS by Github (atom-shell) 25
  • 26. The rst 20 years 2014 HTML5 - APIs everywhere The (unof cial) death of XML? 26
  • 27. The rst 20 years 2015 ES6 (Harmony, ES2015) React Native (hybrid apps) WebAssembly (assembly for the web) 27
  • 28. JavaScript is here to stay! JavaScript is the lingua franca of the Web rapidly turning into a general-purpose programming language with a massive usage base ES2016 (minor additions to ES6) ESNext (next features, like async/await) 28
  • 29. Apache NetBeans is here to stay, too! 29
  • 30. JavaScript Support in NetBeans 8.2 Built-in support for JS and a multitude of tools, libraries and frameworks Support for ES6 and beyond 30
  • 31. Built-in JS Support Syntax highlighting Code folding Code completion and analysis Refactoring Structural navigation Lints/Hints Integrated debugger 31
  • 32. And more Bracket matching Go to declaration JSDoc JSON JS embedding (HTML, PHP, etc) 32
  • 33. Developing JS with Netbeans Embedded web server (run your apps from within the IDE) Automagical update in the web browser (Embedded Webkit or Chrome with plugin) 33
  • 34. Tools and Libraries Inherent support for JS libs/tools at the source level Node.js and npm Grunt, Gulp, Bower, Require.js, Karma, Express.js, Babel, Webpack, ... LESS, SASS Apache Cordova Oracle JET NB Plugins 34
  • 35. ES6 Features Modules with import and export Constants with const Block scoped variables with let Arrow functions with => Classes with class and extends and super String interporation with `${var}` 35
  • 36. ES6 Features Default parameter values, rest & spread operators Desctructuring of objects and arrays Promises Enhanced object literals New collections (Set, Map, WeakSet, WeakMap) 36
  • 37. Not covered here Generators & iterators Various other goodies, such as Symbols Metaprogramming (Proxies & Re ection) Math, String, Number enhancements Binary and octal literals and more... 37
  • 39. References A brief history of JavaScript A re-introduction to JavaScript ECMAScript 6 New Features: Overview & Comparison NB Wiki ECMAScript 6, Modules, Babel, Webpack, and NetBeans IDE 39