- 策划 & 编辑 | Natalie
- 组稿 | Natalie,Vincent
- 文章来源| AI前线公众号(ID:ai-front),转载请联系公众号负责人取得授权
Ladies and 乡亲们,争夺数据分析领域最好用编程语言的两大重量级选手:Python 和 R 语言,竟然宣布:合!作!了!
如果你身处数据分析领域,那么你一定遇到过或者听说过这个两难抉择——在进行数据分析时,到底使用哪种语言更好,R 还是 Python?
“最好的编程语言”之争旷日持久,数据科学领域也不例外。网上经常出现诸如“我想学习机器学习,我应该用哪个编程语言”或者“我想快速解决问题,我应该用 R 还是 Python”等这类问题。尽管这两种编程语言目前都是数据分析社区的佼佼者,但是它们仍然深陷“哪一种才是数据科学家的首选编程语言”的争论之中。
但是各位,从今往后,你们可以不用再纠结这个问题了。
数据科学领域最强编程语言之争
在介绍合作相关事宜之前,我们照例先回顾一下这两种编程语言的前世今生,以及他们在编程江湖当中的恩怨情仇。
前世今生
Ross Ihaka 和 Robert Gentleman 于 1995 年基于 S 语言创造了开源语言 R,目的是专注于提供更好和更人性化的方式做数据分析、统计和图形模型。
起初 R 主要是在学术和研究中使用,但近来工业界也发现了 R 的好,这使 R 成为在企业中使用的全球发展最快的统计语言之一。
而 Python 由 Guido van Rossem 创建于 1991 年,主要强调效率和代码的可读性。希望深入的数据分析或应用统计技术的程序员是 Python 的主要用户。
当你越需要在工程环境中工作,你会越喜欢 Python。它是一种灵活的语言,在处理一些新东西上表现很好,并且注重可读性和简单性,学习曲线比较平缓。
恩怨情仇
这两种编程语言是怎么结下梁子的?还得从机器学习和数据分析说起。
机器学习和数据分析之间的差异有些难以言明,但二者最主要的不同就在于:比起模型的可解释性,机器学习更加强调预测的准确性;而数据分析则更加看重模型的可解释性以及统计推断。
于是乎 ,由于 Python 更看重预测结果的准确性,它成为了机器学习的一把利器。而 R 作为一种以统计推断为导向的编程语言,在数据分析界也得到广泛应用。
但是,这并不是就给这二位定了性,除了各自的领域别的都干不成了。实际上,Python 也可以高效地完成数据分析工作,R 在机器学习中也具有一定的灵活性。它们都拥有相当多的资源库去实现彼此特定的函数功能,比如 Python 就有很多资源库来提高自己统计推断的能力,R 也有很多包可以提升预测的准确率。
由于二者的这些特性,网络上对于 Python 和 R 到底谁强谁弱的争论一直没有定论,就连在学界和业界的使用率也一直你追我赶。
不过,随着近几年人工智能的普及,越来越多学校开展了 Python 语言的编程课,转型人工智能的企业也加大了对 Python 语言的投入力度。根据 Stack Overflow 2018 年开发者调研报告显示:Python 的排名有所上升,今年已经超过了 C#,正如它去年超过了 PHP。Python 坚定主张要成为「最快速成长的主流编程语言」,至于 R 语言,则被远远甩在后面。
看似人气差距越来越大,有人戏称他们一个当季网红,一个“过气网红”。但也有技术大佬对于这种谁是最佳编程语言的争论感到不满,进而提出了一个想法:为什么不让他俩合作呢?
这次合作由谁发起?
技术大佬 Hadley Wickham 和 Wes McKinney 共同促成了这次合作。
Hadley Wickham 是编程语言 R 最重要的开发人员,Wes McKinney 则是编程语言 Python 最重要的开发人员之一。
Wes McKinney 在 2008 年创建了 pandas project,pandas 是一个开源的 BSD 许可的库,为 Python 编程语言提供了高性能、易用的数据结构和数据分析工具(对,就是你在 Python 里超级常用的那个 pandas 库)。此外,他还撰写了 Python for Data Analysis 一书,帮助推广 Python 在数据科学领域的应用。他是 Apache Software Foundation 的成员,并且是 Apache Arrow 和 Apache Parquet 的 PMC 成员,曾任 DataPad 的首席执行官和共同创始人。
Hadley Wickham 则是许多在数据科学领域使用最广泛的 R 软件包的创建者,如 ggplot2、dplyr 和其他许多软件包。他写了几本关于 R 语言的书,如 R for Data Science 和 Advanced R。Hadley 是 RStudio 的首席科学家,同时也是 Ursa Labs 关于 R 语言支持和一般 API 设计和可用性的技术顾问。
上个月,McKinney 宣布成立 USRA 实验室——一个致力于改进数据科学工具的创新组织。本次 Python 和 R 的合作就是 USRA 实验室与 Wickham 所在的公司 RStudio 之间的合作项目,RStudio 目前负责维护 R 语言最受欢迎的用户界面。USRA 实验室的主要目标是让使用不同编程语言的数据科学家能够更轻松地协作,避免不同语言开发人员的过多重复工作。除了改进 R 和 Python,他们还希望其工作能够改进其他开源编程语言的用户体验,比如 Java 和 Julia。
Python 和 R 都可以免费使用,并且经常被认为是数据科学领域中的竞争对手。但 Wickham 和 McKinney 都认为 这种竞争是没有必要的。事实上,他们认为通过合作可以使这两种编程语言对数百万用户更加有用。
Python 和 R 强强联手
对于在科技公司(如谷歌、Facebook 等)工作的数据科学家、研究人员和数据记者来说,Python 和 R 都是必不可少的工具。开发者最头痛的问题是,当他们的同事使用另一种不同的编程语言时,协作往往难于上青天。URSA 实验室将通过打造适用于所有编程语言的新标准,使与使用其他数据科学语言的人共享数据和代码变得更加容易。开发者们将这一行动称作为对“互操作性”的改进。Wickham 和 McKinney 已经一起创建了一个在 Python 和 R 中都可以使用的文件格式。
Wickham 和 McKinney 表示,除了想让协作变得更容易,还有另外一个原因促使他们展开这个合作项目:使用不同编程语言的开发者总是在重复解决同一个问题,却没能把他们从中学到的经验教训分享给其他人。
Wickham 举了一个例子,在每一种编程语言中,开发人员都要会计算平均值。这对于用户来说非常简单,不管是在 Python 还是 R 中都只需要一行代码。但是对于语言的开发人员来说,找到用一行代码执行计算的最佳方法却是一个棘手的问题。R 和 Python 的开发人员都倾向于用 C++ 和 C 语言来解决这个问题,这两种语言对于开发人员来说很好用,但对普通用户来说却很棘手。Wickham 认为,在理想情况下,如果一种编程语言的开发人员找到了做某事的最佳方法,那么这个方法应该应用于其他所有语言。这也是 USRA 实验室的核心任务。
Wickham 和 McKinney 补充道,这个合作项目除了解决技术问题,也希望让不同的编程语言社区和平共处。他们认为使用这些语言的人合作得越多,数据科学领域就能发展得越好。
“我希望这次合作能结束 R 和 Python 之间毫无意义的争斗,”Wickham 说,“因为这两种语言都很棒。”
参考资料:
http://wesmckinney.com/blog/announcing-ursalabs/
https://qz.com/1270139/r-and-python-are-joining-forces-in-the-most-ambitious-crossover-event-of-the-year-for-programmers/
本文为专栏文章,来自:AI前线,内容观点不代表本站立场,如若转载请联系专栏作者,本文链接:https://www.afenxi.com/51873.html 。