GMTC深圳站售票最后一周,点击查看最新日程>> 了解详情
写点什么

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

  • 2019 年 8 月 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 年 8 月 29 日 17:0012345
用户头像

发布了 347 篇内容, 共 134.2 次阅读, 收获喜欢 880 次。

关注

评论

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

阿里大佬竟然真的把Java基础核心知识整理成了PDF版

Java 程序员 架构 面试 计算机

Centos7 部署 Zabbix 5.4 高可用集群

Se7en

23. 大部分工作将发生转变而非消失

数据与智能

人工智能

告别Kafka Stream,让轻量级流处理更加简单

阿里巴巴云原生

kafka 阿里云 云原生 ETL

2021最新京东商城亿级并发架构设计!推荐每一位Java开发者学习

Java 编程 架构 后端 计算机

docker 命令备忘(qbit)

qbit

Docker 容器 存储

如何看待游戏世界的未来:解析去中心化区块链游戏的优缺点

Geek_987812

绝绝子!阿里这套并发图册+JDK源码速成笔记可以封神!

Java 程序员 架构 面试 计算机

公众服务常用电话号码大全

入门小站

工具

精灵图在现代前端中到底有用没,css中显示和隐藏竟有两种不同方式

前端史塔克

CSS JavaScript html css3 前端

2021高频前端面试题汇总之React篇

it优课

React

2021我的Java路要怎么走,Java应用性能优化

Java 面试 后端

40万奖池 + 顶级云服务资源,云计算大赛系列公开课正式开播

亚马逊云科技 (Amazon Web Services)

人工智能 云计算 创新大赛

百度联手清华大学出版社 打造国内首套产教融合人工智能系列教材

百度大脑

人工智能

解析实现区块链互操作性的方法及现有开发项目

Geek_987812

[Golang 包详解] errgroup

baiyutang

golang 9月日更

OpenKruise v0.10.0 新特性 WorkloadSpread 解读

阿里巴巴云原生

阿里云 容器 云原生 OpenKruise Workload

Flink 实时 metrics

GrowingIO技术专栏

大数据 flink Grafana 流式计算框架

区块链技术的核心、发展与未来

Geek_987812

九月的更文生活

卢卡多多

生活 9 月日更

照妖镜纳米“相机”:让反应历程无处遁形

脑极体

模块八作业 一 消息队列存储模型设计

babos

#架构实战营

Prometheus 2.26.0 新特性

耳东@Erdong

release Prometheus 9 月日更

2021我是如何拿到小米、京东、字节的offer,持久化数据安全RDB、AOF

Java 面试 后端

数据仓库的基本要求

奔向架构师

数据仓库 9 月日更

JDK 内置命令行工具学习笔记二

风翱

JVM 9 月日更

网络安全必学知识点之XSS漏洞

网络安全学海

黑客 网络安全 信息安全 WEB安全 漏洞挖掘

网络攻防学习笔记 Day145

穿过生命散发芬芳

VXLAN 9月日更

从技术宝库到云上机遇:华为云开天aPaaS的“修路记”

脑极体

linux之service命令

入门小站

Linux

JavaScript进阶(八)generator(生成器)实现

Augus

JavaScript 九月日更

“你好,元宇宙”华为云联创营元宇宙高峰论坛

“你好,元宇宙”华为云联创营元宇宙高峰论坛

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