ES Modules: suggestions for improvement
Brendan Eich
brendan at mozilla.org
Wed Jun 27 01:31:06 PDT 2012
David Bruant wrote:
> Le 26/06/2012 16:44, David Bruant a écrit :
>> Also relevant to this thread, post on the same topic by Isaacs
>> (node.js lead) : http://blog.izs.me/post/25906678790/on-es-6-modules
> "Furthermore, |let| already gives us destructuring assignment. If a
> module exports a bunch of items, and we want several of them, then do
> |var {x,y,z} = import 'foo'| or some such."
> => Excellent idea. That combined with the single export idea reduces
> the amount of new syntax to introduce.
Declarations can nest under control flow constructs, but import or
module dependencies must be prefetched. They're static.
if (some_rare_condition()) { let x = import "m"; ... }
either always prefetches "m", which does not say what is meant; or it
nests an event loop, violating run-to-completion, which is not going to
happen.
> The Module proposal has a local renaming feature which I think should
> be kept:
> Initial proposal:
> import { draw: drawShape } from shape;
> import { draw: drawGun } from cowboy;
> Could become:
> let {draw: drawShape} = import './shape.js'
> let {draw: drawGun} = import './cowboy.js'
>
> I would actually reverse the order:
> let {drawShape: draw} = import './shape.js'
> let {drawGun: draw} = import './cowboy.js'
> But that's a matter of taste.
No, you can't so reorder, it's not a matter of taste. Destructuring is
the dual <http://en.wikipedia.org/wiki/Dual_%28category_theory%29> of
structuring.
/be
More information about the es-discuss
mailing list