写点什么

Python 2019 年开发者调查报告

  • 2020 年 6 月 07 日
  • 本文字数:3608 字

    阅读完需:约 12 分钟

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

评论

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

评审通过,开建!

浪潮云

云计算,

19. 今天的人工智能还不能做什么?

数据与智能

人工智能

护士礼仪培训PPT模板-优页文档

momo

模板 PT模板 优页文档

如何同时压测创建和删除接口

FunTester

性能测试 接口测试 测试框架 压力测试 FunTester

【Flutter 专题】43 图解 Flutter 适配 AndroidX

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

手撸二叉树之层序遍历

HelloWorld杰少

9月日更

1行代码爬CSDN热榜,Python哈啤酒式写法

梦想橡皮擦

9月日更

高并发下HashMap的死循环是怎么形成的,Java基础知识点汇总

Java 程序员 后端

在线JSON转GraphQL工具

入门小站

工具

JVM内存模型学习笔记(一)

风翱

9月日更 JVM内存模型

饿了么4面(Java岗)面经分享,Java技术专家需要掌握的技能

Java 程序员 后端

高并发下HashMap的死循环是怎么形成的,Java自学宝典pdf

Java 程序员 后端

linux之rpm命令

入门小站

Linux

非科班程序员求职经历分享,Java面试知识点

Java 程序员 后端

消息队列存储消息数据的 MySQL 表格设计

tjudream

数据库 索引 消息队列 架构训练营 表结构设计

近期焦虑有感

Nydia

年终总结誓师大会PPT模板-优页文档

momo

模板 优页文档

固定QPS压测模式探索

FunTester

性能测试 测试框架 压力测试 QPS FunTester

关于微服务系统中数据一致性的总结

看山

微服务 后端 数据一致性 引航计划 数据自洽

Prometheus 2.21.0 新特性

耳东@Erdong

release Prometheus 9月日更

Golang 入门指南

baiyutang

编程 程序员 Go 语言 9月日更

Vue进阶(幺贰零):父组件获取子组件验证结果

No Silver Bullet

Vue 9月日更

什么是主数据

奔向架构师

主数据 9月日更

内部岗位竞聘报告PPT模板-优页文档

momo

模板 T模板 优页文档

聊聊文章输出的背后

卢卡多多

输出 9月日更

医疗保健服务宣传和医疗咨询服务PPT模板-优页文档

momo

PT模板 优页文档 优页文档PPT模板

非科班程序员求职经历分享,阿里P7亲自教你

Java 程序员 后端

饿了么4面(Java岗)面经分享,如何在面试中通过工厂模式来给自己加分

Java 程序员 后端

高并发下HashMap的死循环是怎么形成的,熬夜整理Java高频面试题

Java 程序员 后端

网络攻防学习笔记 Day139

穿过生命散发芬芳

9月日更 网站安全基础

一种优于gzip的压缩方式Brotli

devpoint

9月日更 gzip Brotli

知识中台驱动产业智能化升级

知识中台驱动产业智能化升级

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