写点什么

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:009413
用户头像

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

关注

评论 1 条评论

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

win11基础 组件服务 启动分布式com

万里无云万里天

win11 dcom

AI 应用实战营 - 作业 八 - Coze 制作 Bot - 2

德拉古蒂洛维奇

PHP 与淘宝详情 API 的融合:构建智能电商应用

api开发

解读阿里云搜索开发工作台如何快速搭建AI语义搜索及RAG链路

阿里云大数据AI技术

人工智能 自然语言处理 大模型 rag

文献解读-临床试验-第二十二期|《新抗原负荷作为中国非小细胞肺癌II/III患者的预后和预测标志物》

INSVAST

基因测序 基因数据分析 临床试验

开发者必备:淘宝商品列表接口集成全攻略

tbapi

淘宝API接口 淘宝商品列表数据接口 淘宝商品列表数据采集

数字样机:飞行器状态控制系统仿真

DevOps和数字孪生

数字样机

获取闲鱼商品详情api

api开发

华为云Serverless可观测性解决方案打造高效、可靠的云原生应用

华为云开发者联盟

云原生 可观测 华为云开发者联盟 企业号2024年7月PK榜

崖山异构数据库迁移利器YMP初体验-Oracle迁移YashanDB

YashanDB

yashandb 崖山数据库 崖山DB

从0到1:理发店预约剪发小程序开发笔记(上)

CC同学

win11基础 开启telnet功能

万里无云万里天

win11 Telnet

报名SRE培训,选择哪家培训机构?

雅菲奥朗

SRE SRE培训 SRE认证

win11基础 telnet 检查rabbitmq server是否开启了1883端口

万里无云万里天

RabbitMQ win11 Telnet

参加可观测性Observability Foundation认证培训,您有哪些收益?

雅菲奥朗

可观测性 可观测性认证

极限科技闪耀 2024 可信数据库发展大会,多款自研产品引领搜索技术新纪元

极限实验室

信通院 极限科技 数据库发展大会

深度解读GaussDB(for MySQL)与MySQL的COUNT查询并行优化策略

华为云开发者联盟

MySQL 数据库 华为云开发者联盟 企业号2024年7月PK榜

即时战略游戏:帝国时代2 for Mac 3.3.1769 中文移植版

你的猪会飞吗

mac软件下载 mac单机游戏

ETL数据集成丨将PostgreSQL数据库数据实时同步至PostgreSQL

RestCloud

postgresql 数据同步 ETL 数据集成平台 数据库同步

LED租赁屏市场

Dylan

LED LED display LED显示屏 市场 舞台表演

技术路线速通!用飞桨让京剧人物照片动起来

百度Geek说

百度飞桨 企业号2024年7月PK榜

数据恢复easyrecovery是磁盘工具吗 easyrecovery数据恢复软件怎么用

阿拉灯神丁

磁盘 EasyRecovery 数据恢复软件 硬盘数据恢复 软件包

AI 应用实战营 - 作业 八 - Coze制作Bot

德拉古蒂洛维奇

得物App弱网诊断探索之路

得物技术

ios android 企业号2024年7月PK榜

极盾故事|某农商行数据安全制度和数据分类分级建设

极盾科技

数据安全 数据分类分级

最新资讯!2024可信云大会重磅发布《可观测性能力建设指南》!

乘云数字DataBuff

白皮书 可观测平台 可信云大会

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