戏说R语言系列2
统计之都有一篇对Rstudio公司创始人J.J. Allaire的专访。感兴趣的同学可以抽空看看。 https://cosx.org/2016/11/interview-j-j-allaire/
我觉着比较有意思的地方有几个:
J.J. Allaire 本科学的是经济学和政治科学,居然创建了一家统计软件公司,这点挺神奇的,在专访里,他也觉着很意外。他对编程似乎有很大的兴趣,作为Rstudio的CEO,他目前的主要工作(80%时间)仍然是编程,运营交给另外一个人打理,在Rstudio的官网上,他的Title是软件工程师兼创始人,后面伙计的Title多数是软件工程师。这点在国内比较少见,国内的程序员,多数仍然希望尽快脱离苦海,35岁之前,倘若做不到产品总监,这辈子似乎就 GAME OVER 了,所以只要有一点可当官的机会,常常是排排队、挤破头。有一次和同事聊天,我说大家得想办法有钱,就是不差钱,如果不为生活奔波,没准就真有人愿意凭兴趣去做些好玩的事情了。
Joe Cheng是Rstudio公司的CTO。J.J. Allaire 请他的时候,Rstudio只是一个开源项目,J.J. Allaire 很坦诚,并没有承诺给予Joe Cheng任何“远大前程”,可在Joe Cheng看来这并不是一个问题,最早的Rstudio就这两个人。这点值得学习,创业嘛,无论是作为老板,还是伙计,都应该足够坦诚,把输赢放一边,尽力把事情做好。
Rstudio的首席科学家是Hadley Wickham,这个前一集里已经提到。他的同事谢益辉(国内统计之都创始人,也是这次专访的译者)这样评论他:
因为 Hadley Wickham 和他的合作者们这些年创建了一系列数据整理和可视化的 R 包,这些包被坊间称为 Hadley 次元,即 Hadleyverse,为避免个人崇拜嫌疑,后来被 Hadley 改为 tidyverse,极乐净土,意思是让一团浆糊的数据变得干净整洁,方便探索、可视化和统计建模,关于什么是 “干净的数据”,可参考他的论文 “Tidy Data”
J.J. Allaire 建议初学者学习一下Hadley Wickham的“R for Data Science”。这本书我没看过,我看过Hadley Wickham的“Advanced R”,没看全,可以作为工作手册,在Hadley Wickham 的网站上可以浏览或下载。还有一本“R包开发”的书,也是他写的,中文版出的时候,出版社发起一个向Hadley Wickham提问的活动,问题提的好,可以获赠一本“R包开发”,我在地铁站里琢磨半个小时想了几个问题,不过现在都不记得我问的是什么,后来获得一本赠书,我本以为会有Hadley Wickham 的签名,打开包装后发现上面印着“人民邮电出版社样书专用章”,多少有点小失望。
Rstudio公司的开源产品要比其商业产品丰富得多,营利主要靠为商业用户大规模部署R来实现。J.J. Allaire 这样讲:
商业业务有两个主要方面,第一个是关心想要大规模部署 R 的组织,这里的规模是指计算规模或者是在更大的组织内使用 R。为了满足这些要求,我们增强了一些服务器产品的商业版本,例如 RStudio Server Pro 和 Shiny Server Pro,它们具有大规模部署 R 的功能。虽然我们的开源产品是可以免费获取的,可能许多人不会购买我们的专业产品,但当客户对 R 更加认真时,或者需要在更大的环境中部署 R 时,他们就会倾向于购买我们的专业产品。所以,这就是我们营利的主要方式——靠那些专业的服务器产品营利。
此外我们还有一个云业务,通过网络提供我们的产品服务。例如,我们有 shinyapps.io 用来部署 Shiny 应用程序。目前它并不是我们业务的一大部分,但我们预计它将变得越来越重要,同时我们也期待在未来有其它云服务的出现。
RStudio Server和 Shiny Server的开源产品,我都有在用,但问题是相对于网络服务的性能要求,这两个开源产品有一点慢,虽然我的同事们一直鼓励我说:这个正常,不要太长就好。但我总觉着这是个坑。前几年,谢益辉开玩笑说:“我司在中土大唐尚无商业用户”,也不知道最近有没有国内公司开始使用Rstudio的商业产品。这也是个问题,国内有些公司,甚至是大公司,在scalibility投入上还是挺抠门的,宁可花2000雇5000小编,也不肯把钱花在机器的投入上(这个段子是几年前网上看到的,说的是某宇宙中心社交网站)。当然,也有技术好的公司,可能确实不需要Rstudio的商业产品。
关于R语言的起源问题,R语言更准确的是一门接口语言。像专访里提到的:
在 2014 年 UCLA 的 UseR 会议的特邀主题演讲中,John Chambers 谈到了 R 的原始概念是创建一个接口语言。其中一个动机是,人们想使用强大并且高性能的 FORTRAN 库进行已有的统计分析,但他们希望用更灵活和交互的方式来使用它们。所以这个想法是创建一门擅长提供接口到其它计算系统的语言。刚开始时它是对接现有的 FORTRAN 代码,但随着时间的推移,它已经扩展到运行所有的东西。R 是一个非常好的接口语言。
专访里也提到R语言在当前两个工具上作为接口语言的应用。一个是H20,一个是sparklyr。H20是一款java机器学习软件包,同时提供了R语言的接口,如果用R语言建模,生产环境部署总是要考虑R的性能瓶颈问题,而使用H20的R工具包,大体可以使用R语言的语法编写脚本,但计算等工作实际上是用java完成的,最终的模型是一个jar包,这样的话,建模和部署其实就没那么复杂了。
sparklyr就更进一步了,这个工具是Rstudio开发的。spark也开发了sparkR,也就是R使用者可以用R语言语法使用Spark,sparklyr更进一步的地方是,除了在R环境里使用Spark,还可以在Spark里使用R的计算工具包,要知道,R工具包在CRAN上已经超过一万了,所以Sparklyr确实是一个巨大的进步。
当然,R语言还是有很多局限的,这个还是要记在心里的。