Categories
程式開發

Python 2019年开发者调查报告


2019年秋,Python软件基金会和JetBrains一起开展了第三次年度Python开发者调查。就像之前的调查(2017年、2018年)一样,我们希望可以借此发现最新的趋势,并深入了解2019年Python开发的现状。来自150多个国家的24000名Python开发人员参与了调查,帮助我们了解了Python社区的全貌。

本文最初发布于JetBrains博客,由InfoQ中文站翻译并分享。

2019年秋,Python软件基金会和JetBrains一起开展了第三次年度Python开发者调查。就像之前的调查(2017年2018年)一样,我们希望可以借此发现最新的趋势,并深入了解2019年Python开发的现状。来自150多个国家的24000名Python开发人员参与了调查,帮助我们了解了Python社区的全貌。

Python的一般使用情况

Python作为主语言 vs Python作为第二语言

Python 2019年开发者调查报告 1

大多数受访者将Python作为他们的主编程语言。这个比例与2018年Python开发者调查中的比例相同。

Python和其他语言一起使用

Python 2019年开发者调查报告 2

调查对象:以Python为主语言

Python 2019年开发者调查报告 3

调查对象:以Python为第二语言

Python 2019年开发者调查报告 4

总体情况

与2018年相比,与Python一起使用的编程语言的分布略有不同。此外,更多的受访者表示,除了Python,他们不使用任何其他语言,这个比例2019年为11%,2018年为6%。

Web vs 数据科学

Python 2019年开发者调查报告 5

Web指的是在回答“您最常用Python做什么?”这个问题时选择“Web开发”的人。数据科学指的是在同一问题中选择“数据分析”或“机器学习”的人。

与数据科学家相比,那些选择“Web开发”的人中使用JavaScript、TypeScript、HTML/CSS和PHP等脚本语言的更多。与之相反,C/C++、Java和R在数据科学家中比在Web开发人员中更受欢迎。

使用Python的目的

在这一部分,我们提出了一系列的问题,以了解人们使用Python的目的、他们参与的开发类型以及他们如何组合各种用途。

您主要是在哪种场景下使用Python?

Python 2019年开发者调查报告 6

您使用Python干什么?

Python 2019年开发者调查报告 7

调查对象:以Python为主语言

Python 2019年开发者调查报告 8

调查对象:以Python为第二语言

Python 2019年开发者调查报告 9

总体情况

Python用户非常热衷于多任务。对于“您使用Python做什么?”这个问题,受访者平均选择了3.9个选项。

Python各种应用领域的占比连续三年保持稳定。数据分析仍然是最常见的Python使用方式,其次是Web开发。

2019年,计算机图形学领域的Python用户略有增加,为13%,而2018年为9%。

您参与以下活动的程度如何?

Python 2019年开发者调查报告 10

对于“您使用Python做什么?”这个问题,还有一个开放式的文本框,下面是出现最多的回复:

API、人工智能、天文学、自动化、后端、生物信息学、区块链、机器人、CLI应用程序、云、计算机视觉、密码学、网络安全、数据工程、数据挖掘/管道/处理/可视化、深度学习、Discord机器人、工程、企业应用程序(ERP)、道德黑客、ETL、财务软件、有趣、GIS、黑客行为、家居自动化、图像处理、物联网、微服务、音乐、自然语言处理、测试、物理模拟、量子计算、研究、机器人技术、科学/科学计算、服务器、交易。

因此,可以得出结论,Python应用非常广泛。

您主要使用Python干什么?

Python 2019年开发者调查报告 11

调查对象:以Python为主语言

Python 2019年开发者调查报告 12

调查对象:以Python为第二语言

Python 2019年开发者调查报告 13

总体情况

如果您参与了数据分析或机器学习活动,那您认为自己是数据科学家吗?

Python 2019年开发者调查报告 14

在参与数据分析和机器学习的人中,只有33%的人认为自己是数据科学家。

Python版本

Python 3 vs Python 2

Python 2019年开发者调查报告 15

虽然Python 2已经不再维护,但仍然有10%的受访者在积极地使用它。

在Python 2的用户中,Web开发占了45%,DevOps/系统管理/编写自动化脚本占41%,具有6年以上编程经验的专业人员的比例是Python 3用户的两倍。

Python两个版本的使用场景

Python 2019年开发者调查报告 16

尽管数据分析在Python开发人员中更普遍,但有趣的是,在使用Python 2的开发人员中,数据分析的开发人员占比低于Web开发人员的占比。这可能是因为,在数据分析领域,Python是近年来才开始变得越来越受欢迎,而Web开发是一个更加成熟的领域,部分Web开发人员需要维护大量的遗留代码。

与Python 3的42%相比,使用Python 2的开发人员从事机器学习工作的比例要低得多,这可能是因为这是一个快速发展的领域。

Python 3版本

Python 2019年开发者调查报告 17

Python 3的用户有超过一半使用Python 3.7,这使得它成为2019年底最流行的Python版本。

Python安装和升级

Python 2019年开发者调查报告 18

Python环境隔离

Python 2019年开发者调查报告 19

Virtualenv仍然是Python环境隔离最流行的方法,尽管还有其他许多有趣的替代方案。与此同时,Vagrant/虚拟机变得越来越不受欢迎。自2018年以来,它们的占比已经降低了3个百分点。

框架和库

本节重点介绍Python开发人员使用的各种流行的Python框架、库和技术。

Web框架

Python 2019年开发者调查报告 20

在那些没有参与Web开发的人中,50%的受访者使用了某种Web框架。其中,Flask(32%)和Django(21%)排在前两位。73%的Web开发人员(主要从事Web开发)使用Django,61%的Web开发人员使用Flask。

数据科学框架和库

Python 2019年开发者调查报告 21

NumPy是最流行的数据科学框架,有63%的Python开发人员在使用,其次是Pandas,有55%的开发人员在使用。

在以前的调查中,没有PyTorch这个选项,但是它非常流行,有15%的Python开发人员在使用。

大数据工具

Python 2019年开发者调查报告 22

其他框架和库

Python 2019年开发者调查报告 23

对于这个问题,我们列出了一些通用的Python库。毫不奇怪,超过一半的Python用户使用Requests。Pillow也很受欢迎。五分之一的Python用户使用asyncio。

单元测试框架

Python 2019年开发者调查报告 24

对于这个问题,我们提供了一个Python单元测试库的列表。几乎有一半的Python用户使用Pytest。它甚至比unittest更受欢迎,而后者是Python标准库的一部分。

技术和云

ORM

Python 2019年开发者调查报告 25

SQLAlchemy和Django ORM是两种最流行的ORM,这也反映了排名前两位的Web开发框架Flask和Django的受欢迎程度。

数据库

Python 2019年开发者调查报告 26

排名前几位的云平台

Python 2019年开发者调查报告 27

自2018年以来,谷歌云平台使用量增长了2个百分点,微软Azure增长了4个百分点,而DigitalOcean和Heroku的份额有所下降。

除了上面几种流行的云平台之外,OpenStack占比6%,Linode占比5%,OpenShift占比3%,Rackspace占比1%。8%的受访者还提到了其他上面未列出的云平台,其中得票最多的是OVH、Vultr、Hetzner和Scaleway。

您在云中如何运行代码(生产环境)?

Python 2019年开发者调查报告 28

在容器中运行代码变得越来越流行(2019年为47%,2018年为40%),并且已经超过了在虚拟机中运行代码。

您如何进行面向云的开发?

Python 2019年开发者调查报告 29

自2018年以来,在容器中进行面向云的开发受欢迎程度上升了6个百分点,而虚拟机的受欢迎程度略有下降,减少了2个百分点。

随着容器技术的成熟,它的受欢迎程度有了明显的提高。现在,在许多情况下,容器技术都被用来代替虚拟机进行面向云的开发。尽管虚拟机的使用有所减少,但这两种技术都会继续发挥其关键作用。

开发工具

操作系统

Python 2019年开发者调查报告 30

在Python开发人员中,Linux是最流行的操作系统——将近三分之二的开发人员在某种程度上使用Linux。

持续集成(CI)系统

Python 2019年开发者调查报告 31

与前一年相比,Jenkins/Hudson和Travis CI的份额有所下降,而Gitlab CI几乎达到与Jenkins相同的覆盖率,后者是最受欢迎的选项。

配置管理工具

Python 2019年开发者调查报告 32

编辑器和IDE

为了找出最流行的编辑器和IDE,我们提了一个单选题:“您在当前的Python开发中使用的主要编辑器是什么?”在2019年,得票数不足0.5%的选项被合并到Other选项下。

Python 2019年开发者调查报告 33

在Python开发中,最流行的工具是PyCharm和VScode。PyCharm社区版和专业版的合计占比为33%。VScode也经历了快速的增长。2017年为7%,2019年达到24%。

Python开发工具及特性

Python 2019年开发者调查报告 34

几乎所有的Python开发人员都在他们的IDE或编辑器中使用版本控制系统、自动补全和代码重构等特性。

就业和工作

就业状况

Python 2019年开发者调查报告 35

职业角色

Python 2019年开发者调查报告 36

Python经验

Python 2019年开发者调查报告 37

专业编码经验

Python 2019年开发者调查报告 38

在团队中工作 vs 独立工作

Python 2019年开发者调查报告 39

从事多个项目

Python 2019年开发者调查报告 40

团队规模

Python 2019年开发者调查报告 41

公司规模

Python 2019年开发者调查报告 42

公司行业

Python 2019年开发者调查报告 43

目标行业

Python 2019年开发者调查报告 44

年龄范围

Python 2019年开发者调查报告 45

方法及原始数据

如果读者想要自己分析结果,可以下载做过匿名处理的调查反馈,看看你能了解到什么!在推特上分享你的发现和见解时,请添加#pythondevsurvey标签及@jetbrains@ThePSF

在分析这些数据之前,请注意:

  1. 这些数据只包括来自Python软件基金会官方渠道的回复,包括python.orgPSF博客、PSF的Twitter账户LinkedIn账户、Python官方邮件列表以及与Python相关的subreddits。在过滤掉重复和不可信的回复后,该数据集还包括在2019年10月和11月收集的超过24000条回复。为了防止调查偏向任何特定的工具或技术,我们没有使用产品、服务或供应商相关的渠道来收集回复。
  2. 这些数据是匿名的,没有个人信息或地理位置信息。此外,为了防止任何个别受访者被指认,所有开放式字段都已删除。
  3. 为了帮助您更好地理解调查逻辑,我们将共享数据集、调查问题和所有调查逻辑。我们的答案选项使用了不同的排序方法(字母排序、随机排序和直接排序)。答案的顺序是特定于问题的。

我们也非常乐意接受任何与这个调查相关的建议和反馈,这样,我们下次可以做得更好。如果您对本次调查有任何问题或对未来的调查有任何建议,请通过[email protected][email protected]与我们联系。

原文链接

Python Developers Survey 2019 Results