<br><br><div class="gmail_quote">On Tue, May 24, 2011 at 12:26 PM, Jesper Louis Andersen <span dir="ltr"><<a href="mailto:jesper.louis.andersen@gmail.com">jesper.louis.andersen@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">On Tue, May 24, 2011 at 10:06, Joe Armstrong <<a href="mailto:erlang@gmail.com">erlang@gmail.com</a>> wrote:<br>
</div><div class="im">> Why do we need modules at all?<br>
<br>
</div>I think we need modules, but this post sparked a thought I have had<br>
for some time now.<br>
<br>
I'd like to have module renaming/namespacing!<br></blockquote><div><br>I agree - I still like the good 'ol Knuthian way - start with source file, then add patch files.<br><br>You could make a language could make a language construct for this.<br>
<br>   new_foo = alias foo/2<br> </div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<br>
Specifically, I want a mechanism by which I can clean up the naming<br>
mess in the stdlib without affecting old programs. That is, I want to<br>
be able to, at an application/module level, rename function calls in a<br>
way such a way that can clean up parameter orders and so on. I don't<br>
care about how the solution is. I am after the goal: Cleaning up the<br>
stdlib mess.<br>
<br>
You may argue this is a messy thing, but I think it is a necessity if<br>
you want to move the standard library on:<br>
<br>
* We can't alter existing functions because people rely on them.<br>
* Existing functions are not consistent.<br>
<br>
This is a social deadlock I want to break. In fact it is a deadlock I<br>
think we can only break if we allow the coexistence of more than one<br>
module with the same name (but stemming from different namespaces). I<br>
don't want nesting. Just two levels, so I can say<br>
<br>
-use_namespace(v2_modules).<br>
<br>
in modules which use version two of the stdlib in which things are<br>
sensibly named. At some point you can then flip around and compile old<br>
code with a compatibility layer.<br>
<br>
<br>
--<br>
<font color="#888888">J.<br>
</font></blockquote></div><br>