发布 Python 开发者年度调查结果,一览 Python 开发现状与趋势!

这是由 Python Software Foundation 和 JetBrains 共同开展的第五次官方年度 Python 开发者调查。2021 年秋季,来自近 200 个国家/地区的超过 23,000 名 Python 开发者和爱好者参与了调查,揭示了该语言及其生态系统的现状。


一般 Python 使用情况


过去 4 年里,使用 Python 作为主要语言的开发者比例一直保持在 84-85% 的水平。

Python 作为主要语言与作为辅助语言


JavaScript 是与 Python 一起使用的最受欢迎的语言。但是,对于使用 Python 作为辅助语言的开发者来说,C/C++ 几乎与 JavaScript 一样受欢迎。


HTML/CSSBash/ShellSQL 同样使用广泛,每种语言都有超过三分之一的 Python 开发者在使用。

Python 与其他语言的使用

扫描二维码关注公众号,回复: 14330973 查看本文章


不出所料,在 Web 开发者中,与 Python 一起使用的最受欢迎的语言是 JavaScript (69%) 和 HTML/CSS (60%),而从事数据相关工作的开发者更常使用 SQL (42%)。另外,在从事数据相关工作的开发者中,不使用任何其他语言的开发者比例是 Web 开发者的三倍。

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

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


使用 Python 的目的


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

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


多年来,Python 的用例分布并没有太大变化。数据分析机器学习Web 开发DevOps 仍然是最流行的 Python 使用领域。

2020 年和 2021 年 Python 的使用


有四分之一使用 Python 作为主要语言的开发者主要将其用于 Web 开发。在使用 Python 作为辅助语言的开发者中,只有 12% 用于此目的。


有趣的是,报告显示,在将 Python 作为主要编程语言和辅助编程语言的开发者中,将数据分析作为 Python 的主要使用领域的比例几乎相同,分别为 17% 和 16%。


Python 作为主要语言与作为辅助语言的使用

您最常使用 Python 做什么?


只有 29% 从事数据分析和机器学习的 Python 开发者认为自己是数据科学家

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

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

Python 版本


平均而言,Python 2 用户的份额每年下降 5 个百分点,现在只有 5% 的开发者使用 Python 2。


有趣的是,与 Python 3 相比,Python 2 更常应用于计算机图形、游戏和移动开发。

Python 3 与 Python 2

Python 版本用例

Python 3 版本


超过半数的 Windows 用户从 Python.org 获得 Python,而在 Linux 用户中,只有三分之一这样做。不出所料,Linux 和 macOS 用户最常使用操作系统提供的选项来安装和更新 Python。同时,对于 macOS 用户,pyenv 和 Docker 容器也是相当流行的获取 Python 的方法。

Python 安装和升级

*注意:Enthought 的份额不到 0.5%,已被合并到“其他”中。


在 Python 开发者中,有 75% 使用某些工具来隔离 Python 环境。有趣的是,Conda 是使用 Jupyter Notebook 的开发者中最受欢迎的工具 (50%),而其他开发者更喜欢 VirtualenvDocker

Python 环境隔离

框架和库


FlaskDjangoFastAPI 仍然是排名前三的 Python Web 框架。FastAPI 最初于 2018 年底发布,它的增长速度最快,与上一年相比增长了 9 个百分点。与此同时,与 2020 年相比,Flask 的用户份额下降了 5 个百分点。

Web 框架


有 10% 的 Python 开发者同时使用7 个或更多数据科学框架和库,而约半数开发者使用 2 个或更少框架。

数据科学框架和库


大多数其他框架在 Web 开发者中比在数据科学家中更受欢迎,后者使用 Tkinker 和 PyQT 的频率要高得多。

其他框架和库


不同 Python 单元测试框架的受欢迎度与去年相比几乎保持不变。


虽然仅 56% 的独立开发者使用单元测试框架,但在员工人数不低于 5,000 的公司中,75% 的受访者报告说他们使用单元测试框架。

单元测试框架


SQLAlchemy 是所有数据库用户中最受欢迎的 ORM


有趣的是,52% 的 Redis 用户使用 Django ORM,而总体上,它在 Python 开发者中的使用比例不到三分之一。同样值得注意的是,20% 的 Amazon Redshift 用户使用 SQLObject,而在普通人群中,这个数字只有 5% 左右。

ORM


在数据科学家中,80% 的人使用数据库,而在 Web 开发者,98% 的人使用数据库。


与从事数据科学的开发者相比,从事 Web 开发的开发者使用 PostgreSQL 的频率要高 32 个百分点,使用 Redis 的频率要高 25 个百分点,使用 SQLite 的频率要高 12 个百分点。与此同时,数据科学家报告显示,他们使用 Oracle Database 的比例是 Web 开发者的两倍。

数据库


大数据工具的分布与上一年相比基本持平。总体上,数据科学家使用它们的频率比其他开发者要高出 13 个百分点,而 Apache Spark 的受欢迎度大约是 Dask 的两倍。

大数据工具

云平台


61%

Python 开发者使用云平台。


有趣的是,总体上,Visual BasicC#C/C++ 用户使用 AWS 的频率几乎是 Python 开发者的一半。

最热门云平台

*只有使用云平台的受访者回答了这个问题。


虚拟机的受欢迎度继续下降。虽然在 2018 年,它们所占的份额为 47%,是最受欢迎的选择,但现在只有 41% 的 Python 开发者使用它们。

您如何在云中运行代码?

*只有使用云平台的受访者回答了这个问题。


使用 virtualenv 的本地 Python 开发在从事 Web 开发、DevOps 和软件原型设计的开发者中极其受欢迎 (61-65%)。Docker 容器的使用在 Web 开发者中最受欢迎 (54%)。


虚拟机在从事 DevOps、机器学习和网络编程的开发者中广泛使用 (26-27%)。有趣的是,从事 DevOps 和机器学习的开发者使用远程开发环境的频率要高于所有其他受访者。

您如何进行云开发?

*只有使用云平台的受访者回答了这个问题。

开发工具


与 2020 年相比,Linux 和 macOS 的受欢迎度各下降了 5 个百分点,而 Windows 的使用率上升了 10 个百分点。

操作系统


GitHub Actions 于 2018 年推出,并迅速受到欢迎,现在在 CI 系统名单中排名第一,被将近三分之一的 Python 开发者使用。


另一个不断增长的 CI 系统是 GitLab CI,自 2018 年起,它的使用率上升了 4 个百分点。同时,Travis CI 的受欢迎度迅速下降,比 2018 年下降了 13%。Jenkins/Hudson 在三年内也下降了 8 个百分点。

持续集成 (CI) 系统


36%

Python 程序员使用文档工具。最受欢迎的是 Sphinx

文档工具


使用 Python 作为主要语言的开发者在项目中使用 Python 分析器代码覆盖率的频率要比使用 Python 作为辅助语言的开发者高 8 个百分点,使用 Python 虚拟环境的频率高 10 个百分点。

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


PyCharm Community Edition 和 Professional Edition 的组合份额为 31%,这一结果与去年接近。VS Code 与去年相比增长了 6 个百分点。


有趣的是,PyCharm 和 VS Code 在 Web 开发者中的受欢迎水平相当 (39%),而数据科学家更喜欢使用 VS Code 作为他们的主要 IDE,这一比例要高出 9 个百分点。

主要 IDE/编辑器

*为了确定最受欢迎的编辑器和 IDE,我们提出了一个单选问题“您为当前的 Python 开发使用的主要编辑器是什么?”。

数据科学与 Web 开发

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


Python 开发者了解其主要 IDE 的最常见方式是通过学习活动、朋友/同事推荐或搜索引擎。


有趣的是,只有 1% 的受访者称广告是发现该工具的一个来源。


57% 的使用 Jupyter Notebook 的人先在学校/大学或在线课程中了解到该工具,总体而言,25% 的受访者了解其工具的方式相同。

您最初是如何了解您的主要 IDE/编辑器的?


除了主要 IDE 之外,VS Code、Jupyter Notebook 和 PyCharm 是最受欢迎的选择,每一个都有超过 20% 的 Python 开发者使用。


使用 Jupyter Notebook 作为主要 IDE 的人使用 Spyder 的频率大约是其他 Python 开发者的四倍。

使用的 IDE/编辑器数量

主要 IDE/编辑器的使用频率

除主要 IDE/编辑器外使用的 IDE/编辑器


即日起至 6 月 20 日,

购买新的 PyCharm Professional 年个人订阅

输入促销代码

IGIVETODJANGO2022

可立减 30%!

让 Python 变得更好


2021 年,Python Software Foundation 任命了一名新的常驻开发者,全职从事 Python 编程语言的工作并支持其开发者社区。


核心开发者 Łukasz Langa 在 7 月被聘为 CPython DIR。 Langa 正在努力帮助清理积压工作,调查项目优先事项,并研究其他感兴趣的领域。


23% 的 Python 开发者已经知道常驻开发者角色,其中 91% 的人认为这个举措很好。


此外,30% 了解常驻开发者角色的开发者已经看到了这一创新产生的影响。

您如何看待新的常驻开发者角色?


只有 19% 的 Python 用户曾经报告过它的错误。有趣的是,使用 bugs.python.org 并不是最受欢迎的报告方式 – 大约有此方式两倍的程序员更喜欢在其他地方询问或向 GitHub 提交拉取请求。


在报告错误的人中,73% 的人的问题得到解决,只有 7% 的受访者表示他们从未收到任何人的回复。

您是否尝试过报告您的问题?

您的问题解决了吗?

*只有报告过问题的受访者回答了这个问题。

Python 打包


63%

Python 开发者使用容器,其中的 59% 在容器中使用虚拟环境。

您在容器中使用虚拟环境吗?

您直接使用哪些与 Python 打包相关的工具?

您是否使用标准库模块 venv?


45% 

的 Python 开发者使用一些工具来固定应用程序依赖项的版本。 最常见的方式是将其存储在 requirements.txt 中,有四分之三的开发者都采用这种方式。

您是否使用任何工具来管理应用程序依赖项的精确/确切版本?

您的应用程序依赖项信息以什么格式存储?

*只有使用某些工具来管理应用程序依赖项的精确/确切版本的受访者回答了这个问题。

您是否使用任何自动化服务来更新应用程序依赖项的版本?

您使用哪些工具来管理应用程序依赖项?

*只有使用某些工具来管理应用程序依赖项的精确/确切版本的受访者回答了这个问题。


90%

的开发者报告说他们使用 pip 来安装 Python 软件包。 Python Package Index 是最常用来获取软件包的地方。

您从哪里安装软件包?

您使用哪种(哪些)工具来安装软件包?


55%

Python 开发者表示他们开发应用程序,而 Setuptools 是用于此目的的最受欢迎的工具,有 46% 的开发者使用。


虽然有超过一半的 Python 用户开发应用程序,但其中只有 40% 的人已经将这些应用发布到软件包仓库。

您使用哪些工具来开发 Python 应用程序?

*只有开发应用程序的受访者回答了这个问题。


34%

的受访者开发 Python 库,对他们来说,Setuptools 是最常用的打包方式,有 71% 的人使用。


有趣的是,只有 27% 的 Python 库开发者已经将它们发布到软件包仓库。

您使用哪些工具来创建 Python 库的软件包?

*只有开发 Python 库的受访者回答了这个问题。


Python Package Index 是发布已开发库和应用程序软件包的最常用地方,而私有 PyPI 的使用频率大约是前者的一半。

您曾在哪里发布打包的 Python 库?

*只有发布了打包 Python 库的受访者回答了这个问题。

统计数据

团队工作与独立工作

参与项目

就业状况

公司规模

*只有在公司工作的受访者回答了这个问题。

团队规模

*只有在公司工作的受访者回答了这个问题。

公司行业

*只有在公司工作的受访者回答了这个问题。

目标行业

*只有在公司工作的受访者回答了这个问题。

工作角色

*只有在公司工作的受访者回答了这个问题。

年龄范围

Python 经验

专业编码经验

您在哪个国家/地区?

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

我们再次代表 Python Software Foundation 和 JetBrains 感谢参与本次调查的所有人。在你们的帮助下,我们得以更准确地描绘 Python 社区的概况!


接下来,若您好奇我们采集到的原始数据,并且想要进一步挖掘数据,我们公开了调查原始数据和数据搜集与处理的标准。现在,你可以直接从我们的网站下载它们:https://lp.jetbrains.com/zh-cn/python-developers-survey-2021/



更多由 JetBrains 发起的调研内容

⏬ 戳「阅读原文」查看完整调研报告

本文分享自微信公众号 - JetBrains(JetBrainsChina)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

{{o.name}}
{{m.name}}

猜你喜欢

转载自my.oschina.net/u/5494143/blog/5539829