Wirfs-Brock explained that much energy over the past decade has gone into creating libraries that invent new class models or modularity. ES6 streamlines all that. The TC-39 committee is the working group within Ecma dedicated maintaining the ECMAScript standard, and one of its primary goals, according to Wirfs-Brock, was to consider language design features that offered something unique—something a library couldn’t do.
Yet while the standard is designed to ultimately replace some of the language’s add-ons, Wirfs-Brock said there will always be a place for developers writing new libraries and improving the language on their own, and described the existing ecosystem as simply “massive.”
“Libraries are good. We want people writing libraries,” he said. “If what you need is, say, a new data structure or a family of algorithms, a library is a way to do that.
“Even two years ago, I might’ve said [the third-party ecosystem] is primarily in the browser, with a little server-side and other uses. This year I wouldn’t say that. You have the whole server-side community with Node.js and io.js, lots of pickup in embedded systems and robotics—it’s really all over the place.”
The ES6 specification itself gained final draft approval at the latest TC-39 meeting this past March in Paris ahead of the June Ecma general assembly. Once officially standardized, Wirfs-Brock said pressure will be on browsers to implement, and then on developers to use the language and its features in ways the committee never imagined.
“Browsers won’t wake up with ES6 today,” said Wirfs-Brock. “It’s an incremental process with very deep semantics at the deepest level of engines. At a language design level, we made things easier on developers by making the engine implementers work harder. We’ll also start to see the ES6 features, many of which are already in browsers, slowly benchmarking and optimizing over time. There’ll be pressure not only to get features implemented, but also equal pressure on browsers to up performance. An implementation is only guessing at what it should optimize, and that’s where browser competition is good. No browser (or by extension developer) will use the language in exactly the same way.”
Even more than the classes, modules and litany of other features introduced in ES6, Wirfs-Brock sees the larger legacy of the standard as establishing a new baseline for future updates and releases. Rather than a massive update every five or 10 years, the TC-39 committee plans a yearly release cycle with ECMAScript 7 arriving sometime in 2016 with cleanup and bug fixes.
“ES6 is a big spec with a big effort,” said Wirfs-Brock. “Out of the 650 pages, about 550 of them are pseudo-code algorithms; essentially a piece of software. We’re definitely taking more of a train model to see which new features are added from year to year going forward.”
On the horizon for ES7 are several features in active development, including enhanced asynchronous programming support, single instruction, multiple data (SIMD) support, high-performance computing and hosting other languages, along with further enhancements to classes.