[Rd] S3 vs S4 for a simple package
Prof Brian Ripley
ripley at stats.ox.ac.uk
Mon Jan 7 10:11:18 CET 2008
On Mon, 7 Jan 2008, Robin Hankin wrote:
> I am writing a package and need to decide whether to use S3 or S4.
>
> I have a single class, "multipol"; this needs methods for "[" and "[<-"
> and I also need a print (or show) method and methods for arithmetic +-
> */^.
>
> In S4, an object of class "multipol" has one slot that holds an array.
>
> Objects of class "multipol" require specific arithmetic operations;
> a,b being
> multipols means that a+b and a*b are defined in peculiar ways
> that make sense in the context of the package. I can also add and
> multiply
> by scalars (vectors of length one).
>
> My impression is that S3 is perfectly adequate for this task, although
> I've not yet finalized the coding.
>
> S4 seems to be "overkill" for such a simple system.
>
> Can anyone give me some motivation for persisting with S4?
>
> Or indeed reassure me that S3 is a good design decision?
Does performance matter?: S4 dispatch is many times slower than S3
dispatch for such functions. (It is several times slower in general, but
the difference is particularly marked for primitives.)
--
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
More information about the R-devel
mailing list