2016

2016

another year of JavaScript...

w/ Steve Venzerul & Bruno Carriere

http://js-montreal.org

js-montreal

In 2016,

 

new members

959

7 years
116 talks
2285 members

Vanity slide: January 2010, the First js-montreal meetup

No plans to stop yet.

Join us on Slack

https://goo.gl/n25Fv5

TC39 FTW

The JavaScript Language

We're still calling it ES7 anyways

ES2016 ratified in June. The process works!

 

ES2016 is a tiny release, which is a good sign. 

Multiple maturity stage process means that we have to be careful when calling features "ES2017" features, etc.

 

Disappointed: Modules not in mainstream browsers, but they work in Edge and Safari Technology Preview!

The Maturity Stages

Stage 0: Strawman. Anyone can submit ideas, free-form. The proposals get reviewed by the committee.

Stage 1: Proposal. Formal proposal for a feature. Needs a TC39 committee champion or co-champion.

Stage 2: Draft. First version of the formal specification. It is likely that this feature will be included in the standard.

Stage 3: Candidate. Proposal is mostly finished, needs feedback. Specification is complete and approved. Two implementations needed.

Stage 4: Finished. Tests, implementations that pass the test, specification text must be signed off on.

The Maturity Stages

Stage 1 (Maaaaaaaybe)

WeakRefs

Observable

Stage 2 (Draft, so probably)

Class & Property Decorators

Private Fields

Public Class fields

Stage 3 (You're good)

Rest/Spread

Things you might be using already

Babel Everywhere

Babel Everywhere

  • If you're using JSX: Babel
  • If you're writing ES2016+ for the Browser: Babel
  • Babilli Minifier for sure it's Babel
  • Stripping Flow types? Babel
  • Generators / yield? Probably Babel

React and Friends

React & React-alike

  • Preact
  • Inferno
  • Deku, Yolk, etc

Besides the huge adoption of React, one thing that has surprised is
React as a "component interface"

Many frameworks are adopting models compatible or very similar to React's component model and lifecycle events.

JavaScript in ur CSS

CSS in JS

The idea itself is not new, but 2016 has seen the idea become way more acceptable and mainstream.

 

Dozens of frameworks. Comprehensive list

https://github.com/MicheleBertoli/css-in-js

Other Nice Things

Svelte

"Ahead of time" component framework

rather than interpreting your application code at run time, your app is converted into JavaScript at build time. (...) you don't pay the performance cost of the framework's abstractions, or incur a penalty when your app first loads.

Next.js

Server rendered,  minimalistic, "Zero Setup", convention based, easy to get started, magically easy deployment.

 

Probably the first of many exploring this space.

Vue.js 2.0

Simple lean and fast, passionate community - could be a good alternative for incremental adoption in a legacy codebase.

 

PWA

Progressive Web Apps: The dream of mobile web apps is still alive. Not everyone believes Native Apps have won. Good practices and principles to follow for all web apps, really. Maybe this is what will save Polymer?

Picks & Favourites

Books

Dr. Axel Rauschmayer "Exploring ES2016 and ES2017"

Links

Tutorials

Wes Bos "React for Beginners"

https://reactforbeginners.com/

Dan Abramov "Getting Started with Redux"

https://egghead.io/courses/getting-started-with-redux

WILD PREDICTIONS

OF THE FUTURE

2015 Predictions

Single Page Apps

are going to get less popular as the pendulum swings back

Static pages 5ever

WRONG

But I Still Think I'm Right

Microsoft

will somehow make a cross platform browser. it will be the best one you've ever used.

WRONG

But not completely crazy!

Open source Chakra Engine

Many multiplatform releases (.NET core)

Visual Studio Code

Visual Studio for Mac!!

Still think it'll happen.

New
Predictions

If you think you have JavaScript Fatigue now, WebAssembly is going to ruin your life.

From our friends on Slack

@rcyr

Optional typing (Flow, TypeScript, etc) usage increase in popularity, Angular2 helping

Async/Await will become widely used

Vue.js is going to see an increase in adoption (we agree)

People will still complain about "JavaScript Fatigue"

Electron gets more popular for desktop applications.

Service workers adoption

From our friends on Slack

@frank

Less server rendering more streaming with Fetch API & ReadableStream
Dart will make a comeback and come nose to nose with TypeScript
Yield + promises will become popular
React will be the lib of 2017 (Bruno: Clearly is the lib of 2016)

Thanks

 

have a great 2017
without undefined exceptions

JS 2016 - Retrospective

By signupskm

JS 2016 - Retrospective

  • 1,251