The Future of JavaScript

Is Universal

With your host

@MylesBorins

Node+JS Interactive 2019

Bonjour

My Name is Myles

itsa me!

I am gainfully employed by Google as a Developer Advocate

Focusing on the Node.js ecosystem and GCP

Google Cloud Platform
The opinions expressed in this talk are solely my own

The opinions expressed in this talk

might be wrong

The opinions expressed in this talk

are definitely opinions

What is Universal JavaScript?

Is this different than

Isomorphic JavaScript

Yes!

Universal JavaScript

Write once, run anywhere.

Universal JavaScript seems great

Tell me more

There are many JavaScript runtimes

🎉 They share parts 🎉

TC39

Specifies the baseline

ECMA262

Realms, Intrinsics, and Primordials

Primordials

Namespace Objects

ES Modules

Modules have been the missing piece to

Enable Universal Modules

The Loader is not specified

Implemented by embedder

TC39 Leaves it up to hosting environment

To determine Resolution

It is up to the runtime to

Platform Divergence

A healthy source of

Existential Dread

Can have a side effect of

Nihilistic transpilation

Are various JavaScript Platforms

Fundamentally Different?

They can have drastically

Different APIs

Is the browser

Fundamentally different

From Node.js

No, they come from the same soup.

In fact Node.js has adopted

Many APIS designed for browsers

WHATWG

Aren't WHATWG standards browser specific?

We have WHATWG standards "in both runtime"*

Which standards are being explored by Node.js?

The interface vs. Plumbing

Where does the platform begin?

Where does the platform end?

Perhaps Universal JavaScript

Is a platform concern

JSON Modules

Inspired by Node.js

Specified at WHATWG

Rejected at TPAC

Module attributes at TC39

Universal

as a platform ethos

Universal JavaScript at TC39

Universal JavaScript at WHATWG

Universal JavaScript at W3C

How do we find

a shared vision?

Where do we collaborate?

Are various JavaScript Platforms

Fundamentally Different?

Developers shouldn't have to know

Beyond an API

Developer's skills

should be portable

Universal

Needs to be a platform concern

Not a Development target

Universal

Is a goal, not a technique

The Future of JavaScript

Is Universal

If JavaScript is to have a future

Thank You

a surfing puppy

@MylesBorins