[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