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作为他们的主编程语言。这个比例与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

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

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

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

原文链接

Python Developers Survey 2019 Results

  • 发表于:
  • 本文为 InfoQ 中文站特供稿件
  • 首发地址https://www.infoq.cn/article/GhD1YwRQGsV1jSjOyFTv
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券