+ All Categories
Home > Spiritual > NodeConfLondon - Making ES6 happen with ChakraCore and Node

NodeConfLondon - Making ES6 happen with ChakraCore and Node

Date post: 24-Jan-2018
Category:
Upload: christian-heilmann
View: 2,764 times
Download: 0 times
Share this document with a friend
38
Making ES6 happen with ChakraCore and Node Chris Heilmann @codepo8, NodeConf, London, May 2015
Transcript

Making ES6 happen with ChakraCore and Node

Chris Heilmann @codepo8, NodeConf, London, May 2015

Of innovation and impatience

Chris Heilmann @codepo8, Future Decoded, London, Nov 2015

CHRIS HEILMANN @CODEPO8

①②③④⑤⑥⑦

The JavaScript promise and problem

The Node revolution

Problems with the node approach

Making ES6 happen - or not

OMG, not a second engine!

Looking ahead

My hopes and wishes

①②③④⑤⑥⑦

The JavaScript promise and problem

😀 Making the web much more interactive

😀 Easy to learn without any tooling overhead - use whatever you want.

😀 Doesn’t need any compilation or conversion step - works straight up in the browser

😀 Forgiving and dynamic language allows for lot of different and adventurous development styles

①②③④⑤⑥⑦

The JavaScript promise and problem

🙄 Making the web much more interactive

🙄 Easy to learn without any tooling overhead - use whatever you want.

🙄 Doesn’t need any compilation or conversion step - works straight up in the browser

🙄 Forgiving and dynamic language allows for lot of different and adventurous development styles

①②③④⑤⑥⑦

The JavaScript promise and problem

①②③④⑤⑥⑦

The JavaScript promise and problem

All other basic web standards (HTML/CSS) are designed to be fault tolerant. JavaScript is not.

①②③④⑤⑥⑦

The JavaScript promise and problem

①②③④⑤⑥⑦

The JavaScript promise and problem

①②③④⑤⑥⑦

The JavaScript promise and problem

Browsers are all broken and annoying. Let’s fix all the things ourselves!

①②③④⑤⑥⑦

The JavaScript promise and problem

①②③④⑤⑥⑦

The JavaScript promise and problem

①②③④⑤⑥⑦

The JavaScript promise and problem

①②③④⑤⑥⑦

The JavaScript promise and problem

①②③④⑤⑥⑦

The JavaScript promise and problem

①②③④⑤⑥⑦

Node to the rescue

😀 With Node we liberated ourselves from the woes of the web

😀 We could concentrate on using JavaScript and build all kind of things from micro services and bespoke servers up to huge applications

😀 We control the environment 😀 We can innovate the approach to using

JavaScript and imitate, build upon or improve what other languages do

①②③④⑤⑥⑦

Problems with the node approach

①②③④⑤⑥⑦

Problems with the node approach

😠 We limited ourselves to one JavaScript engine - monoculture is never a good plan

😠 We build towards the capabilities of one engine instead of a standard

😠 We run into the danger of relying too much on dependencies (see: left-pad)

😠 Politics and a harsh, very engineering, comp-sci driven approach

😠 “Hey, it works…”

①②③④⑤⑥⑦

Making ES6 happen - or not

😀 ES6 is a great opportunity to clean up our act as a JavaScript community

😀 We have a new, ratified standard 😀 This standard has truckloads of good features that

make library usage unnecessary 😀 It is also a great opportunity to re-vamp our

educational materials and fade out old, bad advice

①②③④⑤⑥⑦

Making ES6 happen - or not

1997 20151998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015

1997ECMAScript1

1998ECMAScript2

1999ECMAScript3

2005 - 2007ECMAScript4 - Abandoned

2009ECMAScript5

2015ECMAScript6

①②③④⑤⑥⑦

Making ES6 happen - or not

Library Builders

map, set & weakmap__proto__ProxiesSymbols

Sub7classable built7ins

Scalable Apps

let, const & block7scoped bindings

ClassesPromisesIterators

GeneratorsTyped arrays

Modules

Syntactic Sugar

Arrow functionsEnhanced object literals

Template stringsDestructuring

Rest, Spread, DefaultString, Math, Number, Object, RegExp APIs

①②③④⑤⑥⑦

Making ES6 happen - or not

http://kangax.github.io/compat-table/es6/

①②③④⑤⑥⑦

Making ES6 happen - or not

http://babeljs.io

①②③④⑤⑥⑦

Making ES6 happen - or not

①②③④⑤⑥⑦

Making ES6 happen - or not

https://github.com/samccone/The-cost-of-transpiling-es2015-in-2016

①②③④⑤⑥⑦

OMG, not a second engine!

①②③④⑤⑥⑦

OMG, not a second engine!

😀 ChakraCore is now available to power node 😀 Breaking the monoculture 😀 Highly optimised to run in low end environments 😀 Brand new engine, without overhead from old

browser dependencies

①②③④⑤⑥⑦

OMG, not a second engine!

①②③④⑤⑥⑦

OMG, not a second engine!

①②③④⑤⑥⑦

OMG, not a second engine!

https://www.youtube.com/watch?v=1bfDB3YPHFI

①②③④⑤⑥⑦

OMG, not a second engine!

https://blogs.windows.com/msedgedev/2016/01/19/nodejs-chakracore-mainline/

①②③④⑤⑥⑦

OMG, not a second engine!

https://blogs.windows.com/msedgedev/2016/01/19/nodejs-chakracore-mainline/

①②③④⑤⑥⑦

OMG, not a second engine!

https://blogs.windows.com/msedgedev/2016/01/19/nodejs-chakracore-mainline/

①②③④⑤⑥⑦

OMG, not a second engine!

https://github.com/Microsoft/ChakraCore

①②③④⑤⑥⑦

Looking ahead

🏅 Node should be the place where we kick the tires of JavaScript

🏅 We build the tools we use to build things in Node, so let’s not repeat the mistakes we did on the web

🏅 We can educate developers in our tools rather than outside it

🏅 If we want node to take off, we also need to embrace the needs of people outside our community.

①②③④⑤⑥⑦

My hopes and wishes

①②③④⑤⑥⑦

My hopes and wishes

🦄 Less drama and more documentary

🦄 Embrace constant change and avoid monoculture

🦄 Don’t forget to keep things simple

🦄 Stop making computer science a religion - the web was built by everyone

🦄 User choice and user experience should always trump developer convenience

🦄 Teaching beats preaching…

THANKS! CHRIS HEILMANN

@CODEPO8

CHRISTIANHEILMANN.COM


Recommended