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 作为他们的主编程语言。这个比例与 2018 年 Python 开发者调查中的比例相同。
Python 和其他语言一起使用
调查对象:以 Python 为主语言
调查对象:以 Python 为第二语言
总体情况
与 2018 年相比,与 Python 一起使用的编程语言的分布略有不同。此外,更多的受访者表示,除了 Python,他们不使用任何其他语言,这个比例 2019 年为 11%,2018 年为 6%。
Web vs 数据科学
Web 指的是在回答“您最常用 Python 做什么?”这个问题时选择“Web 开发”的人。数据科学指的是在同一问题中选择“数据分析”或“机器学习”的人。
与数据科学家相比,那些选择“Web 开发”的人中使用 JavaScript、TypeScript、HTML/CSS 和 PHP 等脚本语言的更多。与之相反,C/C++、Java 和 R 在数据科学家中比在 Web 开发人员中更受欢迎。
使用 Python 的目的
在这一部分,我们提出了一系列的问题,以了解人们使用 Python 的目的、他们参与的开发类型以及他们如何组合各种用途。
您主要是在哪种场景下使用 Python?
您使用 Python 干什么?
调查对象:以 Python 为主语言
调查对象:以 Python 为第二语言
总体情况
Python 用户非常热衷于多任务。对于“您使用 Python 做什么?”这个问题,受访者平均选择了 3.9 个选项。
Python 各种应用领域的占比连续三年保持稳定。数据分析仍然是最常见的 Python 使用方式,其次是 Web 开发。
2019 年,计算机图形学领域的 Python 用户略有增加,为 13%,而 2018 年为 9%。
您参与以下活动的程度如何?
对于“您使用 Python 做什么?”这个问题,还有一个开放式的文本框,下面是出现最多的回复:
API、人工智能、天文学、自动化、后端、生物信息学、区块链、机器人、CLI 应用程序、云、计算机视觉、密码学、网络安全、数据工程、数据挖掘/管道/处理/可视化、深度学习、Discord 机器人、工程、企业应用程序(ERP)、道德黑客、ETL、财务软件、有趣、GIS、黑客行为、家居自动化、图像处理、物联网、微服务、音乐、自然语言处理、测试、物理模拟、量子计算、研究、机器人技术、科学/科学计算、服务器、交易。
因此,可以得出结论,Python 应用非常广泛。
您主要使用 Python 干什么?
调查对象:以 Python 为主语言
调查对象:以 Python 为第二语言
总体情况
如果您参与了数据分析或机器学习活动,那您认为自己是数据科学家吗?
在参与数据分析和机器学习的人中,只有 33%的人认为自己是数据科学家。
Python 版本
Python 3 vs Python 2
虽然 Python 2 已经不再维护,但仍然有 10%的受访者在积极地使用它。
在 Python 2 的用户中,Web 开发占了 45%,DevOps/系统管理/编写自动化脚本占 41%,具有 6 年以上编程经验的专业人员的比例是 Python 3 用户的两倍。
Python 两个版本的使用场景
尽管数据分析在 Python 开发人员中更普遍,但有趣的是,在使用 Python 2 的开发人员中,数据分析的开发人员占比低于 Web 开发人员的占比。这可能是因为,在数据分析领域,Python 是近年来才开始变得越来越受欢迎,而 Web 开发是一个更加成熟的领域,部分 Web 开发人员需要维护大量的遗留代码。
与 Python 3 的 42%相比,使用 Python 2 的开发人员从事机器学习工作的比例要低得多,这可能是因为这是一个快速发展的领域。
Python 3 版本
Python 3 的用户有超过一半使用 Python 3.7,这使得它成为 2019 年底最流行的 Python 版本。
Python 安装和升级
Python 环境隔离
Virtualenv 仍然是 Python 环境隔离最流行的方法,尽管还有其他许多有趣的替代方案。与此同时,Vagrant/虚拟机变得越来越不受欢迎。自 2018 年以来,它们的占比已经降低了 3 个百分点。
框架和库
本节重点介绍 Python 开发人员使用的各种流行的 Python 框架、库和技术。
Web 框架
在那些没有参与 Web 开发的人中,50%的受访者使用了某种 Web 框架。其中,Flask(32%)和 Django(21%)排在前两位。73%的 Web 开发人员(主要从事 Web 开发)使用 Django,61%的 Web 开发人员使用 Flask。
数据科学框架和库
NumPy 是最流行的数据科学框架,有 63%的 Python 开发人员在使用,其次是 Pandas,有 55%的开发人员在使用。
在以前的调查中,没有 PyTorch 这个选项,但是它非常流行,有 15%的 Python 开发人员在使用。
大数据工具
其他框架和库
对于这个问题,我们列出了一些通用的 Python 库。毫不奇怪,超过一半的 Python 用户使用 Requests。Pillow 也很受欢迎。五分之一的 Python 用户使用 asyncio。
单元测试框架
对于这个问题,我们提供了一个 Python 单元测试库的列表。几乎有一半的 Python 用户使用 Pytest。它甚至比 unittest 更受欢迎,而后者是 Python 标准库的一部分。
技术和云
ORM
SQLAlchemy 和 Django ORM 是两种最流行的 ORM,这也反映了排名前两位的 Web 开发框架 Flask 和 Django 的受欢迎程度。
数据库
排名前几位的云平台
自 2018 年以来,谷歌云平台使用量增长了 2 个百分点,微软 Azure 增长了 4 个百分点,而 DigitalOcean 和 Heroku 的份额有所下降。
除了上面几种流行的云平台之外,OpenStack 占比 6%,Linode 占比 5%,OpenShift 占比 3%,Rackspace 占比 1%。8%的受访者还提到了其他上面未列出的云平台,其中得票最多的是 OVH、Vultr、Hetzner 和 Scaleway。
您在云中如何运行代码(生产环境)?
在容器中运行代码变得越来越流行(2019 年为 47%,2018 年为 40%),并且已经超过了在虚拟机中运行代码。
您如何进行面向云的开发?
自 2018 年以来,在容器中进行面向云的开发受欢迎程度上升了 6 个百分点,而虚拟机的受欢迎程度略有下降,减少了 2 个百分点。
随着容器技术的成熟,它的受欢迎程度有了明显的提高。现在,在许多情况下,容器技术都被用来代替虚拟机进行面向云的开发。尽管虚拟机的使用有所减少,但这两种技术都会继续发挥其关键作用。
开发工具
操作系统
在 Python 开发人员中,Linux 是最流行的操作系统——将近三分之二的开发人员在某种程度上使用 Linux。
持续集成(CI)系统
与前一年相比,Jenkins/Hudson 和 Travis CI 的份额有所下降,而 Gitlab CI 几乎达到与 Jenkins 相同的覆盖率,后者是最受欢迎的选项。
配置管理工具
编辑器和 IDE
为了找出最流行的编辑器和 IDE,我们提了一个单选题:“您在当前的 Python 开发中使用的主要编辑器是什么?”在 2019 年,得票数不足 0.5%的选项被合并到 Other 选项下。
在 Python 开发中,最流行的工具是 PyCharm 和 VScode。PyCharm 社区版和专业版的合计占比为 33%。VScode 也经历了快速的增长。2017 年为 7%,2019 年达到 24%。
Python 开发工具及特性
几乎所有的 Python 开发人员都在他们的 IDE 或编辑器中使用版本控制系统、自动补全和代码重构等特性。
就业和工作
就业状况
职业角色
Python 经验
专业编码经验
在团队中工作 vs 独立工作
从事多个项目
团队规模
公司规模
公司行业
目标行业
年龄范围
方法及原始数据
如果读者想要自己分析结果,可以下载做过匿名处理的调查反馈,看看你能了解到什么!在推特上分享你的发现和见解时,请添加 #pythondevsurvey 标签及@jetbrains和@ThePSF。
在分析这些数据之前,请注意:
这些数据只包括来自 Python 软件基金会官方渠道的回复,包括python.org、PSF博客、PSF 的Twitter账户和LinkedIn账户、Python 官方邮件列表以及与 Python 相关的 subreddits。在过滤掉重复和不可信的回复后,该数据集还包括在 2019 年 10 月和 11 月收集的超过 24000 条回复。为了防止调查偏向任何特定的工具或技术,我们没有使用产品、服务或供应商相关的渠道来收集回复。
这些数据是匿名的,没有个人信息或地理位置信息。此外,为了防止任何个别受访者被指认,所有开放式字段都已删除。
为了帮助您更好地理解调查逻辑,我们将共享数据集、调查问题和所有调查逻辑。我们的答案选项使用了不同的排序方法(字母排序、随机排序和直接排序)。答案的顺序是特定于问题的。
我们也非常乐意接受任何与这个调查相关的建议和反馈,这样,我们下次可以做得更好。如果您对本次调查有任何问题或对未来的调查有任何建议,请通过 surveys@jetbrains.com 或 psf@python.org 与我们联系。
原文链接:
Python Developers Survey 2019 Results
评论