[译] 编程语言的选择与国家贫富的相关性
简评:Stack Overflow 分析了其网站上各编程语言标签的访问情况:高收入国家倾向用 Python、R(重视科研)、C 与 C++(重视教育);低收入国家则更多使用 PHP 与 Android 开发。
Stack Overflow 作为程序员版的知乎,一直对外分享着软件开发社区的数据。最近这篇文章「Where in the World is Mobile Development?」就是一个很好的例子,文中分析了来自世界各地关于 Android 标签的流量,发现来自低收入国家的访问会更多。
这个结论也直接促使我们探寻在不同经济状况的国家中,使用的编程技术会有何不同,以及它又将如何影响我们对全球软件行业的看法。
本文的分析数据为从 2017 年 1 月至 8 月流量最高的 250 个标签。为了减少噪声,只采纳该时间段内超过 500 万次访问的 64 个国家。(值得注意的是,这些数据代表的是懂英语的开发者之间的行为)
技术与人均 GDP 相关
此前一篇文章中,我们注意到 Android 流量往往与一个国家的人均 GDP 呈现负相关,那么其他语言会是什么情况呢?
我们发现,除了 Android,类似的表现还包括 PHP、Python 和 R 语言:
Android 和 PHP 流量与国家的人均 GDP 呈负相关
Python 和 R 语言与国家的人均 GDP 则呈正相关
![[译] 编程语言的选择与国家贫富的相关性](https://static.blogweb.cn/article/622c292fb6974ef9ae757d9612a6ed52.webp)
尽管在每种情况下,我们都可以看到异常 —— 韩国使用 Android 比我们预期的要多,而中国则更多采用 Python。但总体来看,编程语言和国家的人均 GDP 相关性很强。(R-square 为 0.5 - 0.6)
相关性并不代表因果关系,不是说编程语言的选择就会影响国家的平均收入,也不代表国家的财富会影响开发者对技术的选择。这个趋势是混合了各项经济和社会因素(教育水平,软件行业年龄,外包水平等),而这通常和一国的财富相关。
软件开发分类依据
当我们研究趋势时,谈论两组不同收入的国家会比考虑一系列相关性更加有用。作为一个既有分类,我们可以参考世界银行收入分类,这是根据人均国民总收入计算得到的数据。
![[译] 编程语言的选择与国家贫富的相关性](https://static.blogweb.cn/article/8218dd26de7341718df6689bc14f79de.webp)
事先我们已经对国家间的差异的根本驱动因素进行了一些分析(如主成分分析),并一致认为,相较于其他分类方法(东西半球等),本文的分类更有参考价值。
![[译] 编程语言的选择与国家贫富的相关性](https://static.blogweb.cn/article/63f411cbcaa949fcb87df2c52399743d.webp)
发达国家的技术使用差异?
现在我们已经把软件开发行业按国家收入划分为两个部分,那么,不同收入的国家在技术使用上又会有什么差异呢?
![[译] 编程语言的选择与国家贫富的相关性](https://static.blogweb.cn/article/c171b7b302bb4c8296f5cb73d8e33c93.webp)
从上面的散点图中我们可以得到几个有意思的结论:
- 数据科学方面的技术差异
如上所述,Python 和 R 语言与国家的人均 GDP 则呈正相关。在发达国家,Python 的访问次数是世界其他地区的两倍,R 语言大约是三倍,这可能是由于这两种语言在学术研究中的作用。另外,更富有的工业化国家,科学研究占经济的较大部分,程序员也更可能获得高等学位。
- C / C ++
C / C ++ 这两种经典的语言的访问也更多来自于高收入国家。同样是基于高等教育因素的假设,毕竟它们几乎是美国大学中的必修课。同时,它们的流量也可能与电子产业的地理分布有关。
- PHP / Android:
前文有提到 Android 和 PHP 是两项与低收入国家相关的技术。
有意思的是,PHP 开源框架 CodeIgniter 的流量访问在低收入国家中出奇的大,特别是在东亚和东南亚的国家中(印度、印度尼西亚、巴基斯坦和菲律宾),而来自美国和欧洲的访问很少。这可能是因为开源框架 CodeIgniter 是建立网站的外包公司常用的选择。
小结
这些数据结果其实是个很有意思的事实,它反应了编程语言生态系统的一些状况。
当我们提出软件开发行业的问题时,对于我们很重要的一点是,我们是否真正回答了这些混合了不同因素的问题,我们是否注意到不同因素中间的主要矛盾。
![[译] 编程语言的选择与国家贫富的相关性](https://static.blogweb.cn/article/a632628adb65489c89e5dd803a28f1f8.webp)
感谢阅读!
转载自:https://juejin.cn/post/6844903501491863560