大数据告诉你:为啥近5年来Python如此火爆?

咱们最近讨论过,那些被世界银行定义为高收入水平的发达国家,在选择使用什么类型的技术方面,和世界上的其余地方每每有着较大的区别。这类区别中,差别最大的例子之一,就是 Python 编程语言。若是只统计高收入国家的数据,这几年间 Python 的增加量远超过诸如 StackOverflow 趋势工具中显示的全球软件开发工具的增加状况。python

今天,咱们将深刻挖掘一下近五年里 Python 编程语言爆炸性增加的细节数据,主要以高收入国家用户产生的 StackOverflow 流量为指标。固然,咱们很难精肯定义像“增加速度最快”这样的说法,但咱们仍是找到了 Python 是近年来增加速度最快的主要编程语言的决定性证据。web

除非特别代表,本文如下讨论的全部数据均仅统计高收入国家范围内;这些流量主要来自好比美国、英国、德国、加拿大等发达国家,占了 StackOverflow 总访问量的约 64%;其余一些国家,好比印度、巴西、俄罗斯和中国固然也为全球软件开发生态系统作出了巨大的贡献,限于篇幅本文对此再也不详细讨论,但咱们也能看到, Python 在这些国家中也表现出增加的趋势。django

这里要先强调一点,某种语言的用户数量并不能用于衡量某个语言的质量:咱们只是单纯描述开发者使用编程语言的状况,并无对此作出任何评判。编程

高收入国家中 Python 语言的增加状况

从 StackOverflow 趋势工具上,咱们能看到近几年 Python 的增加势头一直很是迅猛。但若是光考虑高收入国家的状况又如何呢?咱们的统计口径是每一个问题的阅读量,而不是回答数量——虽然两者结果相似,但阅读量的每个月干扰较小,特别对较小的标签更是如此。框架

对于 StackOverflow 问题的阅读量,咱们能得到的统计数据是从2011年底至今。在此范围内,咱们将 Python 和其余5中主要的编程语言进行对比。(注意:这个统计范围比趋势工具分析的范围要小,趋势工具的数据是从2008年至今。)这些编程语言是目前 StackOverflow 上高收入国家的用户访问量最多的10大标签中的6个 —— 其余4个没有列入对比的是 CSS 、 HTML、Android、和 JQuery。编程语言

从数据上来看,2017年6月,Python 首次超过 Javascript,成为 StackOverflow 上阅读量最高的标签。其中, Python 在美国和英国是国内阅读量第一,在其余几个高收入国家则略微小于 Java 或者 Javascript ,屈居亚军。这但是至关引人注目的成就,要知道在2012年,它比其余5个编程语言都低,而短短的几年内就增长了2.5倍。固然这部分缘由是因为 Java 每季度的访问变化规律:因为在大学课程中 Java 的占比至关大,因此 Java 的阅读量在每一个学期期中和期末阶段会迎来一个高峰,而到了暑假期间则相对回落。在今年末 Java 是否有可能再度反超 Python 呢?咱们用了个趋势分析模型“STL”,将季度性的变化和整体的增加趋势进行整合,并对接下来两年的增加趋势进行了预测:函数式编程

根据这个模型,Python 有可能继续保持领先,也有可能在今年秋季被 Java 暂时超过(这些都在模型预期的变更范围内),但很明显,在2018年 Python 将毫无疑问成为阅读量排行第一的标签。 STL 模型还推测, Java 和 Javascript 将会继续保持在比较类似的水平,正如它们前两年中的趋势同样。函数

整体上看哪一个标签增加的最快?

上述数据都仅限在访问最多的6大编程语言中。但在目前各类技术百花齐放的时候,到底谁才是当下在高收入国家里增加最快的技术呢?工具

咱们决定以2016年度和2017年度的阅读量增加率为指标,分析了各大编程语言( Java 和 Python 之类)以及各类平台(好比 iOS、Android、Windows 和 Linux)的数据,不过没有包括相似 Angular 这样的框架或者 Tensor Flow 这样的工具(虽然它们不少也展示出了不俗的增加势头,也许咱们以后会另文讨论)。学习

因为在不一样体量和增加数量上的差别,单纯的增加率数字是不具备可比性的。所以,咱们使用了一张平均差图来对比每一个标签的总量和增加率。

如图所示,拥有 27% 年增加率的 Python 可谓独占鳌头:基数大的标签中增加最快,增加快的标签中总量最大。与其增加率相似,总量排在第二大的是 R 语言。在高收入国家,大部分总量较大的标签的流量都保持相对稳定,除了 Android 、iOS 和 PHP 有些微的减小。以前咱们还讨论过的 Objective-C 、 Perl 和 Ruby 都有比较明显的缩减。各类函数式编程语言中, Scala 是总量最大增加状况也最好的,而 F# 和 Clojure 则总量很低,又呈减小趋势,只有 Haskell 保持居中稳定态势。

不过上图中有一个特殊的成员没法显示,那就是 Typescript 。它的相关问题阅读量在去年增加了 142% 以致于无法摆在图上。同时,你还能看出有许多相对较小的语言的增加速度也和 Python 持平或更高(好比 R、 Go 和 Rust),而 Swift 和 Scala 也显示出了使人印象深入的增加势头。那么他们的总阅读量状况和 Python 相好比何呢?

相似 R 和 Swift 这些语言的增加速度确实颇为可观, TypeScript 更是在这么短的时间内翻了一番多。这些较小的编程语言的发展,几乎都是从彻底默默无闻,到现在在软件生态系统中占有了不可忽视的份额。但根据这张图表咱们能够看出,对于总量相对较小的语言,要更快地扩张仍是相对容易的。

请注意咱们并非把这些语言和 Python 进行对比,只是尝试解释这些语言的增加速度和总量的关系——这些语言都还有很是广阔的前景。但在目前的统计数据中, Python 确实是独树一帜:它既是这些语言中总阅读量最大的,也是增速最快的之一。(事实上,它的增速还在加快!从2013年以来,每一年的平均增加率都在提升。)

放眼全球

至此,咱们已经分析了高收入国家中 Python 语言的相关趋势。在全球的其余国家,好比印度、巴西、俄罗斯和中国, Python 是否是也有着相似的增加状况呢?

答案是确定的。

在其余国家和地区, Python 依旧是增加最快的主要编程语言,它原先也仍是保持着较低的水平,比高收入国家迟了两年(2014年)才开始高速增加。事实上,在非高收入国家的用户中, Python 相关标签的阅读量年增加率甚至比高收入国家的还稍微高一点点。虽然上图没有显示,但另外一门使用量和GDP呈正相关关系的编程语言: R 语言的访问量在这些国家里也呈增加趋势。

本文中,关于问题标签阅读量增减状况(而不是绝对的排行)的许多结论都是基于高收入国家的数据,但在其余国家和地区也一样成立。在这两种不一样区域间的增加率数据的斯皮尔曼相关系数达 0.979。在部分状况下——好比在 Python 语言的增加——你能够看到存在某种像是“延迟”的现象:当一种技术在高收入国家中普遍普及后一两年,才逐渐扩展到全球范围。

下一步研究方向

咱们写这篇文可不是为了引战。某种语言的用户量并不能表明它的质量,固然也不能告诉你对于某种特定状况用哪一种语言来解决更好。带着这样的观点,咱们相信,经过相似研究,咱们能够了解到当前的软件开发生态是由哪些语言组成的,以及据此推测整个产业将会往什么方向改变。

你们在学python的时候确定会遇到不少难题,以及对于新技术的追求,这里推荐一下咱们的Python学习扣qun:784758214,这里是python学习者汇集地!!同时,本身是一名高级python开发工程师,从基础的python脚本到web开发、爬虫、django、数据挖掘等,零基础到项目实战的资料都有整理。送给每一位python的小伙伴!每日分享一些学习的方法和须要注意的小细节

点击:python技术分享

相关文章
相关标签/搜索