From: Albert Retey on
Hi,

> I think that it's worth noting that these problems (poor attention to
> conventional Mathematic coding rules) appear throughout a number of
> non-Private` contexts of the form Parallel`*`*`. These contexts
> appear when the Parallel Kernel Configuration panel is opened (under
> the Evaluation Menu) is opened, Once that is done execute
>
> Names["Parallel`*`*"]
>
> and see the various parameter names.

The question is what is it that qualifies a namespace (context) to be
private? To my understanding it is just a convention to name contexts
that are considered private "Private`", but the actual difference is
whether a context is ever appearing on $ContextPath or not. As long as
something isn't appearing in $ContextPath I would consider it "private",
no matter what its called and it should never cause any shadow messages.
E.g. when using the standard:

BeginPackage["MyPackage`"]
Begin["`Local`"]
End[]
EndPackage[]

I would consider "MyPackage`Local`" a perfectly private context, no
matter what it is called. It's privacy is what actually makes me not
care what it is called and which symbol names are used within it.

In the case of the parallel package it looks like the functionality has
been split into some modules which implement functions in more than one
private context and to do that, you obviously need different names for
these modules, since not all can be named "Parallel`Private`". So far I
see no problems, since there shouldn't be a reason to ever call Needs[]
on one of them and they usually don't appear in $ContextPath, if I don't
make them to.

The problem seems to be that these contexts are somwhere used in an
effectively non-private way within the Parallel functionality. That
means the appear on $ContextPath along with "Global`" (or something
alike) which causes the Shadow-Messages the OP sees to appear. But this
seems to be independent of what these Contexts and the functions within
them would be called...

So I think the problem is not that there are contexts "Parallel`*`"
which contain symbols which do not meet the usual conventions but that
some of these contexts are obviously not as private as they should be.

Where do you think the "poor attention to coding rules" within a private
context would cause any problems, if the contexts would actually be
treated to really be private as my example of "MyPackag`Local`"? I also
think that the use of private contexts which are not called "Private`"
is fairly common within the rest of Mathematica (just evaluate
?*`Dump`*), too, and I also use it every once in a while...

hth,

albert