写点什么

发达国家与发展中国家编程语言技术的分布差异性

  • 2017-09-03
  • 本文字数:1324 字

    阅读完需:约 4 分钟

近日,Stack Overflow 在官方博客上发布了一组统计数据,表明发达国家与发展中国家在编程语言技术的采用上存在较大的差异。Stack Overflow 对 2017 年 1 月至 8 月期间的访问数据进行了分析,选取了 64 个技术标签,每个标签所包含问题的访问次数均超过 500 万。以下是具体的分析和结论。

技术与 GDP 的关系

从图中可以看出,Android 和 PHP 相关问题的访问量与一个国家的 GDP 是负相关的,也就是说国家收入越高,访问 Android 和 PHP 相关问题的人数就越少,国家收入越低则访问量越高。而 Python 和 R 语言则与 GDP 正相关,国家收入越高,访问这两门编程语言相关问题的人数就越多。虽然也有些例外(比如韩国对 Android 问题的访问量高于预期,中国对 Python 问题的访问量也高于预期),但这两种相关性基本上还是比较准确的。

不过要注意的是,虽然技术与 GDP 存在相关性,但它们之间不存在绝对的因果关系。一个国家的收入会直接影响他们所采用的技术,但采用何种技术并不会反过来影响到国家的收入。

将软件开发行业一分为二

如果按照世界银行收入(也就是基于国民总收入)对国家进行分类,可以得到如下的结果。

其中有 78 个高收入国家,主要包括美国、加拿大、西欧、中东和东亚的部分国家,以及澳大利亚和新西兰。按照国家收入将软件开发行业分为高收入国家和低收入国家比按照地理位置(如东半球和西半球)来分类显得更有意义。

从图中可以看出,高收入国家的访问流量占到了三分之二(63.7%),这有可能是因为软件开发在这些国家占了更大的比例、互联网访问更加普遍和自由、有更多懂英语的人。低收入国家的访问流量主要来自巴西、俄罗斯和中国。

高收入国家和低收入国家在技术采用上的差异

  • 数据科学技术的差异:之前已经提到,Python 和 R 语言与国家收入是正相关的。高收入国家对 Python 相关问题的访问量是低收入国家的两倍,而 R 语言是三倍。值得注意的是,基于 Python 和 R 语言的软件包,如 pandas、numpy、matplotlib 和 ggplot2 等,它们也有比较高的访问量。这表明,在高收入国家,科学研究已经成为经济的重要组成部分,而且程序员可能拥有更高的学历。
  • **C 和 C++:** 这两门语言的相关问题在高收入国家也有较高的访问量。这可能与这些国家的教育有关系,有数据显示,这些流量大部分来自美国高校。
  • PHP 和 Android: PHP 和 Android 与国家收入是负相关的。以 CodeIgniter 为例,CodeIgniter 是一款开源的 PHP 开发框架,它的访问流量很大一部分来自低收入国家,特别是南亚地区(比如印度、印尼、巴基斯坦和菲律宾),这有可能是因为很多外包公司都在使用 CodeIgniter 来构建网站。

编程语言受欢迎程度的差异

从图中可以看到,在 2017 年,Python 的访问量在高收入国家中位居第二,而在低收入国家中仅排在第 8 位。R 语言在高收入国家中排在第 15 位,而在低收入国家中已经跌出了前 50。

结论

这种分析对于了解开发者生态系统来说是非常有用的。一个美国的技术招聘者、一个打算学习编程语言的印度学生和一个肯尼亚的技术投资者,他们需要从这里获得不一样的信息。


感谢杜小芳对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-09-03 19:003734
用户头像

发布了 322 篇内容, 共 157.2 次阅读, 收获喜欢 148 次。

关注

评论

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

随便谈一下kafka消息队列

Regan Yue

kafka 10月月更

架构实战营 拆分电商系统为微服务

💤 ZZzz💤

架构实战营

Spring版本命名规则

Tom弹架构

Java spring 架构

架构实战训练营模块一

人生就是梦

架构实战营

模块6作业

4anonymous

学生管理系统

Mars

架构实战营 模块一

在 Vue3中使用Fabric.js实现渐变(Gradient)效果,包括径向渐变radial

德育处主任

JavaScript 大前端 vite Vue3 FabricJS

软件架构设计原则之迪米特法则

Tom弹架构

Java 架构 设计模式 设计原则

这样学BAT必面之软件设计原则,还不会就是我的问题

Tom弹架构

Java 架构 面试 设计模式 设计原则

【架构实战营作业】模块六——创业公司电商微服务架构

聆息

web安全:mysql提权总结篇

网络安全学海

黑客 网络安全 信息安全 渗透测试 WEB安全

架构实战营模块一作业

spark99

架构实战营

Spring 5系统架构

Tom弹架构

Java spring 架构

软件架构设计原则之单一职责原则

Tom弹架构

Java 架构 设计模式 设计原则

软件架构设计原则之接口隔离原则

Tom弹架构

Java 架构 设计模式 设计原则

10分钟搞懂事件驱动API

俞凡

架构 API

电商系统微服务拆分

michael

架构实战营

HMS的舞者们,在智能世界的舞台

脑极体

软件架构设计原则之开闭原则

Tom弹架构

Java 架构 设计模式 设计原则

软件架构设计原则之依赖倒置原则

Tom弹架构

Java 架构 设计模式 设计原则

软件架构设计原则之里氏替换原则

Tom弹架构

Java 架构 设计模式 设计原则

软件架构设计原则之合成复用原则

Tom弹架构

Java 架构 设计模式 设计原则

Vue进阶(幺肆玖):template 标签

No Silver Bullet

Vue 模板 占位符 10月月更

模块一作业

hhh

「架构实战营」

模块六作业

potti

学生管理系统架构设计

天天向上

架构实战营

模块一作业

zjluoyue

ZK(ZooKeeper)分布式锁实现

牧小农

zookeeper ZooKeeper原理 zookeeper分布式锁

拆分电商系统为微服务

缘分呐

微服务 电商系统

什么是架构

天天向上

架构实战营

电商微服务拆分

白开水又一杯

#架构实战营

发达国家与发展中国家编程语言技术的分布差异性_语言 & 开发_薛命灯_InfoQ精选文章