David Herman wrote:
On Dec 28, 2012, at 3:01 AM, Kevin Smith<khs4...@gmail.com> wrote:
I'm tellin' ya, no one's going to write any significant non-module code. : )
+9001 (to quote rwaldron)
We should hold the line against any implicit opt-in beyond modules. Mark argues
that classes are coarse-grained, but they can easily be significantly
finer-grained than modules. In particular, they're an expression form and can
be used for tiny little one-offs:
var f = new (class() { m(x) { } })();
Modules are the largest-grain code structuring form, and they are the *biggest
biggest biggest* carrot we have to offer for strict mode.
I get nervous when speculations about future adoption ratios or
incentives for developers are made without enough data or table-stakes
ante'ing (bolded tripled *biggest* doesn't count as money!).
I've seen Kevin make wildly optimistic assertions about future Node
adoption of modules, but from what I know of the "Amish coders" who
dominate there (and believe me I am not mocking, there's much to admire
about the Amish, farmers and coders!), adoption will be a fight, as
Russell suggested.
I'm fine with adding a "use strict"; pragma to classes, but it's also just as
easy to place them in a strict context, either by putting them in a module or a strict
function.
It's easy to place things in a strict context if you mean place in a
module. But per your own argument, outside a module it's much easier to
forget to "use strict'; and make sloppy-mode classes.
Same yardstick should apply to all future measure-guesses of adoption
and ease of strictness.
If you assume modules are biggest^3 then sure, what you and Kevin
surmise will happen is likely: classes appear in modules almost
exclusively, and are thereby implicitly strict.
But this assumption does not prove itself, and more bold-*'ed assertions
on top make me more skeptical.
I bet modules will be a big carrot. But -- especially if Node does not
switch NPM to ES6 modules for a while -- classes could proliferate
outside of modules. I do not know and I'm not willing to add a "use
strict"; pragma special case to ClassElement on the theory it will be
remembered, when our shared theory outside of modules is that it will
likely be forgotten. That just does not seem like same-yardstick
future-speculative reasoning.
/be
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss