<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jun 9, 2014 at 7:51 AM, Axel Rauschmayer <span dir="ltr"><<a href="mailto:axel@rauschma.de" target="_blank">axel@rauschma.de</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">I’m assuming that people will default-export objects (for Underscore.js-like libraries). I’d call those pseudo-modules, because one would be partially working around the module system (no load-time errors!).</div>
</blockquote><div><br></div><div>Then aren't you arguing against default-export? </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">
<div><br></div><div>Maybe we’ll import modules like this [^1], but that feels syntactically inconsistent to me and you don’t get load-time errors, either:</div><div><br></div><div>```js</div><div>import "Underscore";<br>
const _ = System.get("Underscore");<br></div><div>```</div></div></blockquote><div><br></div><div>Seems to me that users will write</div><div>```js</div><div>import {_} from 'Underscore';</div><div>```</div>
<div>because the underscore team will write their ES6 modules to support this syntax.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">
<div><br></div><div>[^1]: <a href="https://gist.github.com/domenic/2230a7195fa0de31a227" target="_blank">https://gist.github.com/domenic/2230a7195fa0de31a227</a></div></div></blockquote><div><br></div><div>These examples mix issues. If you want to rename a passel of imports, you necessarily have a passel of renamings to write. That is not the fault of the module syntax. Similarly, if the module author chooses to export a long list of functions, write a long list of imports or find another library. Finally, analysis based on node modules assumes a function-oriented or object-based language, but ES6 is a class-based language: based on our experience the majority of exports going forward will be classes.</div>
<div><br></div><div>jjb</div></div></div></div>