写点什么

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

2019 年 2 月 27 日

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 年 2 月 27 日 08:006761
用户头像

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

关注

评论 1 条评论

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

打造中国数字军人 数军科技携黑科技亮相军博会

科技热闻

华为云薛浩:媒体业务进入全面云化时代,云原生成为必然选择

华为云开发者社区

云原生 媒体 音视频 华为云

并发王者课-铂金9:互通有无-Exchanger如何完成线程间的数据交换

技术八点半

Java 多线程 并发

替换 Spring Cloud,使用基于 Cloud Native 的服务治理

火山引擎开发者社区

云原生 后端 Service Mesh 服务网格

在数据库中如何查询表的创建时间?

华为云开发者社区

数据库 日志 视图 GaussDB(DWS) 查找对象

Java高质量面试总结

攻城狮Chova

Java 面试 面试知识点总结 7 月日更

DolphinDB插件开发深度解析

DolphinDB

数据库 时序数据库 插件开发 DolphinDB 大数据分析

RTC为何这么火?

anyRTC开发者

音视频 WebRTC RTC 实时音视频 实时通讯

统一缓存帝国 - 实战 Spring Cache

悟空聊架构

缓存 passjava 悟空聊架构 7 月日更 Spring Cache

精品!阿里P7爆款《K8s+Jenkins》技术笔记,高质量干货必收藏!

不秃顶的Java程序员

Java 程序员 架构 k8s jenkins

第一章 智慧工地定义、背景、意义

再见孙悟空

智慧园区 智慧工地 智能建造 智慧建筑 智慧建造

FIL是精心策划的骗局吗?FIL会不会成为币圈第二个神话?

IPFS8822

区块链 IPFS Filecoin 虚拟货币

银行业智能运维的探索与实践

云智慧技术社区

银行数字化转型 智能运维

网安行业这几个熟悉又陌生的名词,啥帽子都清楚啦?

郑州埃文科技

百度交易中台之商品推广流程构建以及实现

百度Geek说

中台 软件架构 电商 交易

小马哥的Java项目训练营-毕业总结

姑射仙人

济南生鲜电商APP小程序多功能系统开发平台

风信子

认证笔记 神策数据 SA分析师认证

万里无云万里天

神策数据 SA分析师认证

新零售系统网上销售水果商城APP小程序开发

风信子

Python 绑定:从 Python 调用 C 或 C++

华为云开发者社区

c c++ Python 函数 Python 绑定

我还是没有忍住,于是乎我开通了lua语言学习专栏!

我是阿沐

lua 专栏

研发管理和项目管理有哪些痛点?

万事ONES

研发管理 ONES 项目管理工具

互联网公司的「敏捷开发」流程是怎么样的?每个职位的角色和分工是什么?

万事ONES

如何利用极狐GitLab CI提高生产力?

极狐GitLab

ci

拖延背后的故事

卢卡多多

拖延症 7 月日更

新一代智慧社区物业管理APP系统开发方案

风信子

我给我讲GIT,并成功把我得罪了

加百利

git 7 月日更

多媒体技术(一)之图形图像

轻口味

android 音视频 计算机图形学 音视频开发 图形图像处理

智慧公安大数据情报研判分析预警系统开发,重点人员管控平台建设

WX13823153201

union 分页/group/join 复杂查询(.net core/framework)

Spook

sql ORM

Go 学习笔记之 数组

架构精进之路

go 7 月日更

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

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