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:0012957
用户头像

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

关注

评论

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

多云网络互通问题怎么解决——SD-WAN

Ogcloud

云计算 网络 多云服务 多云架构 SD-WAN

某公司案例分析

尚思卓越

运维 堡垒机

基于 Flink 构建实时数据湖的实践

字节跳动云原生计算

大数据 数据湖 云原生 flink 实战

软件测试/人工智能丨人工智能系统中,大数据模块发挥怎样的作用

测试人

人工智能 软件测试

3分钟搞懂什么是Docker

伤感汤姆布利柏

Docker 镜像

企业网络新阶段:SD-WAN在云时代的关键作用

Ogcloud

云计算 网络 SD-WAN 云时代 WAN

改进了编排控制并增强了推理的可视性,Agents for Amazon Bedrock 现已上市

亚马逊云科技 (Amazon Web Services)

API re:Invent Amazon Bedrock

NFT开发:NFT 令牌门控Web3中的变革性品牌体验

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

AI浪潮下,大模型如何在音视频领域运用与实践?

阿里云CloudImagine

云计算 视频云

Kosmos实战系列:MySQL Operator有状态服务的跨AZ集群平滑迁移

畅聊云原生

Milvus 老友汇|AI、云原生与向量数据库的精彩碰撞回顾!

Zilliz

云原生 Milvus AIGC KubeBlocks

企业用户混合云组网的新方式——SD-WAN

Ogcloud

网络 SD-WAN 混合云 混合云架构 组网

纯粹+享受,独立开发者成功踏上HarmonyOS“新大陆”

最新动态

“2024杭州人工智能展会·杭州智博会”推进人工智能产业创新发展

AIOTE智博会

智博会 人工智能展 智慧城市展 杭州智博会

Python内存管理:从入门到精通的完全指南

技术冰糖葫芦

API 接口

软件测试/人工智能丨卷积神经网络,与普通的神经网络有何不同

测试人

人工智能 软件测试

教你使用Prometheus-Operator进行K8s集群监控

不在线第一只蜗牛

k8s K8s 多集群管理 多集群 集群监控

最后一天!龙智DevSecOps研讨会年终专场“如何打好DevOps基础、赋能创新”即将截止报名

龙智—DevSecOps解决方案

软件测试/人工智能丨神经网络的概念,它与深度学习是什么关系

测试人

人工智能 软件测试

浅析JAVA日志中的几则性能实践与原理解释

阿里技术

Java 原理 性能实践

小红书基于零信任 SASE 办公安全解决方案,斩获 “IDC 中国 20 大杰出安全项目”

小红书技术REDtech

大数据 网络安全 安全

NFT卡牌DAPP质押系统开发丨详情开发

l8l259l3365

E往无前 | get正确使用姿势!腾讯云大数据ES日志场景优化案例回顾

腾讯云大数据

ES

Solidity之旅(十)OOP-抽象合约

BSN研习社

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