On Sun, 16 Jun 2002, Michael G Schwern wrote:

> On Sat, Jun 15, 2002 at 10:35:48PM -0400, John Siracusa wrote:
> > Once nice thing about Java is the class naming convention that lets
> > individual companies (or even individuals, I guess) do custom development
> > that they can safely integrate with the "standard" Java classes and the work
> > of other companies/individuals without fear of namespace clashes.  For
> > example, the Acme Corporation can build a huge library of Java code under
> > the com.acme.* namespace: com.acme.widget, com.acme.widget.control, etc.
> 
> Let's dump out the sack of namespace partitioning problems:
> 
> What if Acme decides it wants to release part of it's code as Open Source?
> (Happens a lot).  Does it release it as Com::Acme::Text::Thing or
> Text::Thing?  If the name changes, do they have to rewrite all their
> existing code?  Or maybe maintain two names?
> 
> What if Acme changes it's name?  Do they stay as Com::Acme or change all
> their code?  I've experienced something similar to this at a company which
> was bought and the subsequent s/Old Name/New Name/ in all the copyrights and
> licenses in all the code.
> 
> What if Acme Corp. and Acme Widgets Inc. both decide they want to use
> Com::Acme?  What happens if lawyers get involved?
> 
> What if Acme Corp. decides it wants to enforce it's trademark on Com::Acme?

You can't get it perfect, realistically.  There could always be two 
parties that want to call their module some name.  I mean, you could 
number modules based on the cardinal (or ordinal... I forget) number of 
their submission... ha ha hA HA HAAA HAAAAAAAAAAA!

I'm okay with the current setup personally, as far as naming goes. I'd 
like there maybe to be a more formal classification, say CHS (CPAN 
Heirarchy Standard).  I like it, though, because it's fairly intuitive on 
my use lines.  We haven't had very many collisions thus far. And if they 
start, that will just force people to be more creative with their naming.

And about the local thing, if they don't use (no pun intended) the Local:: 
heirarchy for local things and their code collides and breaks, that's 
their problem.  Module naming can't be smart for us, we need to help out.

Luke

Reply via email to