2010/2/2 David Herman <dher...@mozilla.com> > Hi Vassily, thanks for the feedback. > > > It should be > > > > <script type="harmony"> > > > > // import everything as Math > > import "Math"; > > > > alert("2π = " + Math.sum(Math.pi, Math.pi)); > > > > </script> > > This is already possible with the `import "Math" as Math' form (which > incidentally can easily be compiled to be exactly as efficient). Leaving the > "as Math" part implicit doesn't work if the module specifier is not > syntactically an identifier: > > import "@#$!"; > @#$!.mumble("grunch") > > > We already have "with" for polluting local namespace, > > and short syntax for such polluting doesn't feel right. > > That's an inappropriate comparison, for two critical reasons. First: `with' > *dynamically* changes the environment, so it destroys lexical scope, whereas > when you import everything from a second-class module, it is still possible > to know statically what bindings are in scope. Second: there's no > contention, since it's a static error to import two modules that bind the > same name. So conflicts are ruled out, and there's no ambiguity in a valid > program. >
If one module can extend its API and break code that depends on it, how does this proposal solve the namespacing problem? > Now, I recognize that some people feel that stylistically the "import > everything" approach is bad /style/, and that programmers ought to list all > their imports explicitly. But at the same time, this is still a scripting > language, and it has to be convenient. There's a difference between > advocating a style and forcing it. And if it imposes too heavy a burden you > get nasty unintended consequences (e.g., nobody uses modules at all). > > > Some longer syntax would be better, e.g. > > > > <script type="harmony"> > > > > // import everything > > import "Math" as this; > > > > alert("2π = " + sum(pi, pi)); > > > > </script> > > That would only work with at most one module. > > Dave > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss