【COS编辑部按】 受访者:谢益辉  采访者:冯俊晨

他站在技术与艺术的交界点。

                                                     ——沃尔特·华森《乔布斯传》

“误打误撞”的成功

2002年,谢益辉报考了中国人民大学统计学系。并不是因为他喜欢统计学——那时候他根本不知道统计学是什么——只是因为人大当年在湖北招生统计系有三个名额,比其他系都多,感觉录取概率会大一些。这个日后将跻身华人R开发者名人堂的湖北小伙,就这样从“种地之家”误打误撞地进入统计学的世界。

yihui_xie

机缘巧合下,谢益辉在大三时承担了人大统计系网站以及论坛的维护工作。为了管好这个论坛,他学习了网页方面的知识,如JavaScript、HTML、CSS等。这些和数据分析风马牛不相及的技能却成为他未来成功的奠基石。他自己笑称“没想到当年玩玩的东西(R和JavaScript)最后竟成为了吃饭的工具”。然而谢益辉的“玩玩”却不是一般人能做到的。“我理想中的网站外观应该有这样的效果:当读者打开网页之后,十秒之内必须在口头或心里说‘真他爷爷的震撼’,甚至心生买椟还珠之意”[1]。益辉是这么想的,他也是这么做的。他在博客中这样描述2009年感恩节期间第三次重构统计之都的经历:“这活儿就跟拱土的猪一样,要拱就拱到底,早上爬起来就开始拱,一直拱到半夜睡觉”。[2]今天,统计之都除了在R语言界独领风骚之外,在整个统计学界也享有盛名。

像大多数刚进入统计学的愣头青一样,谢益辉最初有志于研究统计学理论;然而到了研究生阶段,相较于统计理论本身,他发现自己对如何解释统计理论的工作过程更感兴趣。这是animation这个R包的原动力。它旨在用图形动画来展示基于随机数的统计过程,例如布朗运动。彼时,谢益辉的编程基础只有VB和大约两年的R语言经验;但是缺乏编程功底并没有阻挡他自力更生、野蛮生长:“如果一定要说有什么烦恼,那就是回过头去看自己的代码写的都太烂了;一个函数500行真是不堪回首。”

这个被谢益辉谦逊地称为“写着玩玩”的R包在2009年获得美国统计家协会颁发的John M Chambers 奖,更重要的是,animation的网站被伯乐Hadley Wickham慧眼相中,并介绍给了他的导师Di Cook教授。因为彼此都对统计图形感兴趣,邮件一来二去,谢益辉就踏上了“Ames村办大学”(爱荷华州立大学)统计学系博士的求学路。在捣鼓了两三年交互式统计图形之后,他突然卯上结合怎么使得文字描述和统计分析水乳交融这个难题。当时流行了十年的解决方法是Sweave,即用LaTeX编写文档,用R解决统计。“我觉得这个想法太好了,几年来我一直坚持用Sweave写所有涉及到R和数据分析的作业,但是Sweave的实现却很糟糕。比Sweave更加糟糕的是Sweave的扩展。大家的做法是把Sweave的700行源代码拷贝过来,插入几段自己的代码,就变成了一个扩展的R包”,益辉回忆道,“但是这些新扩展包彼此都不兼容,用户不可能既用这个包,又用那个包,所以我就决定写一个包把所有的改进都做了”。在接下来两周中,他编写出了深刻改变许多人工作流程的knitr包。几个月后,RStudio的创始人JJ Allaire慧眼识珠发现了这个包,当时他恰好在做RStudio支持Sweave的工作,也尝试了一些基于Sweave的扩展包,如现在基本上已经销声匿迹的pgfSweave(自立门户前,益辉曾经是此包的积极贡献者),但觉得都不够好,而knitr是功能比较全面的一个R包,扩展性也强多了。于是他特地飞到爱荷华州立大学,邀请谢益辉和他一起在美国宣讲RStudio中的Sweave和knitr支持。2012年在田纳西Vanderbilt大学举办的官方R语言大会上,JJ Allaire和谢益辉受邀在会上展示了knitr。从2014年初至2015年11月底,knitr大约被下载了120万次:这标志着谢益辉成为R开发界中最成功的轮子制造者之一。

knitr

图1:knitr下载的历史曲线

数据来源:http://cran-logs.rstudio.com/

Knitr:让文字和分析有机融合起来

要理解knitr的成功,首先要理解统计学家/数据科学家/数据从业人员们面临的一个难题:数据分析(R)和论文撰写(LaTeX)是由两个语法差异甚大的编程语言完成的,把两者的结果合并到一起是一项异常艰难的工作。knitr的出现,使得数据分析和数据报告可以轻而易举地实现有机结合。为啥数据科学家看到knitr时眼里常含着泪水,是因为他们对半夜用LaTeX写回归分析结果恨得深沉。

当数据分析和数据报告的代码被整合到一起时,研究的可重复性(reproducibility)大大增强了。当其他人试图检验某个研究成果时,他们无需劳神费力地做“文章里这张表是哪段代码生成”的拼图游戏,只要从头到尾把代码编译一遍,就可以还原原作者的数据分析过程。特别的,当研究者使用Github做代码管理时,整个研究过程都被版本控制工具忠实地记录下来,并向大众开放;这将极大地提高作弊的成本,从而降低学术舞弊的概率。虽然目前察觉到这一点的只有小部分有识之士,但是可以预见未来主流学术界一定会向更高可重复性的研究过程披露转型。

然而,提高学术研究的可重复性并不是谢益辉创造knitr的本意,只能算是意外之得。他对于knitr的期望是更加抽象的。“我们不应该执着于使用哪种语言和媒体来实现功能,而是应该考虑到底实现什么功能;knitr的目标就是让人们可以简单地把文字和分析有机融合起来”,益辉这样评论道,“例如选择Markdown而不是LaTeX大大降低了使用成本,让人可以关注于内容,而不是写内容的语法,希望LaTeX控能理解这一点”。

直至今天,谢益辉依然没有放弃这个想法。他的下一个目标是做一个基于R Markdown的类似于gitbook的书籍编辑包。这个项目不仅旨在提供一个类似于gitbook的靓丽交互界面,同时希望支持实时动态编辑。当谈到这个项目的愿景时,一直避免眼神接触的谢益辉突然两眼放光地看着我:“你可以想象在读到书中某个模型时,你可以选择直接改变书中模型的变量或者参数,看看会发生什么;老师可以布置编程题目,学生可以在线作答,从而实时得知自己的结果是否正确。”

书剑恩仇录

被他戏称为“书剑恩仇录”的Github头像由谢益辉是自己制作的:蒙面、持剑、读统计书的构图代表着益辉做个“打劫知识的侠客”的愿望。然而,与《书剑恩仇录》里”武功不行、负心薄幸、唯一的优点是长得帅”[3]的陈家洛正好相反,不靠颜值吃饭的谢益辉因其卓越的领导能力和低调的文人风骨,成为R圈中众人心悦诚服的领袖。作为统计之都的创始人以及第一届中国R会议的组织者,谢益辉是在中国普及R的先锋和领袖。

yihui_logo

谢益辉的执行力强是圈内的共识(“我是一个高度自我驱动的人”)。中国第一届R会议基本上是谢益辉以一己之力组织的。为了增加嘉宾的分量,谢益辉通过个人关系找到澳大利亚国立大学的John Maindonald教授通过skype进行远程讲演(尽管最后因为skype不给力而以失败告终)[4]。然而谢益辉却并不是一个外向的人。正好相反,他符合普罗大众对于数据宅的刻板印象:身材瘦弱,梁架眼镜,衣着随意,性格内向,不喜言语。即使在程序员中,谢益辉的沉默寡言也是颇为例外的。第一届R语言会议召开时,满屋谈笑风声,益辉却在一旁调试话筒;有人以为他是工作人员,还拍着肩膀问他谢益辉在哪里。[5]“‘听、说、读、写’四项中我比较喜欢‘听、读、写’,但是‘说’的确不是我的长项;我相信写的影响更加长远”,这个爱好诗词楹联、喜欢朱光潜的文学评论和丰子恺的散文的文艺青年如是说。当回忆统计之都发展史时,谢益辉敲敲盛着白酒的高脚香槟杯笑着说:“我觉得把COS(统计之都)众英雄凝聚在一起的并不是统计学,而是这玩意和文学。所谓古来圣贤皆寂寞,惟有饮者留其名嘛”。

正是因为创始人以及一众元老对于文学有爱,统计之都从创立之始就非常尊重版权。在统计之都的版权申明末尾有这样一段话,”统计学的崛起,需要你我的共同努力——勿以恶小而为之,勿以善小而不为。”这种清高的做派在盗版成风的中国统计学互联网圈子里是独树一帜(或者说曲高和寡)的。当然,统计之都的崛起并不仅仅是因为文人风骨,良好的R社区气氛吸引了大量R的爱好者和实践者;而这背后是无数志愿者的不求回报的辛勤劳动。在谢益辉个人主页的留言板上有600余条留言,他每条都做了认真的回答。

然而谢益辉却很少谈及自己对于R在中国的贡献。“不宣传,就是不宣传”不仅是统计之都的公关策略[6],也是谢益辉个人风格的写照。尽管金庸没有告诉我们陈家洛在西域是否如意,但是今天谢益辉以RStudio的软件工程师的身份,在奥马哈的小屋中继续他隐士般的造轮子事业。

[1],[2] 像猪一样战斗(统计之都改版背后的故事),http://yihui.name/cn/2010/12/fighting-like-a-pig/

[3] 统计之都前任总舵主 魏太云语

[4] 第一届中国R语言会议第一天,http://yihui.name/cn/2008/12/1st-day-of-1st-chinese-r-conference/

[5] 根据谢益辉的师兄李舰的回忆

[6] 不宣传,就是不宣传,http://yihui.name/cn/2010/04/no-advertisement/

感谢谢益辉、李舰、魏太云、王小宁以及统计之都其他匿名编辑的修改意见。

发表/查看评论