
On Friday 30 May 2003 3:45 am, Peter Simons wrote:
The only way to guarantee unique names -- without requiring people to abide to some "arbitrary" convention -- is the module names to be relative. If I import a module "Foo.Bar", and I am "Peter.Simons.ToolXY", then this module will be "Peter.Simons.Foo.Bar" for me. In such a system I can uniquely access any module, no matter how it's called.
Maybe I need more coffee but I don't see how using relative names helps with the hard bit of the problem: conflicts between libraries written by different people. Suppose module Peter.Simons.ToolXY wants to import Alastair.Reid.Foo.Bar (which is meant to mean the library written by me), but someone else by the name of Alastair Reid (e.g., the poet/ author who translates Neruda and Borges from Spanish to English) has also written a library called Alastair.Reid.Foo.Bar. It's all very well saying that inside your library the library is called Peter.Simons.Foo.Bar but that doesn't seem to address the issue that there is an ambiguity that has to be resolved. -- Alastair Reid