4

R Markdown Notebook 与 Jupyter / IPython Notebook

 3 years ago
source link: https://yihui.org/cn/2017/06/notebooks/
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

R Markdown Notebook 与 Jupyter / IPython Notebook

谢益辉 / 2017-06-19


我现在一般不掺和语言或工具圣战,我没那闲工夫,而且现在也有了足够的定力。放在早年间,比如要是碰到 SAS 与 R 的问题,那就算不吃不睡也要参与瞎叨叨。

2013 年我提过 IPython 的教主以及推想过他想弄啥。现在回看,果然以及显然是要一统江湖,Jupyter 把 Python / R / Julia 三张王牌同时打出来了。教主听过我两次报告,这两次报告的提问环节他都问了我同一个问题,是关于 R Markdown 的一个弱项。如果是第一次问,我可以理解这是个问题;但第二次还要在不同的观众面前问我同样的问题,那显然就不是问给我的了,而是告诉观众:嘿,你们看,R Markdown 有这一点不足哟。嗨,我就是整天如此小人之心1。好在我现在已经不再怕被问这个问题,因为 R Markdown Notebook 已经解决了它。

其实我完全可以怼他类似的关于我眼中的 IPython 的弱项问题,但我这些年并没有说话,埋头干活儿少打仗。这些年我也没见谁说这个问题,直到前两天终于有人提到了我脑子里的问题,那就是由于 R Markdown 它爹 knitr 继承了 Sweave 爷爷的一项基因,让文本行内可以很方便嵌入代码来计算单个结果,比如,“半径为 `r (x = 3)` 米的圆,其面积为 `r pi * x^2`”,这样的文字经过 knitr 编译可以直接嵌入数值结果,用户可以动态修改 x 的数值,而圆的面积数值会自动更新。由于 IPython 的设计是基于代码块(单元格)的,它没法直接写这样的语句,只能绕道。

好了,对 knitr 的王婆自夸就到此结束。我相信这些竞争的产品肯定一直都会互相学习改进,这也是开源社区的魅力所在2。下面开始小夸一下敝厂。

我想臆断的是,一个三观正3的商业公司来认真做开源时,其效率可以非常之惊人,可能比学术界或者纯开源团队效率要高得多。在学术界做东西,很多人可能最大的动力只是自己,譬如 R 核心团队中的某核心某年就公开说:寡人开发 R 只是为了寡人自己的兴趣。言下之意,要是寡人的兴趣和尔等的兴趣碰巧一致,尔等可以弹冠相庆,否则也表怪寡人不理会尔等的请求。

我加入 RStudio 工作这几年,跟学生时代相比,虽然都有个头头管着,但最大的区别就是在学术界时,做东西做不做得成都有饭吃,总可以糊弄交差,但在公司,那个头头就会让我隔三差五感到心里不舒服。事实上两年前我还经历了一场很大的精神危机,这事将来我应该会再细说。总之,在公司的不舒服比在学校时的不舒服要难受得多,这也是事情能有时间和质量保障完成的关键因素,所以一直以来我非常感激我们这位头头,要没有他持之以恒鞭挞我,我今天还不知会沦落在什么地方摸鱼。敝厂对人才的重视和尊重程度可以说令人发指4,但我并不是一个能有效享受这种自由的人,比如在家远程工作对我来说真的是非常大的挑战,至今我都还没训练出我满意的自制力。不过有了这种自由的气氛,众码草履虫、码畜、码农、直至仁波切们才能最充分地发挥才智,尽力去打最漂亮的仗。


  1. 此处备择假设是,他忘记前不久问过我这个问题了。
  2. 当然,站在全人类的角度来说,这些竞争也有相当大的内耗。统一语言、一起合作当然是最理想的情况,但语言哪里统一得了呢?
  3. 发自内心热爱开源事业。
  4. 譬如休假政策是“想休就休”,何时休以及休多久你自己看着办,没有什么多少天年假一说,当然前提是你把活儿干好。对卖力工作的员工,敝厂会更卖力奖励。

脑洞最大的音量控件 即时通信工具

Disqus Utterances Preferences

© Yihui Xie 2005 - 2020

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK