阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

Python 开发者年度调查报告出炉!Python3 采用率超 84%

  • 2019-02-27
  • 本文字数:5623 字

    阅读完需:约 18 分钟

Python开发者年度调查报告出炉!Python3采用率超84%

2018 年秋,Python 软件基金会和著名 IDE 开发商 JetBrains 联合进行了第二届 Python 开发人员调查。和第一次调查一样,本次调查旨在关注 Python 的最新趋势并总结 2018 年 Python 开发的发展情况。来自 150 多个不同国家的 20000 多名开发人员参与了此次调查,帮我们勾勒出一个更精准、与时俱进的 Python 社区全景图,包括 Python 在全球各地的使用、开发类型、Python 3 的使用、Python 框架、库和技术,开发工具,就业和工作等方面。

Python 使用概况

Python 作为主要语言 VS 次要语言


在我们的调查中,84%的 Python 用户使用 Python 作为他们的主要语言,而 16%的用户把 Python 作为第二语言。 在 2017 年,这个分布略有不同:79% 受访者指出他们使用 Python 作为主要语言,21%作为次要语言。


有趣的事实:

Python 作为主要语言的使用率比 2017 年的 79%高出 5 个百分点。

Python 与其他语言的使用



Python 用户中有一半还使用 JavaScript。 2018 年的统计数据与 2017 年的结果非常相似,唯一显著的区别是 Bash / Shell 从 2017 年的 36%增长到 2018 年的 45%。Go 和 SQL 都增长了 2 个百分点,而 C / C ++、Java 和 C#等许多其他语言的占比降低。


与 2017 年一样,使用 Python 作为辅助语言的用户语言细分略有不同,使用 JavaScript 的开发人员略少(47%),但也有不少人使用 C / C ++(39%)、Java(35%)和 C#(19%)。

Python 开发类型

人们使用 Python 进行什么类型的开发,以及如何进行结合?

使用 Python 的目的是什么?


60% 的用户在家和工作中都会使用 Python,21%的人将之用于个人、教育或辅助项目,19%用于工作。

用 Python 干什么?


2018 年,使用 Python 做数据分析的用户最多,其次是 web 开发,再次为 DevOps/系统管理/编写自动化代码、机器学习等。


值得注意的是,用 Python 来做数据分析的人比 Web 开发更多,从 2017 年的 50%增长到 2018 年的 58%。机器学习也增长了 7%。 这些类型的开发比 Web 开发增长更快,Web 开发与前一年相比仅增加了 2 个 %。


2018 年,将 Python 用于教育和多媒体应用开发的占比和去年持平,而网络编程、桌面开发、计算机图形、游戏开发、移动开发的占比同比有所下降。


与 2017 年一样,Web 开发是唯一一个与使用 Python 作为主要语言和辅助语言的人之间存在较大差距(56%对 36%)的类别,而其他类型的开发差异要小得多。


有趣的事实:


2018 年,有更多的受访者表示他们使用 Python 的用途涉及 DevOps(与 2017 年相比增长了 8%)。对于使用 Python 作为辅助语言的 Python 用户而言,DevOps 已经取代了 Web 开发。

对以下活动的参与度


通过这个问题,我们试图更深入地了解受访者在之前的多项选择题中选择的各种开发类型。可以清楚地看到,Python 用于游戏开发主要是业余爱好,而 Web 开发、机器学习、数据分析和软件测试主要是工作所需。


其中,93% 的用户使用 Python 进行软件测试,90% 用户进行 DevOps,87% 用户进行 Web 开发都是出于工作需要。

最常使用 Python 干什么?(单选)


在这个问题中,受访者只能选择一个选项。结果表明,Web 开发遥遥领先(27%),把数据分析(17%)远远甩在后面。但如果我们仔细观察一下就会发现,机器学习的占比有所增长(11%)。如果我们将数据分析和机器学习整合到“数据科学”这一类中,这个数字将达到惊人的 28%。也就是说,用户最常使用 Python 做数据科学相关的任务。


紧跟着是机器学习和 DevOps,2017 年和 2018 年的占比未发生变化,均为 9% vs 11%。


比较使用 Python 作为主要语言与次要语言的趋势,Web 开发两者之间的差距最大(29% vs 17%)。数据分析和机器学习之间没有显著差异。


有趣的事实:


DevOps /系统管理/编写自动化脚本’已经位列 Python 用户使用其作为辅助语言的首位。这一发现与前一节中强调的 Bash / Shell 使用量增加有关。



与 2017 年一样,Web 开发和数据科学仍然是 2018 年 Python 开发的主要类型。不过,我们注意到 Python 中的数据科学作为该语言的其他用途,其受欢迎程度的增长速度要快得多,这可以从多选题“你使用 Python 做什么?”中看出来。

Python 3 采用率

Python VS Python 3


我们的问题是:”你最常用的是哪个版本的 Python?”。结果显示,84%的用户表示最常用版本为 Python,远超 Python 2 的 16%。从 2017 年的 75%到 2018 年的 84%,Python 3 的受欢迎程度得到大幅提升。


其中,最受欢迎的 Python 3 版本是 Python 3.6,最受欢迎的 Python 2 版本是 Python 2.7。


有趣的事实:


Python 3 的使用率继续快速增长。根据 2017 年的最新研究,75%的人使用 Python 3,使用 Python 2 的用户比例是 25%。Python 2 的采用率正在下降,因为其不再进行积极开发,没有新功能,并且将会在 2020 年停止维护。



Python 3 的采用率从过年 2013 年的 22%,到 2018 年 10 月已攀升至 84%。



另一个有趣的发现是,只有 82% 主要用于 Web 开发的用户使用 Python 3,而涉及数据科学的 Python 3 采用率上升至 90%。


可能原因:


可能导致这种情况的原因之一是有些开发人员在转换到 Python 3 时仍然需要维护大量遗留代码。另一方面,许多数据分析师和机器学习专家最近加入了 Python 生态系统并开始使用最新的 Python 3。

Python 安装和升级


71%的受访者从 python.org 或 OS 提供的包管理器(如 APT 和 Homebrew)安装 Python。这与 2017 年的结果非常相似。有趣的是,与 2017 年相比,Anaconda 的占比增长了 7 个百分点。这更加明确了数据科学比其他类型的开发类型受欢迎程度增长更快。

是否使用以下工具隔离 Python 开发环境?(多选)


在开发或部署阶段隔离 Python 环境很久以来是一个最佳实践。毫无疑问,pipenv 和较低级别的 virtualenv 是创建和管理新的 Python 环境的两个最常用的工具,64% 的受访者表示会使用这两个工具进行 Python 环境隔离,31% 的用户会使用 Docker,其次是 Conda、Vagrant/虚拟机和其他。令让人惊讶的是,21%的 Python 用户根本不使用以上工具。

Python 框架、库和技术

这一部分强调了开发者使用的各种 Python 框架、库和技术的流行度。

网页框架(多选)


受访者中 Flask 的使用量同比增长了 15 个百分点,因此,今年 Flask 意外地成为最受欢迎的 Web 框架。 而 45%的受访者(2017 年为 41%)选择了 Django,Flask 和 Django 加起来就已经占据了 92% 的份额。

数据科学框架和库(多选)


不出所料,最流行的数据科学框架和库是:NumPy,Pandas,Matplotlib 和 SciPy。机器学习专用库,如 SciKit-Learn,TensorFlow,Keras 等,也非常受欢迎,这与作为 Python 开发主要类型的机器学习快速发展密切相关。

普通框架和库


在普通框架和库中,不出所料,超过一半的 Python 用户使用了 Requests。Pillow 也非常受欢迎,1/5 用户使用 asyncio。

最受欢迎云平台(多选)


55%使用云平台的 Python 用户更喜欢 AWS。Google Cloud Platform 排在第二位,其次是 Heroku,DigitalOcean 和 Microsoft Azure。大约三分之一的受访者不使用任何云解决方案。


除了上面列出的流行的云平台,我们发现 OpenStack 和 Linode 各占 6%,OpenShift 占 3%,Rackspace 占 2%。


除了有关云平台选择的问题之外,我们还提出了一些其他问题,以了解 Python 开发人员如何使用云:

如何在云中(在生产环境中)运行代码? (多选)


在虚拟机上占比 47%,在容器中占比 40%,在 PaaS 上占比 28%,在 Severless 中占比 21%。

开发环境中使用云


56%-本地虚拟环境


35%-Docker 容器


24%-虚拟机


17%-本地系统注释器


17%-远程开发环境


9%-直接在生产环境中

开发工具

操作系统


令人惊讶的是,近三分之二的受访者选择 Linux 作为他们的开发环境操作系统。请注意,这是个多选题,在这里没有得出主要 OS 流行度的结论。

测试框架


pytest 在测试框架排名中领先,其次是 unittest。其他测试框架远没那么受欢迎。出乎意料的是,35%的 Python 用户不使用任何测试框架,并且可能没有测试他们的代码。在“创建隔离的 Python 环境的工具”部分中,我们发现大约五分之一的 Python 用户不使用 Python 隔离这一最佳实践。

数据库


大多数人使用免费或开源数据库,如 PostgreSQL,MySQL 或 SQLite MongoDB 和 Redis 等非关系型数据库也非常受欢迎,因为大量的 Python 用户正在进行某种形式的机器学习或数据工程。

ORMs


两个最流行的 ORM 是 SQLAlchemy 和 Django ORM,它们与两个领先的 Web 开发框架:Flask 和 Django 的流行度相匹配。

使用以下哪种大数据工具?


机器学习工程师更有可能使用大型数据工具,这就是为什么 76%的受访者表示没有使用大数据工具。Spark 是大数据工具中的首选,其次是 Hadoop 和 Kafka。

经常使用哪种持续集成(CI)系统? (多选)


将近一半 Python 用户不使用任何 CI 方案。Python 世界中最受欢迎的三个 CI 解决方案是 Jenkins,Gitlab CI 和 Travis。

配置管理


大多数 Python 用户不使用配置管理工具。在使用配置管理中,最受欢迎的无疑是 Ansible。

编辑和 IDE

为了找到最流行的编辑器和 IDE,我们提出了单选题:“你当前 Python 开发使用的主编辑器是什么?”不到 1%的选项一并归在 Other 下。



PyCharm 是最受欢迎的 Python 开发工具,PyCharm Professional 和 Community 版本的合计份额为 35%。有趣的是,VS Code 的占比从 2017 年的 7%上升到 2018 年的 16%,成为第二大受欢迎的 Python 开发编辑器。很可能由于 VS Code 的快速增长,许多其他编辑的用户份额减少了。


Web 开发人员与数据科学家的编辑偏好略有不同。他们比数据科学家更喜欢 PyCharm,VS Code,Vim 和 Sublime 文本,而许多数据科学家更喜欢 Jupyter Notebook 作为他们的主要工具。

Python 开发工具和功能


我们找到了在 Python 中相对受欢迎的开发工具和功能:版本控制,代码自动完成,代码重构,编写单元测试以及使用 Python 项目的虚拟环境都位列 Top10。


其他流行的工具和功能还包括 SQL 数据库,调试和代码 linting。NoSQL 数据库,Python 分析器和代码覆盖工具是最少使用的功能。


有趣的事实:


类型提示作为一种可选技术似乎越来越受欢迎。59%的受访者表示,他们经常或偶尔在 Python 开发时使用类型提示。类型提示的使用排名高于代码覆盖和分析器工具,与 CI 解决方案采用率进行 Python 开发旗鼓相当。


鉴于在 2018 年调查中,受访者中学生较少,而经验丰富的开发人员较多,我们可以得出结论,在专业团队中工作时间越长,经验越丰富,他们使用的工具和专业技术就越多。

就业和工作

就业现状


超过一半(62%)的 Python 用户全职工作,19%为学生,而只有 13%为自雇人士或自由职业者。与 2017 年相比,2018 年,学生人数明显减少,就业人数更多。

工作岗位


这是个多选题,因此总百分比大于 100%。将近 3/4 受访者为开发者,1/5 为数据分析家、架构师或团队领导。在占比为 12%的“其他”部分,最多的职位头衔为数据科学家、DevOps、研究员和教师。

从事项目开发


只有五分之一的 Python 用户只从事一个项目; 其余人的工作涉及许多不同的项目,或负责一个主要项目和若干次要项目。

团队合作 VS 独立工作


有趣的是,将近一半的 Python 用户独立进行项目开发,4% 的用户作为外部咨询或训练师。

团队规模


约三分之一的开发者在规模很小的团队中工作,其中 74%的团队规模为 2-7 人。团队规模的数据与去年相比没有变化。

企业规模


25%的受访者在 51-500 人的企业中工作,这一部分占比最大,其次为 11-50 人和 5000 人以上企业,占比均为 19%。

企业行业和业务分布


信息技术/软件开发占比最大,为 44%;“其他”一列中包括零售、能源和媒体。

目标企业/行业


Python 开发者的主要目标企业/行业同样为信息技术/软件开发,还包括财务、银行、销售、商务等,“其他”部分占比 12%。大部分自填的行业包括电信或能源,并提到了其他行业。

IT 行业经验


与 2017 年相比,Python 用户在 IT 行业的经验更加多样化,没有特别占优势的群体,其中拥有 11 年以上经验的用户占比最大(25%),其次为 3-5 年经验(22%),小于一年(19%)。

平均年龄


受访者普遍年龄在 20 岁左右(39%),近三分之一是 30 多岁(31%),许多年轻人似乎也融入了 Python 社区(5%)。

全球社区


以下为全球 150 多个国家的 Python 开发者社区分布:


21% 美国


12% 印度


6% 英国


5% 德国


4% 中国


4% 法国


3% 俄罗斯


3% 加拿大


3% 巴西


2% 西班牙


2% 波兰


2% 澳大利亚


2% 意大利


2% 荷兰


1% 乌克兰


1% 捷克共和国


1% 瑞典


1% 以色列


25% 其他

要点总结

  1. Python 3 的采用率正在快速增长,并且已经达到 84%,而 Python 2 仅被 16%的 Python 用户用作主要的注释器。从 2017 年的 75%到 2018 年的 84%,这对于 Python 3 来说是一个巨大的飞跃。

  2. 数据分析在 Python 用户中比 Web 开发更受欢迎,从 2017 年的 50%增长到 2018 年的 58%

  3. 使用 Python 作为主要语言的所有开发人员中有一半也使用 JavaScript。Python 也经常与 HTML / CSS,Bash / Shell,SQL,C / C ++和 Java 一起使用。

  4. Flask 和 Django 是 Web 开发人员中最受欢迎的框架,占比相同(约 45%),把其他 Python Web 框架远远甩在后面。

  5. NumPy,Pandas,Matplotlib 和 SciPy 是最受欢迎的数据科学框架和库。机器学习专用库,如 SciKit-Learn,TensorFlow,Keras 等,也很受欢迎。

  6. AWS 是 Python 开发人员最受欢迎的云平台,其次是 Google Cloud Platform,Heroku,DigitalOcean 和 Microsoft Azure。

  7. 2018 年,使用 DevOps 的受访者数量明显增加(与 2017 年相比增加了 8 个百分点)。对于使用 Python 作为辅助语言的 Python 用户而言,DevOps 已经取代了 Web 开发。

  8. PyCharm 及其两个版本是最受欢迎的 Python 开发工具。有趣的是,VS Code 已从 2017 年的 7%扩展到 2018 年的 16%,使其成为 Python 开发的第二大受欢迎的编辑器。其他流行的 Python 编辑器包括 Vim,Sublime 和 Jupyter Notebook。

  9. 令人惊讶的是,几乎三分之二的 Python 开发人员选择 Linux 作为他们的开发环境操作系统。


原文链接:


https://www.jetbrains.com/research/python-developers-survey-2018/



2019-02-27 08:007953
用户头像

发布了 98 篇内容, 共 62.5 次阅读, 收获喜欢 285 次。

关注

评论 1 条评论

发布
用户头像
想学python
2020-08-15 13:06
回复
没有更多了
发现更多内容

SpringBoot3正式版将于11月24日发布:都有哪些新特性?

艾小仙

Java spring-boot spring、

mysql的高可用方案以及优缺点

想要飞的猪

【Dubbo源码】SPI机制源码解析

石臻臻的杂货铺

dubbo 11月月更

算法题学习---删除链表的倒数第n个节点

桑榆

算法题 11月月更

透视用户需求深挖服务潜力:2022中国商业查询行业洞察

易观分析

商业 查询

Linux中传输文件如何做到又快又安全?同学,scp命令了解一下!

wljslmz

Linux 运维 scp 11月月更

倒计时3天!银行APP用户体验外滩峰会嘉宾阵容抢先看!

易观分析

App 银行

一年前端面试打怪升级之路

loveX001

JavaScript

构建高质量的持续交付体系

老张

软件工程 持续交付

2022-11-14:rust语言,请使用过程宏给结构体AAA生成结构体AAABuilder和创建AAABuilder实例的方法。 宏使用如下: #[derive(Builder)] pub stru

福大大架构师每日一题

rust 福大大 过程宏

湖仓一体电商项目(十):业务实现之编写写入DWD层业务代码

Lansonli

湖仓一体 11月月更

IO原理(一):从BIO到NIO

苏格拉格拉

Linux io nio 多路复用

浅谈MVC、MVP、MVVM框架模式

海风极客

mvc MVP MVVM 11月月更 框架模式

OWASP API安全漏洞类型

阿泽🧸

11月月更 OWASP API

前端面试如何回答,这些题目或许可以给你一些提示

loveX001

JavaScript

这些js原型及原型链面试题你能做对几道

loveX001

JavaScript

精益创业者的用户体验设计

产品海豚湾

产品经理 产品设计 精益思想 用户体验 11月月更

基础逻辑门

二哈侠

Verilog 11月月更 Xilinx

湖仓一体电商项目(九):业务实现之编写写入DIM层业务代码

Lansonli

湖仓一体电商项目 11月月更

面试官:说说Event Loop事件循环、微任务、宏任务

loveX001

JavaScript

自制操作系统日记(5):跳转到C语言执行

操作系统

深入浅出学习透析Nginx服务器的基本原理和配置指南「初级实践篇 」

洛神灬殇

nginx 正向代理与反向代理 11月日更 nginx 开源版 开发指南

指标体系搭建中需要规避的问题

穿过生命散发芬芳

指标体系 11月月更

python小知识-单元测试

AIWeker

Python python小知识 11月月更

ISO 8601持续时间格式

HoneyMoose

Thymeleaf入门教程

Studying_swz

前端 thymeleaf 11月月更

初始Java诊断工具-Arthas

石臻臻的杂货铺

Java Arthas 11月月更

湖仓一体电商项目(十一):编写写入DWS层业务代码

Lansonli

湖仓一体电商项目 11月月更

JVM Sandbox入门教程与原理浅谈

Zhendong

Java JVM

从0开始,让你的Spring Boot项目跑在Linux服务器

海风极客

spring Linux 服务器 11月月更

MySQL事务的隔离级别以及脏读、幻读和不可重复读

海风极客

MySQL 事务 11月月更

Python开发者年度调查报告出炉!Python3采用率超84%_大数据_Python软件基金会_InfoQ精选文章