2019中国Python开发者调查报告
The following article comes from PyChina Author 王斌鑫
摘要
2019 年秋,PyCon China 通过 PyCon 现场和网络的方式对中国的 Python 开发者进行了深度调查。本次调查旨在关注 Python 在中国的最新趋势并总结 2019 年 Python 开发的发展情况。
来自全国数十个城市的 1600 多名开发人员参与了此次调查,帮助我们勾勒出一个尽可能准确的中国 Python 社区的全景图。调查内容涵盖 Python 在中国的使用、开发类型、框架、库、技术、开发工具、就业等方面。
Python 作为主要语言 vs 第二语言
在我们的调查中,72%的 Python 用户使用 Python 作为他们的主要语言,而 29%的用户把 Python 作为第二语言。
有趣的事实
在 JetBrains 2018 年的 Python 开发者调查报告中,使用 Python 作为主要语言的比例达到 84%,比 2019 年国内高出近13%。
除 Python 外的语言使用情况(多选)
中国的 Python 用户中,有近 30% 的用户还使用 C/C++、JavaScript 和 Bash/Shell。这和 JetBrains 在 2018 年统计的前三名非 Python 语言(JavaScript、HTML/CSS、Bash/Shell)稍有区别。
而使用 HTML/CSS、Java、SQL、Go 的开发者比例紧随其后,均有 20% 左右的比例。
可见中国的 Python 开发者也是其他热门语言的使用者。
Python 开发类型
人们使用 Python 进行什么类型的开发,以及如何进行结合?
使用 Python 的目的是什么?
80% 的用户在工作和个人开发中都会使用 Python,11.6% 的人将之用于个人项目,9.4% 用于工作。
使用 Python 做什么?(多选)
使用 Python 做 Web 开发的人最多,有超过一半的比例。其次是 数据分析、网络爬虫和机器学习。
此外,在自动化测试和 DevOps/运维开发 领域,Python 也发挥着重要的作用,有20% 左右的 Python 开发者从事相关领域的开发。
有趣的事实
在 JetBrains 2018 年的 Python 开发者调查报告中,排名第一的 Python 使用领域是数据分析,达到 58%;第二是 Web 开发,达到 52%;第三是 DevOps,达到 43%。
相较于全世界的 Python 开发者来说,中国 Python 开发者则更偏爱于使用 Python 进行 Web 开发。而进行数据分析的比例,则少得多。
对下列活动的熟练度
通过这个问题,我们试图更深入地了解受访者之前所选择的各个领域进行开发的熟练度。可以清楚地看到,Python 用于 多媒体应用、Web 开发、移动开发、DevOps 等方面均能熟练开发,而对桌面开发、机器学习、图形图像等方面则是业余开发。
有趣的事实
在 JetBrains 2018 年的 Python 开发者调查报告中,世界 Python 开发者在六项领域的熟练度均比中国 Python 开发者的最高熟练度(75%)还要高,其中在软件测试方面的专业人数比例达到 93%。
可见中国的 Python 开发者在各个领域的深度上还有进一步提升的空间。
Python 版本和环境
Python 3 vs Python 2
我们的问题是:”您最常用哪个版本的 Python?”。结果显示,82.9% 的用户表示最常用版本为 Python 3,远超 Python 2 的 18.1%。在 Python 3 中,最受欢迎的版本是 Python 3.7 和 3.6,比例远超其他版本。而在 Python 2 中,Python 2.7 则占据了绝对主导的地位。
有趣的事实
在 JetBrains 2018 年的 Python 开发者调查报告中,世界 Python 开发者使用 Python 3 的比例达到 84%。看来中国 Python 开发者对 Python 版本的选择也是紧跟世界的潮流。
Python 2 已于 2020 年 1 月 1 日停止维护,使用它的朋友们要做好升级的准备了。
是否使用以下工具隔离 Python 开发环境?(多选)
一直以来,在开发或部署阶段使用隔离的 Python 环境是一个最佳实践。不出所料,管理 Python 版本的 pyenv,以及管理 Python 环境的 pipenv 和较低级别的 virtualenv 是最常用的环境隔离工具。近些年来容器的兴起,也让 Docker 成为了颇受欢迎的环境隔离工具。有 18.63% 的 Python 用户仍没有使用任何工具进行环境隔离,伴随着一定的环境风险。
Web 框架(多选)
Flask 和 Django 毫无疑问成为中国 Python 开发者中最受欢迎的 Web 框架。而 Tornado 则在一众异步框架中拔得头筹。尽管 Python 3 中引入了异步特性,但使用诸如 sanic、aiohttp 等异步框架的比例仍然较低。
有趣的事实
在 JetBrains 2018 年的 Python 开发者调查报告中,世界 Python 开发者使用 Flask 和 Django 的比例分别为 47% 和 45%,中国开发者使用它们的比例则达到 62.41% 和 57.24%,可见国内开发者的热忱。
数据科学框架和库(多选)
最流行的数据科学框架和库是:NumPy、Pandas、Matplotlib,这在意料之中。而机器学习专用库,如 TensorFlow、SciKit-Learn、Keras 和 PyTorch 等,也非常受欢迎。
有趣的事实
在 JetBrains 2018 年的 Python 开发者调查报告中,世界 Python 开发者使用 NumPy 和 Pandas 的比例分别为 62% 和 51%,中国开发者使用它们的比例则高出了 20 个点,这说明这两个库成为国内 Python 开发者处理数据的不二之选。
通用框架和库(多选)
不出所料,Requests 荣登通用框架和库中的宝座,无疑是 Python 世界中最受欢迎的库之一。在排名前五的库中,网络库占到3个,足见开发者对网络库的依赖。此外,图像处理库 Pillow 也十分受欢迎,占到 27.7%。
开发工具
操作系统(多选)
有超过三分之二的受访者使用 Linux 作为开发环境的操作系统,超过一半的用户使用 Windows。使用 MacOS 的比例也很高,达到 44.36%,说明苹果电脑颇受开发者欢迎。
托管 Python 程序的平台(多选)
超过一半的受访者将 Python 程序托管在私有服务器中。在使用云平台的用户中,他们最偏爱阿里云,使用比例达到 37.25%,而腾讯云和AWS 依次是上一个云平台的一半份额。谷歌云、Azure 和华为云的使用比例近似,在 5-6% 左右。
测试框架(多选)
pytest 在测试框架排名中遥遥领先,占到一半以上的比例,足见它是多么受欢迎;unittest 则次之,看来喜欢直接使用更加底层的测试框架的开发者不在少数;其他测试框架没那么受欢迎。另外,有 24.51%的 Python 用户不使用任何测试框架,这意味着他们不编写任何测试代码。
有趣的事实
在 JetBrains 2018 年的 Python 开发者调查报告中,世界 Python 开发者不使用任何测试框架的比例为 35%,看来中国开发者的测试意识更为深入人心。
数据库(多选)
MySQL 在数据库使用中占据绝对优势的地位。大多数人使用免费或开源数据库,关系型数据库 MySQL、PostgreSQL、SQLite 使用比例较多,非关系型数据库 Redis、MongoDB也很受欢迎。
有趣的事实
在 JetBrains 2018 年的 Python 开发者调查报告中,世界 Python 开发者使用 PostgreSQL 的比例最高,达到 44%,而 MySQL 和 SQLite 次之,均达到 41%。
而中国 Python 开发者则对 MySQL情有独钟,比例高达 76.96%,可见 MySQL 在中国的受欢迎度。
ORMs(多选)
两个最流行的 ORM 是 SQLAlchemy 和 Django ORM,它们与两个领先的 Web 开发框架 Flask 和 Django 的受欢迎度相匹配。
持续集成系统(多选)
Jenkins、Gitlab CI 和 Travis CI 占据了持续集成系统中的前三名,其中 Jenkins 是最受欢迎的,比例高达 39.46%。有 6.13% 的受访用户很喜欢造轮子,打造自己的持续集成系统。
有趣的事实
在 JetBrains 2018 年的 Python 开发者调查报告中,世界 Python 开发者不使用持续集成系统的比例达到 46%,而中国开发者的比例只有 29.41%,可见持续集成的理念在中国 Python 开发者中更加深入人心。
配置管理和运维(多选)
有超过一半的用户使用 SSH/脚本 的方式进行配置管理。而在开源的配置管理运维工具中,Ansible 则是最受欢迎的。有 16.42% 的用户使用自研系统,比持续集成系统的自研比例更高,由此可见配置管理和运维方面的定制化需求更多。
IDE 和编辑器(多选)
PyCharm 是最受欢迎的 Python 开发工具,比例高达 70.59%。而随着微软在 VS Code 的大力投入,它已然成为 Python 开发者中最受欢迎的编辑器。Vim 受到超过五分之一的开发者的喜爱,虽然难学,但依然吸引不少开发者。
通过如下行为进行开发(多选)
使用版本管理工具和虚拟环境是最受欢迎的开发行为。而使用代码检查工具和编写测试用例的比例也占到了近三分之一。类型注解作为近年来新引入的特性,也得到了一定程度的使用。
就业和工作
雇佣状态
三分之二(67.16%)的 Python 用户有全职工作,22.3% 为学生,而只有 4.17% 为自由职业者。
工作岗位
近三分之二(63.09%)的受访者为开发者,十分之一测试者。架构师和团队领导的比例合计占到十分之一。
团队合作 vs 独立工作
超过三分之二的受访用户进行团队协作,近三分之一的受访用户则独立进行项目开发。
团队规模
约一半的开发者在规模很小的团队中工作,其中 39.22% 的团队规模为 2-7 人。
有趣的事实
在 JetBrains 2018 年的 Python 开发者调查报告中,世界 Python 开发者参与低于8人的团队比例为 74%。相对来说,中国 Python 开发者大团队的比例更高。
企业规模
企业主营业务
使用 Python 的时间
Python 萌新(少于2年)的比例最高,超过50%;其次是 3-5 年经验的用户,占到了 31.86%。而 Python 老兵的比例较低,约为 11%。
平均年龄
有 70% 左右的受访者的年纪低于 30 岁,有 1.47% 为青少年。四十岁以上的用户比例较低,但仍是活到老学到老。杭州成为 Python 开发者最多的城市,占到四分之一,其次是北京、上海。
主要在哪座城市使用 Python
平均年收入
大部分受访者的年薪在 30 万以下,其中 10-20 万年薪的占据主流。有仅 10% 的受访者年薪达到 30 万以上,有极少数能到 70 万甚至更高。
是否计划或已经放弃或减少 Python 的使用,转向其他社区
有近十分之一的受访者打算或已经迁往其他社区,他们给出的理由主要有以下几点:
语言局限性,比如性能 Python 在大型项目上不可控、难维护 Python 岗位少、跳槽难
语言优雅,使用方便 喜欢 Python 的社区和生态 发展趋势
(*本文为AI科技大本营转载文章,转载请联系原作者)
◆
精彩推荐
◆
2020年,由 CSDN 主办的「Python开发者日」活动(Python Day)正式启动。我们将与 PyCon 官方授权的 PyCon中国社区合作,联手顶尖企业、行业与技术专家,通过精彩的技术干货内容、有趣多元化的活动等诸多体验,共同为中国 IT 技术开发者搭建专业、开放的技术交流与成长的家园。未来,我们和中国万千开发者一起分享技术、践行技术,铸就中国原创技术力量。
如果群满100人,无法自动进入,可添加会议小助手微信:婷婷,151 0101 4297(电话同微信)
170个新项目,579个活跃代码仓库,Facebook开源年度回顾
滴滴章文嵩:一个人的20年开源热情和国内互联网开源运动
掌握 8 种语言、被阿里点赞,这名德国程序员简直开挂了!
为什么 k8s 在阿里能成功?| 问底中国 IT 技术演进
K8s 实践 | 如何解决多租户集群的安全隔离问题?
你点的每个“在看”,我都认真当成了AI