excluding features from sloppy mode

Andreas Rossberg rossberg at google.com
Sat Dec 29 05:47:25 PST 2012


I haven't replied to this thread yet, because I feel that I already
made all the same arguments repeatedly to no avail. ;)  However, let
me reiterate one particular observation, which is that IMHO much of
the discussion (and decision making) around 1JS, modes, and opt-ins is
just mistargeted.

Namely, it is primarily based on the expectations and needs of
_current_ users. Users that are aware of what's ES3 or 5 and who are
about to investigate what's new in ES6. To those users, design choices
like making new constructs opt into strict mode by default will not
seem a big deal, even natural.

But that group will be irrelevant after a relatively short time of transition!

ES6+ will stay much longer (at least that's what we are working for).
Consequently, what should take precedence are the expectations and
needs of _future_ users of ES. Those who will come to ES6+ without
knowing nor caring about the colorful history of its earlier versions.
For them, having various features locally change the semantics of
unrelated constructs will be surprising at best. It means having to
remember a seemingly random set of rules for what semantics is active
where.

The more such rules there are, and the more fine-grained they are, the
less readable code becomes, and the more error-prone programming and,
particularly, refactoring will be -- not just for the current
generation of ES programmers, but for all generations to come. IMHO,
that is the wrong trade-off entirely.

/Andreas


More information about the es-discuss mailing list