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
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"
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,305