写点什么

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

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

关注

评论

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

Sovit3D数字孪生智慧港口三维可视化解决方案

数据可视化平台

物联网 智慧港口 5G智慧港口 港口三维可视化 智慧港口解决方案

jdbcs之连接池和框架

楠羽

JDBC 笔记 9月月更

上海华为云SaaS应用创新创业大赛暨828 B2B企业节发布仪式

科技怪咖

得物云原生全链路追踪Trace2.0架构实践

得物技术

云原生 监控 链路追踪 OpenTelemetry 企业号九月金秋榜

C++ STL【常用算法】详解

Fire_Shield

算法 stl 9月月更

我们的月饼不一样!来线上 DIY 微软限定款

Azure云科技

技术 活动报名

从采集到存储:时序数据库到底怎么处理时间?

Apache IoTDB

IoTDB Apache IoTDB

如何理解「数字化转型的本质是人的转型」?

BizFree

数字化转型 工业4.0 智能制造 机器换人 数字化工具

LeetCode-9. 回文数(java)

bug菌

9月日更 9月月更

MySQL 数据库 - 通用语法 DDL DML DQL DCL

喜羊羊

MySQL 9月月更

数据库系统助力企业降本增效的技术要点|Meetup 回顾与预告

OceanBase 数据库

云对象 - 重新定义前后端交互

崔红保

uni-app Serverless unicloud

高端扫地机销量占比全球第一 石头科技创新驱动增长

科技热闻

MySQL 数据库 - 函数 约束 多表查询 事务

喜羊羊

MySQL 9月月更

合阔智云核心生产系统切换到服务网格 ASM 的落地实践

阿里巴巴中间件

阿里云 Kubernetes 云原生 服务网格 合作

5年专业研究,这份云原生安全指南请查收!

博文视点Broadview

XDR的技术栈参考

极盾科技

网络安全 数据安全 xdr

华为云WeLink直播助力高校毕业典礼:这届毕业生,我们云上嗨

科技怪咖

对话杨传辉:国产数据库新战绩背后,OceanBase坚持自研的初心与决心

OceanBase 数据库

力扣20 - 有效的括号【暴力、分支判断、哈希表】

Fire_Shield

算法 哈希表 9月月更

数字人技术在直播场景下的应用

百度Geek说

人工智能 直播 企业号九月金秋榜

LeetCode-13. 罗马数字转整数(java)

bug菌

9月日更 Leet Code 9月月更

库调多了,都忘了最基础的概念-《线程池篇》

知识浅谈

线程池 9月月更

2个原则,8个小撇步,带你探究 Dockerfile 在工程实践中的实战技巧!

Jina AI

Dockfile

吃透JAVA的Stream流操作,多年实践总结

Java快了!

stream java;

ShareSDK Android端微信回调冲突解决方案

MobTech袤博科技

android sdk

FlyFish开发者说|开源低代码平台的体验与思考

云智慧AIOps社区

前端 低代码 开源项目 数据可视化 可视化大屏

CLIP-as-service 升级啦!

Jina AI

开源 算法 神经搜索

OpenSSF发布npm 最佳实践指南,应对开源依赖风险

SEAL安全

npm DevSecOps 开源安全 软件供应链安全 开源安全与治理

开发者必读:2022年移动应用技术趋势白皮书

HarmonyOS SDK

如何理解「数字化是 IT 公司在给传统企业贩卖焦虑」?

BizFree

数字化转型 企业 焦虑 智能制造

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