<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body bgcolor="#FFFFFF">
<div>On Dec 28, 2012, at 11:19, "Andreas Rossberg" <<a href="mailto:rossberg@google.com">rossberg@google.com</a>> wrote:<br>
<br>
</div>
<div></div>
<blockquote type="cite">
<div>
<div style="font-family:arial,helvetica,sans-serif;font-size:10pt">
<div dir="ltr">
<div class="gmail_default" style="">On 28 December 2012 16:20, Domenic Denicola <span dir="ltr">
<<a href="mailto:domenic@domenicdenicola.com" target="_blank">domenic@domenicdenicola.com</a>></span> wrote:</div>
<div class="gmail_extra">
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>
<div style="direction:ltr;font-size:10pt;font-family:Tahoma">Finally, I can't shake the feeling I'm missing something. Why is this aliasing property valuable, given that it's so contradictory to expectations?</div>
</div>
</blockquote>
<div><br>
</div>
<div style="">Your expectations must be different than mine. :)</div>
<div style=""><br>
</div>
<div style="">Dave and Sam may have a different answer, but I'd answer that the aliasing semantics follows from a module system's role as (among other things) a name spacing mechanism.</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<div><br>
</div>
This idea of modules as namespaces is a very interesting one I hadn't considered. My experience is with C++/C# namespaces, and with ES5 modules. With only this experience, the two concepts seem worlds apart. Are there other precedents where something by the
 name of "modules" acts like C++/C# namespaces, e.g. Ruby or Python? If not, perhaps the feature should be renamed to avoid confusion?
<div><br>
</div>
<div>I guess this point of view explains why there was so much TC39 interest in `import *`.</div>
<div><br>
<blockquote type="cite">
<div>
<div style="font-family:arial,helvetica,sans-serif;font-size:10pt">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div style="">I think that the loss of either of these properties would make modules far more surprising, and refactoring code into modules harder and more error-prone.</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
<br>
</div>
<div>To who, though? I'm hesitant to draw on existing ES5 module systems as precedent, given their major flaws with regard to static compilation (and the underlying priorities these flaws reveal). But if you're talking about refactoring existing code, and surprisingness
 to existing ES programmers, I think you have to consider module usage today.</div>
<div><br>
</div>
<div>You could argue that "most" ES programmers aren't using modules today, so preserving the intuitions of and making refactoring easier for that minority isn't valuable. You might be correct, but I think the most avid early adopters who will drive ES6 forward
 are precisely the ones using ES5 modules. Furthermore, many of those not using modules are using "namespaces" via global object hierarchies, which (without `with`) have no aliasing properties.</div>
</body>
</html>