[Rd] NAMESPACE Q: does import as exist?

Seth Falcon sfalcon at fhcrc.org
Thu Feb 9 17:19:35 CET 2006


Hi Luke,

Thanks very much for the explanation.

On  8 Feb 2006, luke at stat.uiowa.edu wrote:
> Allowing for renaming complicates the code; it also may prevent, or
> at least significantly complicate, changes in the implementation we
> might want to make.

Makes sense that this feature is not of highest priority.  Renaming
will always be available as newFoo <- somePkg::foo.  The ability to do
the renaming in the NAMESPACE file has the added advantage of being
declarative.  That has value, but certainly one can get by without
it.  

Given that newFoo <- somePkg::foo will always work, I would think that
getting it to work in the NAMESPACE file shouldn't add too much
complexity, but I recognize this is a naive view.

> On the other hand this might be quite useful in some settings.  We
> had some disagrements about how useful, so the compromise was to
> leave the facility in but not officially document it, and wait and
> see what the need looks like.  This is the first request I recall in
> almost three years since the mechanism was introduced, so it is not
> a major issue.

My bias is obvious from this thread; I think this is a valuable
feature and I'm not sure the count of requests in the past 3 yrs is a
fair measure.  There is, perhaps, a feedback loop: 

  more doc (plus beating with sticks)  => more use of namespaces
                                       => more feature requests

In the end, I would like to see more packages use namespaces and I
think this would be helped by more doc and examples.

> So if you want to use this do so with caution.  If we see
> substantial usage we may need to think about formally documenting
> and testing this; but only after carefully considering whether it
> does impose limits on other things we would like to do.

That is clear.  One last thought that I didn't see mentioned in the
namespace notes on your website:

Is there a way to say in the NAMESPACE file: 

  I'm going to use pkgFoo, please load the package, but don't import
  anything because I will access via pkgFoo::

I realize that '::' will load pkgFoo on demand.  My reservation about
using :: is that it is easy to lose track of the fact that my package
needs pkgFoo.  I like the idea that all of my package's dependencies
are easily parsable by the system.

Having written that, I realize that the Imports field in DESCRIPTION
gives me a way to do this --- but in an ideal world I would need to
duplicate info from NAMESPACE in DESCRIPTION.

Best Wishes,

+ seth



More information about the R-devel mailing list