写点什么

Python 2019 年开发者调查报告

2020 年 6 月 07 日

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


2020 年 6 月 07 日 10:061969

评论

发布
暂无评论
发现更多内容

Python作业留底--《菜鸟教程》Python 练习和习题

Geek_f6bfca

图解Node(上)——直击灵魂的十条拷问

执鸢者

前端 原理 Node

打通微信和钉钉服务是一种怎样的体验?

Ceelog

go 微信 钉钉 微信公众号

你真的懂 Java 的 main 方法吗

Rayjun

Java

Go: ElasticSearch客户端学习

陈思敏捷

go golang elasticsearch elastic go-elasticsearch

Flink-有状态算子的扩缩容-12

小知识点

scala 大数据 flink

巧用HashMap一行代码统计单词出现次数

程序那些事

jdk hashmap 统计字数

架构师第十二周学习总结

傻傻的帅

SpringBoot+Tess4j实现牛逼的OCR识别工具

小隐乐乐

更新丢失、写偏、幻读:数据库事务从快照隔离到可序列化

青菜年糕汤

数据库 数据库事务 分布式数据库 数据库设计 分布式系统

Android | dagger细枝篇

哈利迪

android

基于区块链的社会治理探索

CECBC区块链专委会

区块链 大数据 信息技术

程序的机器级表示-控制

引花眠

计算机基础

ARTS打卡 第14周

引花眠

微服务 ARTS 打卡计划

Ray 分布式计算框架详解

lipi

分布式 数据湖 pandas Apache Arrow

ARTS Week9

丽子

ARTS 打卡计划

算法导论

华宇法律科技

算法

央行数字货币钱包上线后又秒关 兑换了的 DCEP 别担心

CECBC区块链专委会

数字货币 央行

JVM的早期优化与晚期优化

Edison

JVM JVM虚拟机原理

小小的分页引发的加班血案

架构师修行之路

架构

oeasy教您玩转linux010108到底哪个which

o

LeetCode 5. Longest Palindromic Substring

liu_liu

算法 LeetCode

基于Apache Doris的小米增长分析平台实践

DorisDB

数据分析 用户增长 apache doris 分析型数据库 用户行为分析

二叉树深度和大文件排序

escray

学习 面试 面试题 面试现场

什么是分散式金融(DeFi)?

志学Python

去中心化金融 defi

比特币挖矿到底挖的是什么?

CECBC区块链专委会

比特币 区块链 数字货币

ARTS Week14

时之虫

ARTS 打卡计划

架构师训练营第十二周作业

张明森

搬家,又一次和过往告别

王磊

程序人生

架构师第十二周作业

傻傻的帅

【持续更新~】常遗忘却可以变更好的心态

CoderJ

个人成长

NLP领域的2020年大事记及2021展望

NLP领域的2020年大事记及2021展望

Python 2019年开发者调查报告-InfoQ