Python

2020 Python 开发者调查结果

2020 Python 开发者调查结果

这是官方年度 Python 开发者调查的第四次迭代,由 Python Software Foundation 和 JetBrains 共同开展。2020 年 10 月,来自近 200 个国家/地区的超过 28,000 名 Python 开发者和爱好者参与了调查,以揭示该语言及其周围生态系统的现状。

查看 2017 年2018 年2019 年 Python 开发者调查的结果。

一般 Python 使用情况

Python 作为主要语言与作为第二语言

85% 的受访者使用 Python 作为主要编程语言。

Python 与其他语言的使用

> 100%
主要第二混合

JavaScript 是开发者最喜欢与 Python 搭配使用的语言。它们与 HTML/CSS、Bash/Shell 和 SQL 共同形成语言堆栈,每 5 名 Python 开发者中就有 2 名至少使用其中一门语言。

在使用 Python 作为第二语言的开发者中,JavaScript 和 C/C++ 是最常见的主要语言。

适用于 Web 和数据科学的语言

> 100%

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

在执行数据相关任务的 Python 开发者中,只有 8% 不使用任何额外语言,而只有 3% 的 Web 开发者仅使用 Python。不足为奇的是,75% 的 Web 开发者同时使用 Python 和 JavaScript。

使用 Python 的目的

我们在这一部分提出了一些问题,试图了解人们使用 Python 的目的、参与的开发类型,及其结合多种用途的方式。

您主要出于什么目的使用 Python?

您使用 Python 做什么?

> 100%
主要第二混合

Python 用例的细微变化可以解释为受访者中学生所占比例较大 (此次调查为 13%,去年为 10%)。在教育领域有所增加,而受访者的其他类型 Python 活动均有所减少。

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

> 100%

您最常使用 Python 做什么?

主要第二混合

您是否认为自己是数据科学家?

在参与数据分析和机器学习的 Python 开发者中,只有 32% 认为自己是数据科学家。

数据科学家使用 Anaconda 更新 Python 版本的可能性是其他 Python 用户的两倍多,而其他 Python 用户更喜欢 Python.org。

只有参与数据分析和机器学习的受访者回答了这个问题。

Python 版本

Python 3 与 Python 2

Python 版本用例

> 100%

Python 3 版本

Python 安装和升级

> 100%

Windows 用户倾向于从 Python.org 安装 Python,而 Linux 和 macOS 用户通常使用操作系统提供的 Python、pyenv 或 Docker 容器。

Python 环境隔离

> 100%

IDE 和环境隔离工具之间存在着有趣的依赖关系:

  • 超过一半的 Jupyter Notebook 和 JupyterLab 用户选择 Conda。Conda 在其他编辑器用户中的份额仅有约 20%。
  • PyCharm Professional Edition 在 Virtualenv 和 Docker 用户中处于领先地位。
  • 在使用 Pipenv 的 Python 用户中,VS Code 和 PyCharm 的份额最大。
  • 在使用 Vagrant 和 Poetry 的 Python 用户中,Vim 处在领先地位。

Python 功能

热门 Python 功能

这些结果基于“您最喜欢 Python 语言中的哪 3 个功能?”这一问题的回答。

* 不包括标准库、内置数据结构和提取到单独群集中的表达式:

  • 列表理解,生成器
  • 列表和字典
  • 修饰器
  • Asyncio、线程化、多进程
  • 上下文管理器
  • Lambda 函数

** <1% 的受访者指定的其他主题。

需要的 Python 功能

这些结果基于“您想将哪 3 种语言功能添加到 Python 中?”这一问题的回答。

* 不包括提取到其他群集中的标准库的改进:

** <1% 的受访者指定的其他主题。

框架和库

Web 框架

> 100%

FastAPI 在此次调查迭代中首次被引为选项,表现为 Python 第三流行的 Web 框架。

数据科学框架和库

> 100%

NumPy 用户比其他 Python 用户更有可能使用 Conda 隔离其 Python 环境。(32% 对 22%)

单元测试框架

> 100%

单元测试框架的使用与专业经验的年数有很好的相关性。年轻的 Python 开发者进行单元测试的可能性相对非常低。

另外,与 Web 开发者和 DevOps 相比,从事数据分析和机器学习的开发者更常使用单元测试框架。可以预见,最常使用单元测试框架的开发者是参与软件测试和编写自动化测试的开发者。

其他框架和库

> 100%

选择 AWS 的开发者中有 72% 使用 Requests 框架。

Tkinter 和 Pygame 的用户大多是经验不足一年的年轻专家。

ORM

> 100%

大多数使用 Flask 的 Python 用户更喜欢 SQLAlchemy,而 Django 用户使用的则是 Django ORM。是不是有点不可思议?

数据库

> 100%

PostgreSQL 是 Python 开发者中最受欢迎的数据库,在 AWS 用户中更加普及,占比高达 65%。

大数据工具

> 100%

大数据工具的大多数用户更喜欢 JupiterLab。对于 Apache Spark 和 Dask 用户来说尤其如此。第二名是 Jupyter Notebook,但 PyCharm Professional 是 Apache Kafka 用户最喜欢的选择。

技术和云

最热门云平台

> 100%

Heroku 和 PythonAnywhere 在具有 2 年以内专业经验的年轻专业人士中较受欢迎,而 AWS 和 DigitalOcean 则更受经验丰富的 Python 程序员欢迎。

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

> 100%

在容器内运行代码仍然是最受欢迎的方法,而虚拟机的受欢迎程度有所下降,2020 年只有 43% 的用户使用虚拟机。在 2018 年,虚拟机的份额为 47%,是最受欢迎的选择。

您如何进行云开发?

> 100%

在使用 Docker 容器进行云开发的人群中,大多数为测试人员。

与其他类型的开发者相比,Web 开发者在远程开发环境和虚拟机中开发的可能性明显较低。他们更喜欢在本地使用 virtualenv 工作。

开发工具

操作系统

> 100%
Linux

68%

Linux

Windows

48%

Windows

macOS

29%

macOS

BSD

2%

BSD

1%

其他

Python 开发者经验越丰富,越有可能使用 Linux 和 macOS 作为开发环境,而选择 Windows 的可能性也就越小。

持续集成 (CI) 系统

> 100%

2020 年,Gitlab CI 在持续集成系统类别中超越了之前的领先者 - Jenkins/Hudson。

测试人员是使用持续集成系统最多的用户。几乎 80% 参与软件测试或编写自动化测试的开发者都使用 CI 系统。

配置管理工具

> 100%

编辑器和 IDE

主要数据科学Web

为了确定最受欢迎的编辑器和 IDE,我们提出了一个单一答案的问题“您为当前的 Python 开发使用的主要编辑器是什么?”。在 2019 年使用率不足 0.5% 的选项被合并在一起,归入“其他”选项。

PyCharm Community Edition 和 Professional Edition 的合计份额为 33%,与去年结果一致。VS Code 继续增长,比去年增加了 5% 的份额。与此同时,大多数文本编辑器,如 Vim 或 Sublime 文本,都失去了一些份额。

Jupyter Notebook、Jupiter Lab 和 Spyder 从数据科学领域中获得了更多用户。

从事数据工作的 VS Code 用户和 Web 开发者的比例大致相当。

PyCharm 用户中 Web 开发者的比例大约是从事数据处理的用户的两倍,在 PyCharm 专业版上的差异尤其明显。

适用于 Python 开发的工具和功能

> 100%

这个问题列出的大部分操作都带有明显转变,转向更有经验的用户。开发者从事这一行业的时间越长,他们就越有可能使用列出的技术。然而,对于可选的类型提示和自动补全,这种关系并不成立。拥有 11 年以上经验的 Python 用户与编码了 3-5 年的 Python 用户相比,经常执行这些操作的可能性更小。

就业状况和工作

团队工作与独立工作

参与项目

团队规模

就业状况

公司规模

公司行业

目标行业

工作角色

> 100%

Python 经验

专业编码经验

年龄范围

您居住在哪个国家/地区?

所有不足 1% 的国家/地区都已合并到“其他”。

方法和原始数据

想进一步挖掘数据吗?下载匿名调查回复,看看您能学到什么!在 Twitter 上使用标签 #pythondevsurvey 提及 @jetbrains@ThePSF,分享您的发现和见解。

在剖析这些数据之前,请注意以下重要信息:

1

数据集仅包括来自 Python Software Foundation 官方渠道的回复。滤除重复和不可信的回复后,数据集含有超过 28,000 条回复。这些回复在 2020 年 10 月和 11 月收集自 python.orgPSF 博客PSF TwitterLinkedIn 帐户、官方 Python 邮件列表和 Python 相关 Reddit 看板的调查推广。为了防止调查偏向于任何特定的工具或技术,未使用任何与产品、服务或供应商相关的渠道收集回复。

2

数据均已匿名,不含个人信息或详细地理位置。此外,为了防止经逐字评论识别任何个别受访者身份,已删除所有开放字段。

3

为了帮助您更好地理解调查的逻辑,我们分享了数据集、调查问题以及所有的调查逻辑。我们对答案选项采用了不同的排序方式(字母排序、随机排序和直接排序),每个问题的答案顺序都经过特殊指定。

下载调查的原始数据

我们再次代表 Python Software Foundation 和 JetBrains 感谢每一位调查参与者。在您的帮助下,我们得以更准确地描绘出 Python 社区的全貌!

查看 2017 年2018 年2019 年 Python 开发者调查的结果。

感谢您的参与!

我们真诚地希望我们的报告对您有帮助。请与您的朋友和同事共享本报告。

参加今后的调查:

如果您对此调查有任何疑问或对未来有任何建议,请通过 surveys@jetbrains.compsf@python.org 与我们联系。

© 2000-2021 JetBrains s.r.o. 保留所有权利。