7

COS 访谈第 20 期: 千秋邈矣独留我,百战归来再读书:谢益辉

 3 years ago
source link: https://cosx.org/2016/01/interview-of-xieyihui/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

COS 访谈第 20 期: 千秋邈矣独留我,百战归来再读书:谢益辉

谢益辉 / 冯俊晨

关键词:RStudio; R 开发者; 数据科学家; 谢益辉

编辑:王小宁

【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/

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

个人网站:http://www.fengjunchen.com冯俊晨中国人民大学统计硕士,爱荷华州立大学统计学博士,R 包 knitr 的主要作者。现为 RStudio 软件工程师,曾负责 Shiny 包相关开发工作,后转入 R Markdown 相关扩展包的开发,包括 bookdownblogdown。对统计计算、可视化、以及各类网页相关技术感兴趣,有志于对技术写作工具做减法工作,坚信人类浪费了太多时间在期刊论文、学位论文、书籍的排版上。平时主要活跃在 Github 上。个人主页在 https://yihui.name,思想偏激,流水账、意识流甚多,小人之心甚重,慎入。谢益辉

敬告各位友媒,如需转载,请与统计之都小编联系(直接留言或发至邮箱:[email protected]),获准转载的请在显著位置注明作者和出处(转载自:统计之都),并在文章结尾处附上统计之都微信二维码。

统计之都微信二维码

← 中文文本处理简要介绍 第八届中国 R 语言会议(武汉)暨华中地区数据科学会议 →

发表 / 查看评论


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK