社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

优达学城Udacity • 8 年前 • 736 次点击  

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

原创: 欧剃译 优达学城Udacity


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


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


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


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



高收入国家中 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 语言的增长——你可以看到存在某种像是“延迟”的现象:当一种技术在高收入国家中广泛普及后一两年,才逐渐扩展到全球范围。


下一步研究方向


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



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/VnVjo3WW4R
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/13880