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". 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. 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. _______________________________________________ Rcpp-devel mailing list [email protected] https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
