[Rcpp-devel] Terminology clarification (Re: [Rd] GPL and R Community Policies (Rcpp)

Dirk Eddelbuettel edd at debian.org
Thu Dec 2 22:35:59 CET 2010

There are repeated claims concerning a "Rcpp fork".  Let's address both terms
in turn.

i)  Rcpp was used in November 2008 as the name for a re-launch of a package
    which had seen releases on CRAN in 2005/2006 during which it was also
    renamed to RcppTemplate. Hence no package of name Rcpp had existed for
    years; the package's own author had moved on to anther name (RcppTemplate
    as it were).  As such, no other package conflicted with the name.

    To my knowledge, there is no 'namespace reservation into eternity' for
    project names their very authors have liberated. If I missed a precedent,
    I would appreciate a pointer.

    We still use the name Rcpp today (in what is an almost entirely rewritten
    package with vastly expanded functionality) as it is useful in
    communicating the basic purpose: integrating R and C++.

ii) The usage of "fork" is simply wrong.  As running 'dict fork' on my Unix
    machine shows (among many other entries covering anything from the eating
    utensil to the system call):

        fork In the open-source community, a fork is what occurs when two (or
           more) versions of a software package's source code are being developed
           in parallel which once shared a common code base, and these multiple
           versions of the source code have irreconcilable differences between
           them. This should not be confused with a development branch, which may
           later be folded back into the original source code base. Nor should it
           be confused with what happens when a new distribution of Linux or some
           other distribution is created, because that largely assembles pieces
           than can and will be used in other distributions without conflict.
           Forking is uncommon; in fact, it is so uncommon that individual
           instances loom large in hacker folklore. Notable in this class were the
           http://www.xemacs.org/About/XEmacsVsGNUemacs.html (Emacs/XEmacs fork),
           the GCC/EGCS fork (later healed by a merger) and the forks among the
           FreeBSD, NetBSD, and OpenBSD operating systems.
    Note the "when two (or more) versions of a software package's source code
    are being developed in parallel".  

    Ergo, a "fork" would have required another living project with on-going
    development.  But the code previously known at Rcpp/RcppTemplate was
    anything but "living", this can easily be verified by looking at the
    (preferably time-sorted) directory at CRAN (see link [1] below).

So let's please stop calling this a "fork" of Rcpp.  The Rcpp / RcppTemplate
project was not live in late 2008; we changed that and started a relaunch
under the (unused !!) name Rcpp which now, a good two years later, looks
pretty healthy with four contributor and growing use within the R community.
Rcpp has been almost completely rewritten and enhanced, but I fail to see the
bitterness of its original author.  There could be some pride in seeing ideas
re-used.  But to each their own.

Lastly, for the associated 'remove my name' request: I have emails from 2008
requesting this (which I accomodated), I also have emails from 2009 that
requested the reversal (also accomodated).  This is getting old.

Finally, as Ravi wrote:

On 2 December 2010 at 10:36, Ravi Varadhan wrote:
| So, Dominick - please cheer up and try to find some solace in that your work
| has had an influence on the R community!


I have even older emails (from 2005/2006) where the author complains that no
other R packages use what was then Rcpp.  The code changed a lot, but there
is still some pride to be had in an idea living on, even if (as Peter wrote)
someone else picks up "your" ball and runs with it.

Regards, Dirk

[1] http://cran.r-project.org/src/contrib/Archive/cxxPack/Ancestry/?C=M;O=A

Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com

More information about the Rcpp-devel mailing list