ES8 Feature Set: JavaScript is Getting Asynchronous

Written by Eugeniya | Published 2017/02/03
Tech Story Tags: javascript | es6 | ecmascript | async-functions | es8

TLDRvia the TL;DR App

After large ES6 release, that took about 6 years (Dec 2009 — Jun 2015) to get standardized, TC39 committee has given notice of annual but smaller releases, starting with ECMAScript 2016 (ES7). The final feature set of ES8 hasn’t been approved yet, as on Feb 2017, though we can suppose that all the specs from stage 4 and most of the stage 3 will be included in ES2017. The proposed feature set appears as follows:

Core features:

Async functionality is reasonably called a major improvement and arouses much interest among JavaScript developers. Understandably, that it is one of the ways to catch up with other programming languages, like C# that has pioneered asynchronous engineering. Moreover, according to Anders Hejlsberg, the lead C# architect and core developer for TypeScript transpiler for JS, since async programming in JS is in the order of C#’s method.

This functionality will enhance user experience, enable transpilation avoiding, boost the development process and make your JavaScript apps more understandable. You won’t get blocked with long-running and complex operations and waste time waiting for the result.

Shared memory and atomics or Shared Array Buffers serve as a low-level building block for top-level concurrency abstractions. They enable developers to share the bytes of SharedArrayBuffer object between several workers and the core thread. Such approach allows you to share data faster, as well as improve and streamline coordination between workers.

Photo by DA-14 Software Development LLC

Other new options:

The wrap-up

That is more or less the most interesting features for the ECMAScript 2017 and it is not finalized yet. There are more features that are worth your attention because so far they are in stage 3 and can be included in ES8 as well:

  • SIMD.JS — SIMD APIs
  • Function.prototype.toString revisiou
  • Lifting Template Literal Restriction
  • Rest/Spread Properties
  • Asynchronous Iteration
  • global
  • import()

Published by HackerNoon on 2017/02/03