QCon 演讲火热征集中,快来分享技术实践与洞见! 了解详情
写点什么

流行编程语言 R 的下一步是什么?

  • 2019-08-29
  • 本文字数:3260 字

    阅读完需:约 11 分钟

流行编程语言 R 的下一步是什么?

由于大数据对各个领域的决定性影响,相对于经验和直觉,在商业、经济及其他领域中基于数据和分析去发现问题并作出科学、客观的决策越来越重要。开源软件 R 是世界上最流行的数据分析、统计计算及制图语言,几乎能够完成任何数据处理任务,可安装并运行于所有主流平台,为我们提供了成千上万的专业模块和实用工具,是从大数据中获取有用信息的绝佳工具。R 本来是由来自新西兰奥克兰大学的 Ross Ihaka 和 Robert Gentleman 开发,现在由 “R 开发核心团队” 负责开发。Dan Kopf 分享了他采访 Wickham 的精彩内容,涉及了 R 的现状与对未来的期许。



Hadley Wickham


就像口语一样,编程语言也在不断变化。随着时间的推移,像 C++、Java 和 Python 这样的流行语言都发生了巨大的变化。随着程序员需求的变化,编程语言会采用新的特性,或者修改现有的特性。这些更改通常是由管理语言的委员会或创建库(使任务变得更简单的插件)的用户进行,这些库是共享的,并成为语言的组成部分。


广泛流行的统计编程语言 R 为例,它更像是一场革命,而不是进化。这些变化还在继续。


上个月,来自世界各地的 R 用户聚集在法国图卢兹,参加 useR! conference,这是一场 R 语言最重要的国际聚会,讨论 R 的新发展。在我参加的几乎所有演讲中,都会提到 Hadley Wickham 这个名字。Wickham 是这门语言最重要的开发人员。在过去的十年里,Wickham 和他的合作者一起构建了一套流行的数据分析和可视化库(也称为软件包),称为“tidyverse”,这几乎成为了它自己的语言。Wickham 的库是 R 语言中最受欢迎的库之一,并已成为新学习者的标准(R 可以免费使用)。


几年前放弃使用 R 语言的人,几乎已经不清楚今天人们通常是怎么使用这门语言的。一些 R 用户对 tidyverse 的主导地位感到不满,部分原因是它现在由 RStudio 公司支持,该公司聘请了 Wickham 和他的大多数合作者。RStudio 为该语言提供了一个免费的用户界面,但却向企业收取企业支持费用。


在图卢兹,我与 Wickham 谈论了 R 语言的现状,以及他对 R 语言未来的看法。我将这段对话重新整理并提炼,于是便有了本文。


Quartz:与十年前相比,你会如何描述当今 R 语言和社区的现状?


Wickham:十年前,R 语言不过是统计学家门中流行的一种语言,它有点古怪。对我来说,过去十年的经历,就是这样不可思议的增长。


与此同时,社区也发生了翻天覆地的剧变。十年前,询问 R 语言相关问题的主要场所是 R Help 邮件列表。如果你提了一个愚蠢的问题,有人会因此对你火冒三丈。那种环境啊,让人望而生畏。现在,人们告诉我,他们之所以热爱 R,是因为社区非常热情。我认为这很大程度上是因为它变得更加多样化。以前用户主要是统计学家,而现在,使用 R 语言的这些人,学术背景要广泛得多。


Quartz:最近让你真正感到兴奋的发展是什么?


Wickham:我认为,R Markdown 对 R 来说,是一个惊人的贡献。无论你是撰写论文,还是为公司撰写 PPT 幻灯片,用 R 语言制作可复制的文档都变得非常容易。


我也对“tidyevaluation”的想法感到兴奋。这是一个让你可以很自然地用 R 语言编程的想法。R 语言既是一种编程语言,又是一种用于数据分析的交互式环境,因此具有这种张力。在进行数据分析时,输入速度实际上是一个瓶颈。作为开发人员,“tidyevaluation”可以帮助我们确保用户尽可能少地输入,并且能够表达非常丰富的想法用于分析。这就是 ggplot2 和其他一些库的基础(编注:ggplot2 是一个流行的数据可视化库),它的想法是尽快把你脑子里的东西,转移到电脑上。


此外,在社区中,R-Ladies 在改善性别多样性方面做得非常出色。(编注:R-Ladies 是世界各地的女性和其他性别少数群体讨论 R 的聚会团体)我对此感到非常兴奋。看到他们超越了数据分析,制作软件包,并成为贡献者和回馈者,这真的是一件很酷的事。


Quartz:你认为 R 面临的一些问题是什么?


Wickham:一般来说,很多人一谈到 R 和 Python,就像是一场要么 R 要么 Python 会赢的战争一样。我认为这一点用都没有,因为,这压根不是一场战斗好吗?这些东西都是独立存在的,而且都是以不同的方式,它们真的都很棒。


我看到的是这样的一个模式,公司中的数据科学团队使用 R,而数据工程团队则使用 Python。使用 Python 的用户往往具有软件工程背景,对自己的编程技能非常自信。由于 R 看起来很奇怪,他们就很肯定地下了结论:关于 R 的事实(没有那么好)。


R 用户通常对自己的编程技能并没有那么自信。他们真的很喜欢 R,但就是不能跟工程团队争论,因为他们争论时总是找不到相应的词语。使用 R 的用户往往具有生物学或市场营销方面的背景,他们经常理屈词穷。R 是一种古怪的语言,但它的古怪确实有充分理由的,而且它非常适合数据科学。它不是一种通用的编程语言,但它做的很多事情,都有很好的理由。


对于很多使用 Python 的人来说,Python 是他们使用过的唯一一种编程语言,他们认为 Python 非常棒。他们是对的。Python 很伟大。但是,解决同一个问题有多种方法,有时候,R 是很好用的。所以我有点担心。当然,这并不是所有 Python 或 R 用户的特征。


我真的不相信这是一个分裂。使用任何让你感到快乐的东西。如果你不用 tidyverse,那也不会让我感到伤心。


Quartz:在接下来的一年左右时间里,你所期待的发展是什么样的?


Wickham:我一直在做一个叫做 “dtplyr” 的东西,它可以让人们使用 dplyr 代码进行编码,然后将它转换成 data.table 代码。(编注:dplyr 和 data.dable 是 R 语言中用户数据分析的流行库)


我对 R 的未来设想是,你可以将对数据执行的操作的描述从实际计算分离开来。这是 R 社区趋势的一部分。你可以编写工具转换为高性能计算环境。你可以编写相同的代码,但是后端可以做到不同。


在这种情况下,你可以使用 dplyr 来表示你想对数据做什么,但是 dtlyr 允许你获得 data.table 的速度。此外,如果你想学习 data.table,这会有所帮助。你可以用它来看代码是如何转换的。


Quartz:让我们谈谈接下来的五年。在那个时候,你会有什么样的希望和梦想呢?


Wickham:我希望,R 和 Python 之间的集成能够继续发展,使 R 更加无缝地融入数据科学工作流程。有些事情,它永远不会像 Python 那样擅长,我们希望确保 R 的开发者可以与 Python 的开发者一起协作。但我们也想提供 R 的基础知识,所以有这么一个选择。如果你想要更前沿的技术,你可以使用任何你想要的工具,但 R 应该足够好,如果你愿意的话,R 应该能够满足几乎所有的要求。


在可视化方面,我想回到 R 中为图形带来更多的交互性。我们的愿景是,你将能够像 ggplot2 那样创建图形,(使用代码)还描述了如何与它们进行交互。对于不能同时显示所有数据的大型数据集来说,这一点非常重要,因为在这些数据集中,你能够以交互的方式深入挖掘并思考正在发生的事情。这是一个相当困难的技术问题。多亏了 RStudio,我们现在才有在这些领域投入的资源。一两年后,我们有望有足够的资金来全职做这件事。这就是我认为解决这一问题所需的工程水平。


我一直在思考的一件事就是多样性。在性别多样性方面,我们已经取得了巨大的进步,而且似乎是朝着积极的方向发展。我看到,在美国存在严重的种族不平等现象。我个人要比非裔美国人更了解非洲的 R 用户的情况。我还有一种担心,其他社区是不是也需要我们去联系呢?我们可以采取 R-Ladies 模式,来帮助目前服务不足的其他团体吗?


我正试图找到这个杠杆点:可以帮助 R 进入新的社区,并帮助新社区了解 R。我正在 Spellman College 举办为期两天的研讨班,该学院是一所历史悠久的非裔女性学院。我的感觉是,你需要建立一个彼此了解并能够互相联系和支持的人的核心。我想尽我所能做到这一点。


还有一个更广泛的问题,就是关于我们如何开发可持续的开源软件。公司从中获得了巨大的经济利益,而且他们不需要回馈。要依靠慈善事业是很困难的,那么我们如何提取开源产生的一些经济价值,并将其再投资到社区中呢?


作者介绍:


Dan Kopf 是 Quartz 驻旧金山的记者。他为 Quartz 报道经济和统计学方面的新闻。


原文链接:


What’s next for the popular programming language R?


2019-08-29 17:0012915
用户头像

发布了 375 篇内容, 共 191.3 次阅读, 收获喜欢 947 次。

关注

评论

发布
暂无评论
发现更多内容

解决 GitLab 报错:You are not allowed to force push code to a protected branch on this project

AlwaysBeta

git gitlab

Coder 投稿 | mPaaS 的多版本接入(Android)

蚂蚁集团移动开发平台 mPaaS

android Android Studio mPaaS 移动应用开发

动手用 Java 训练深度学习模型

亚马逊云科技 (Amazon Web Services)

AI/ML

再说绩效考核

张老蔫

28天写作

盘点一下自己的2021

为自己带盐

28天写作 12月日更 盘点2021

Linux之tail命令

入门小站

Linux

云小课|DGC数据开发之基础入门篇

华为云开发者联盟

大数据 数据湖治理中心 云数据开发 DLF

专家视野:探寻运维趋势与ITSM落地之道

龙智—DevSecOps解决方案

运维 ITSM

Linux之tail命令

入门小站

Linux

React vs Angular,到底那个更好用

编程江湖

前端开发

使用Amazon Step Functions Data Science SDK创建基于无服务器架构的工作流

亚马逊云科技 (Amazon Web Services)

AI/ML

拿捏SQL数据分析:从基础破冰到面试题解

博文视点Broadview

大数据开发之sparkSQL的使用分享

@零度

大数据 Sparksql

HDFS(Hadoop分布式文件系统)

编程江湖

大数据 hdfs

前端开发之JS中编写For循环的方法

@零度

JavaScript 前端开发

愉悦圣诞 暖意融心

龙智—DevSecOps解决方案

Spring核心原理之IoC容器初体验(2)

Tom弹架构

Java spring 源码

我们开源了一个轻量的 Web IDE UI 框架

Ziv 小威

ide 开源 vscode React WebIDE

热点浅谈:著名主播“薇娅”究竟是怎么赚钱的?

优秀

直播带货 薇娅

通过自动关闭Amazon SageMaker Studio中的闲置资源来节省成本

亚马逊云科技 (Amazon Web Services)

AI/ML

在线上传图片二维码识别解析

入门小站

工具

DataPipeline与海量数据完成产品互认证,助推数据管理信创生态新进程

DataPipeline数见科技

数据库 中间件 数据融合 数据迁移 数据管理

新手入门:史上最全Web端即时通讯技术原理详解

BeeWorks

在 Amazon Inferentia 上为 PyTorch 自然语言处理应用程序实现 12 倍的吞吐量和低延迟

亚马逊云科技 (Amazon Web Services)

AI/ML

图解带你掌握`JVM`运行时核心内存区

华为云开发者联盟

Java JVM 内存 堆内存

从新手到专家:如何设计一套亿级消息量的分布式IM系统

BeeWorks

用一个 flv.js 播放监控的例子,带你深撅直播流技术

杨成功

JavaScript 前端 监控 直播 流媒体

提升产品创新能力?试试斯坦福大学设计思维模型!

恒生LIGHT云社区

设计 产品设计 创新 设计思维

python 数据分析找到老外最喜欢的中国美食【完整代码】

1_bit

Python

Amazon Forecast现可支持对单一条目进行准确性评估

亚马逊云科技 (Amazon Web Services)

AI/ML

常见开源分布式文件系统架构对比

Juicedata

hdfs 开源 文件系统 云存储 分布式文件系统

流行编程语言 R 的下一步是什么?_编程语言_Dan Kopf_InfoQ精选文章