[Rcpp-devel] Differences between RcppEigen and RcppArmadillo

Douglas Bates bates at stat.wisc.edu
Mon Jun 18 20:49:19 CEST 2012


On Sun, Jun 17, 2012 at 11:09 PM, c s <conradsand.arma at gmail.com> wrote:
> On Sun, Jun 17, 2012 at 4:21 AM, Douglas Bates wrote:
>> These comments may provoke a heated response from Conrad but,
>> if so, I don't plan to respond further.  Eigen and Armadillo are different
>> approaches, each with their own advantages and disadvantages.
>
> I'm actually in favour of heterogeneous solutions and support the use
> of C++ for performance critical implementations.
>
> Relying on only one solution (ie. homogeneity) is bad from a
> "survival" point of view, due to very similar reasons as in the
> biological world: a fault can affect the entire population, or a virus
> can propagate itself quite easily and do lots of nasty things.  For
> example, see the recent snafu with state-sponsored viruses attacking
> Windoze installations, ie, Stuxnet and Flame:
> http://www.h-online.com/security/features/FAQ-Flame-the-super-spy-1587063.html
>
> In my view, the C++ brethren Armadillo and Eigen are not really up
> against each other, but against Matlab.  Matlab is like crack or
> crystal meth.  Highly addictive, but in the end bad for you.
> Mathworks, the company that produces Matlab, hooks people in while
> they are university students.  It provides low prices to educational
> institutions, and charges through the roof for everyone else.
> Students become graduates, which are then employed by the companies
> that are in effect stuck with using Matlab.  This is a strategy known
> as vendor lock-in, exploited by monopolists.  Other descriptions
> consistent with the business model of Mathworks are "parasite" and
> "leech".

I completely and happily agree.

> One way of keeping Mathworks in check is to provide alternative
> solutions that have similar functionality (eg. easy visualisation of
> data and rapid prototyping).  One of them in GNU Octave, which really
> needs a JIT compiler to effectively compete with Matlab..  Another is
> R.  I believe R currently doesn't have a JIT compiler (I haven't
> checked lately), and hence the very useful Rcpp fills in the
> performance gap.

The recently-developed Julia language (JuliaLang.org) has a JIT and a
syntax that is familiar to Matlab and R users.  It is still very much
a work in progress but shows great promise.

> One also has to address the current reality that people still overly
> rely on Matlab, and have the problem of converting their Matlab code
> into production environments / products.  This is where C++ comes in,
> and libraries such as Armadillo (with its Matlab-like syntax) can be
> quite handy.


More information about the Rcpp-devel mailing list