写点什么

流行编程语言 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:0013052
用户头像

发布了 376 篇内容, 共 200.5 次阅读, 收获喜欢 949 次。

关注

评论

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

训练营 | 如何成为一名开源社区贡献者?

阿里巴巴云原生

阿里云 开源 云原生 KubeVela

软件测试校招面试真题 | 面试官必问面试题之你有什么想问我的?

测试人

校招面试真题 | 和面试官聊的很 high,但就是拿不到 offer,怎么办?

霍格沃兹测试开发学社

【云安全】云安全产品有哪些?哪个品牌好?

行云管家

云计算 网络安全 安全 云安全

如何利用Java在Word中创建表格

Geek_249eec

Java word 表格

技术贴 | 走进 PostgreSQL 行级安全策略

KaiwuDB

时序 #数据库

探究线程与进程的区别这一问题

C++后台开发

线程 多线程 进程 linux开发 C++开发

嵌入式 Linux 入门(一、Linux 基本介绍及文件结构)

矜辰所致

Linux 10月月更 文件结构

Qt|使用QDialog窗口调用exec时崩溃解决问题

中国好公民st

c++ qt 10月月更

MASA MAUI Plugin (四)条形码、二维码扫描功能

MASA技术团队

MASA MAUI MASA Blazor

CEF | CEF浏览器客户端功能扩展:实现与JS交互的功能

YOLO.

qt 10月月更 C++

Linux 各个Namespace 的作用

忙着长大#

linux namespace

火力全开-Precision 7670触顶性能天花版

科技热闻

Qt | QList的removeAt、takeAt的区别

YOLO.

qt 10月月更 C++

Windows Server 2008 R2将tomcat添加进系统服务

我爱娃哈哈😍

tomcat windows 服务器运维

基金营销存量博弈时代,数字内容小程序化助力破局

Speedoooo

小程序 基金 数字内容 小程序容器 买方投顾

云管理工具是干什么的?有哪些?哪个品牌好?

行云管家

云计算 云管理 云工具

小白必看——台式机选购指南

科技热闻

uniapp实现国际化多语言切换

源字节1号

软件开发

峰会回顾 | 基于StarRocks,百草味如何通过数据赋能快消品行业

StarRocks

#数据库

Kubernetes 安全专家(CKS)考试技巧

HummerCloud

Kubernetes 云原生 考试经验 CKS 10月月更

区服分析丨更透彻的游戏营运数据解读,助力高效增长

HarmonyOS SDK

分析

以开发之名|斗罗大陆:创造一个尽情探险的开放式游戏世界

HarmonyOS SDK

华为 HMS Core

数据结构学习,稀疏矩阵(三元组和十字链)

IC00

学习 数据结构 算法 学习笔记 10月月更

C# TreeView控件方法属性学习

IC00

C# 学习 程序员 上位机 10月月更

如何在 SAP Business Application Studio 里创建 SAP UI5 应用并部署到 BTP 平台上

汪子熙

云原生 云平台 SAP 10月月更

OpenYurt v1.0 正式发布!一文了解三大社区 SIG 重点更新

阿里巴巴云原生

阿里云 开源 云原生 openyurt 版本升级

EMQ走进富士康,探讨新生态模式下智能制造与智能汽车基础架构的未来

EMQ映云科技

车联网 物联网 IoT emqx 10月月更

StartDT奇点云邀您参加2022云栖大会,11月3-5日杭州见

奇点云

云栖大会 奇点云

观测云获亚马逊云科技年度 DevOps 合作伙伴奖

观测云

软件测试 | 测试开发 | 校招面试真题 | 面试官必问面试题之你有什么想问我的?

测吧(北京)科技有限公司

测试

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