
An update on strong mode - joajoa
https://groups.google.com/forum/#!topic/strengthen-js/ojj3TDxbHpQ
======
venning
> _ES6 performance sucks! Strong mode is a mode for ES6, you cannot use it
> without using various ES6 features. However, idiomatic ES6 code currently is
> substantially slower than ES5, across all browsers -- easily by 2x, often by
> 10x or more. Due to the sheer size of ES6, plus a number of unfortunate
> design choices, it will likely take years until implementations catch up
> with ES5 optimisations, and the hundreds of man years that went into those._

This has been my suspicion for a while. Perhaps I've missed other comments to
this effect, but I don't think I've heard anyone else articulate it.

~~~
SerpentJoe
I wonder which features are slow. I'm assuming generators and by extension the
for-of syntax, which is otherwise a thing of beauty. I imagine proxies are
somewhere between slow and horrifyingly slow.

I have noticed that none of the features I'd hoped would save cycles (const,
generators, fat arrow functions) seem to be helping at all in the browsers of
today.

~~~
madeofpalk
Last time I checked, fat arrow functions have a performance penalty because of
all the optimisations that's made around scope in regular ES5 functions can't
be used.

I believe ES6 fat arrow functions are slow for a similar reasons as why
regular functions are slow when you use the magic arguments variable.

~~~
venning
Regarding the scope optimizations: that's an interesting point. I wonder if
the different scoping of _let_ / _const_ also create a performance penalty
versus _var_.

~~~
madeofpalk
This is true as well.

------
SloopJon
For those who were wondering what strong mode is, this is a post to the
Strengthening JS group, which for discussion of "strong mode and type system
extensions that the V8 team is working on."

Strong mode is "a new language mode (an extension of strict mode) that
implements a stronger semantics by removing brittle or costly features."

[https://developers.google.com/v8/experiments](https://developers.google.com/v8/experiments)

The conclusion is that "we have reluctantly decided not to pursue strong mode
further."

~~~
mkesper
Additional quotes:

Not all is lost. We continue to investigate the addition of types to V8. And
in fact, typing may bring some of the benefits of strong mode for lower cost.

...probably have us readjust our design goals. In particular, we no longer
believe that requiring type soundness _by default_ can ever work successfully
in JavaScript.

------
mchahn
Why does one of the comments on that thread say strong mode is dead? Everyone
seemed to ignore the comment.

~~~
Zarel
Because it _is_ dead. Relevant excerpt from the OP:

TAKE-AWAY

Considering all that, we have reluctantly decided not to pursue strong mode
further. We learned some worthwhile lessons, but overall it is not clear that
the benefits justify the costs. Starting with the next version of V8, we will
hence remove support for strong mode.

