写点什么

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

  • 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:003402
用户头像

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

关注

评论

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

关于 JavaScript 闭包

程序员海军

JavaScript 大前端 闭包

Python实现excel公式格式化工具

小小明

Python Excel

Pandas实战案例-冷空气活动寒潮级别分类

小小明

MySQL锁等待与死锁问题分析

Simon

MySQL 死锁

CloudQuery v1.3.5 上线!

BinTools图尔兹

数据库 oracle 运维 开发工具 dba

剖析Android开发未来的出路在哪里,终局之战

欢喜学安卓

android 程序员 面试 移动开发

APK反编译

行者AI

编译

Java岗位阿里+字节+滴滴+美团+腾讯+百度+京东12万字面试题总结

Java架构追梦

Java 阿里巴巴 架构 腾讯 面试

将word试卷匹配转换为结构化表格

小小明

Python word

KeyChrone-K8使用体验

ITCamel

试着找一下抖音下单的用户路径地图

小匚

产品经理 产品经理训练营

maven打包,常用启动方式

秋天

mavne

MySQL四大属性(特性) 底层实现原理

java_wxid

Java MySQL 数据库 面试 底层实现原理

HashMap加载因子为什么是0.75?

java_wxid

Java 面试 hashmap HashMap底层原理 加载因子

又是一些小细节!3面成功入职字节跳动:算法+数据库+中间件+JVM

Java架构之路

Java 程序员 架构 面试 编程语言

Android内存泄漏检测之LeakCanary2.0(Kotlin版)的实现原理

vivo互联网技术

android kotlin 内存泄漏

Hello World !!!

潮湿了我押韵的心情

美团3面(Java后台):NIO+BIO+Zookeeper+线程池+Redis+kafka

钟奕礼

Java 编程 程序员 架构 面试

重点人员可视化研判分析系统搭建,可视化大屏系统

AI技术在小程序生态质量保障方向的落地实践

百度Geek说

小程序 AI

单线程、多线程和协程的爬虫性能对比

小小明

Python 爬虫

用户需求差异化需要更专业的云管理平台 | 演讲实录

BoCloud博云

云计算 多云管理

支付宝高级研发一二三面题目:CMS+CAS+线程锁+事务+雪崩+Docker

钟奕礼

Java 编程 程序员 架构 面试

何止一个惨字形容!水滴Java面试一轮游,壮烈了,问啥啥不会,数据库血崩,我该怎么办?

钟奕礼

Java 学习 编程 程序员 面试

JVM 诊断之 jps 工具使用

hepingfly

JVM jvm调优 jvm诊断 jps

高并发下的Redis分布式锁

java_wxid

Java redis 高并发 分布式锁 setnx

iOS 面试策略之简历的准备到面试流程

iOSer

ios 面试

字节跳动5面喜提offer!分享给朋友们面试感受

Java架构之路

Java 程序员 架构 面试 编程语言

批量从Word中提取图片

小小明

Python

AI技术在小程序生态质量保障方向的落地实践

百度开发者中心

百度智能小程序

程序员:如何写出斗帝级简历?

Java架构师迁哥

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