翻译的初衷

由于研究需要,我在尝试使用C++来实现一些数值算法,求解优化问题。在倒腾Rmarkdown主题美化的时候,关注了prettydoc。巧的是,在作者yihuan(后面发现也是给Rcpp:R与C++的无缝整合写序的大佬)的github上,看到了很多相关的工作,比如优化和数值积分,Readme上我看到的都是fastc++俩词。因此,开始学习Rcpp

Rcpp:R与C++的无缝整合是我见到的第一份完备的Rcpp资料。拿到中文书籍的那一刻,爱不释手,然而读了一遍,大半内容我都是云里雾里。因此只能搁置。于是,算法只能用R写,速度慢也只能认了。后来在一些嵌入式系统上写了一段时间c,回头再看书,内容渐渐明了起来。我这才意识到,此前是我没有达到看书的门槛。

Hadley Wickham在Advanced R中的前言谈到,很多R用户并不是程序员,且R用户追求的是解决问题,而不在意该过程。相信同我一样,很多R用户,其他语言背景(尤其是C/C++)很薄弱。这也意味着,以C++的角度来学Rcpp,会阻挡一部分的R用户迈入Rcpp。

Rcpp for everyone一书对这个问题给出了自己的答案。This document focuses on providing necessary information to users who are not familiar with C++. Therefore, in some cases, I explain usage of Rcpp conceptually rather than describing accurately from the viewpoint of C++, so that I hope readers can easily understand it. 与其设想的描述方式一致,本书的内容偏重于从Rcpp的角度来讲问题,较少涉及到C++的知识。这在保证用户理解的情况下,又能让用户以一种R语言的风格,来写Rcpp代码。在我看来,这可能是对C/C++了解不多的R用户,最简明的Rcpp入门教材。

最后,Rcpp for everyone ==>> Advanced R Rcpp部分 ==>> Rcpp:R与C++的无缝整合应该是我目前能发现的最平滑的Rcpp学习路线。希望本书的中文翻译能对更近一步地降低Rcpp的学习门槛,对大家的学习科研有所帮助。

jywang
二零一九年八月