ECMAScript
Today, Tomorrow, and Beyond
Who is Paxata?
- Adaptive Information Platform
- Self-Service Data Prep Application
Who are we
- Engineering Teams in San Francisco and Columbus
What's ECMA?
Es2015 Features
Frameworks
Paxata UI
Agenda
ECMAScript
The standard for JavaScript ... also ActionScript and JScript
There are 8 versions
ES2015 first update since 2011
European
Computer
Manufacturers
Association
hckr.news
- First well-adopted version was ES3
- ES6 was way behind schedule but is finally getting adoption
- For now they have switched to Year based releases as a step toward feature based releases.
So how do we handle browsers with different implementation schedules?
Transpiling
What is a Transpiler
- Converts code from one language, to another.
- Unlike compiler - it is when the target language is the same level of abstraction as the original language.
- Allows us to take any version of ECMAscript (or a feature) and make it compatible with another
- This typically happens server side in the build tooling
coffeescript.org
Transpile Example
ES2015 (ver. 6)
Defaults
Let / Const.
Template Literals
Arrow Functions
Promises
Modules
ES2015 - Defaults
ES2015 - Defaults
ES2015 - Let / Const.
ES2015 - Let / Const.
ES2015 - Let / Const.
ES2015 - Template Literals
ES2015 - Template Literals
ES2015 - Arrow Functions
mdn
ES2015 - Arrow Functions
mdn
ES2015 - Promises
http://adrianmejia.com/
ES2015 - Promises
http://adrianmejia.com/
ES2015 - Modules
CommonJS
Asynchronous Module Definition(AMD)
ES2015 - CommonJS
ES2015 - AMD
ES2015
How Does ES6+ Effect Frameworks?
React
React - Class
babeljs.io
React - Arrow Functions
babeljs.io
React - Arrow Functions
babeljs.io
React - Template Literals
babeljs.io
Angular
Angular - Modules
Angular - Modules
Our Experience Upgrading from Ng1 to Ng2
AKA How I learned to love the bomb
Our current UI Ecosystem
- Started being built about 4 years ago
- Build is grunt based
- Built on Angular 1 and CoffeeScript
- HTTP Requests for:
- Images, Less, Fonts, etc.
- Massive amounts of complexity
Current Struggles
- Outdated libraries with new dependencies
- jQuery 3 and plugins
- Followed 4 year old patterns (John Papa)
- Dependencies put on global
- Caching issues
- No shadow dom
Running Ng1 and Ng2
- Angular 2 natively supports working parallel to Angular 1
- Upgrade Adaptor vs Platform Browser Dynamic
- Not huge performance hit (maybe?)
https://github.com/jrgleason/coffee-ng1-ts-ng2-demo/
Questions?
deck
By Jackie Gleason
deck
- 638