Re: [Rd] One for the wish list - var.default etc

From: Prof Brian Ripley <ripley_at_stats.ox.ac.uk>
Date: Wed, 09 May 2007 15:08:55 +0100 (BST)

On Wed, 9 May 2007, S Ellison wrote:

> Brian,
>
>> If we make functions generic, we rely on package writers implementing
>> the documented semantics (and that is not easy to check). That was
>> deemed to be too easy to get wrong for var().
>
> Hard to argue with a considered decision, but the alternative facing
> increasing numbers of package developers seems to me to be pretty bad
> too ...
>
> There are two ways a package developer can currently get a function
> tailored to their own new class. One is to rely on a generic function to
> launch their class-specific instance, and write only the class-specific
> instance. That may indeed be hard to check, though I would be inclined
> to think that is the package developer's problem, not the core team's.
> But it has (as far as I know today ...?) no wider impact.

But it does: it gives the method privileged access, in this case to the stats namespace, even allowing a user to change the default method which namespaces to a very large extent protect against.

If var is not generic, we can be sure that all uses within the stats namespace and any namespace that imports it are of stats::var. That is not something to give up lightly.

> The other option, with no existing generic, is to mask the original
> function by writing a new generic function that respects the original
> syntax exactly, and then implement a fun.default that replicates the
> original non-generic function's behaviour, hopefully by calling it
> directly. As an example, library(circular) masks stats::var, though I'm
> fairly sure its not the only case. This has obvious disadvantages,
> including potentially system-wide (R-wide at least!) impact and
> unfavourable interactions between packages masking each other's generics
> and defaults).

Just as can happen with methods.

> I will use masking if I have to, at least for my own local use where its
> only me that suffers if (when?) I get it wrong. But the idea makes me
> very nervous, especially if I imagine folk who _don't_ get as nervous at
> the idea.
>
> Hence the feeling that wider use of generics for fundamental and common
> functions might make for a safer world.

The opposite appears to be truer.

-- 
Brian D. Ripley,                  ripley_at_stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________
R-devel_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
Received on Wed 09 May 2007 - 14:32:54 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 09 May 2007 - 16:33:45 GMT.

Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-devel. Please read the posting guide before posting to the list.