GMTC 全球大前端技术大会(北京站)门票 9 折特惠购票最后 10 天,点击立减 ¥480 了解详情
写点什么

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:062070

评论

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

实战中学习浏览器工作原理 — 之 HTTP 请求与解析

三钻

CSS Java 前端 浏览器

Python 中的数字到底是什么?

Python猫

Python 翻译 PEP

Python 函数为什么会默认返回 None?

Python猫

Python 编程

区块链usdt承兑商支付系统开发 区块链应用开发

电微13828808271

USDT承兑支付系统开发

LeetCode题解:84. 柱状图中最大的矩形,循环+双指针暴力,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

区块链+公共安全 大有可为

CECBC区块链专委会

区块链 安全

LeetCode题解:239. 滑动窗口最大值,双循环暴力,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

从每秒6000写请求谈起

架构师修行之路

程序员 架构师 高并发系统设计

北京首台区块链政务终端亮相 一键“拉取”链上数据

CECBC区块链专委会

区块链技术

macos主流工作开发套件指南

久违

macos Docker 前端 自动化部署

Docker 搭建 Redis Cluster 集群环境

哈喽沃德先生

redis Docker 容器 集群 redis cluster

学习笔记丨结构体中的内存管理

Liuchengz.

c Linux 学习

Centos7 mongodb安装全攻略

红泥小壶

mongodb

经济适用的企业内外网互动直播方案

fumingwang

音视频 直播 视频会议 企业应用

Python 为什么没有 void 关键字?

Python猫

Python 编程

有奖征文火热开赛,万元大奖等你来拿,准备好了吗?

InfoQ写作平台官方

程序员 开发者 音视频 随笔杂谈 RTC征文大赛

在5G智慧园区的“保龄球道”上,目标全垒打的征途

脑极体

凤凰交易所 全球首个多元化生态交易平台震撼来袭

InfoQ_967a83c6d0d7

全场景智慧:新工业革命必须拥抱的晨曦

脑极体

芯片破壁者(十五):仙童半导体和“八叛逆”所缔造的“硅谷模式”

脑极体

深度解读:Apache DolphinScheduler 新架构与特性,性能提升2~3倍

海豚调度

开源 大数据任务调度 工作流调度 开源社区

oeasy教您玩转linux010204-figlet

o

Apache Pulsar 8 月月报:里程碑一个接一个

Apache Pulsar

大数据 云原生 Apache Pulsar 消息系统 消息中间件

Flink保存点-17

小知识点

scala 大数据 flink

iWebExcel 协同数据填报和在线分析平台

Geek_Willie

SpreadJS

长期坚持运动,生活真的改变了吗?

金龟换酒

读书 运动 健身

缓存与数据库一致性问题深度剖析

Zhendong

数据库 缓存 秒杀系统

dubbo应用级服务发现初体验

捉虫大师

dubbo 注册中心

ARTS Week10

丽子

如何进行冥想?给大脑来场清新的SPA!

金龟换酒

自我管理 App 冥想

一个在交流群里讨论过两轮的问题,答案竟然跟一个 PEP 有关

Python猫

Python 编程

openEuler Developer Day 2021

openEuler Developer Day 2021

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