当前位置: 首页 > 编程日记 > 正文

全球超2万名开发者调研:Python 3渗透率至84%

640?wx_fmt=jpeg

编辑 | suiling

出品 | Python大本营(ID:pythonnews)

60s测试:你是否适合转型人工智能?

https://edu.csdn.net/topic/ai30?utm_source=cxrs_bw

在2018年秋季,Python软件基金会与JetBrains发起了年度Python开发者调查。 报告的目的是寻找Python领域的新趋势,帮助开发者深入了解2018年Python开发者的现状。

该报告共统计了来自150多个不同国家和地区的超过两万名开发人员的Python使用情况。Python大本营对该报告进行了翻译。

本报告要点如下:

  • Python 3的渗透率快速增长至84%(2017年为75%),仅有16%的用户使用Python 2作为主要解释器。

  • 越来越多开发者使用Python进行数据分析,该比例从2017年的50%上升至2018年的58%,比使用Python进行Web开发更受欢迎。

  • 将Python作为第一开发语言的开发者中,有半数也使用JavaScript进行开发。Python也经常和HTML/CSS, Bash/Shell, SQL, C/C++,以及Java一起使用。

  • Web开发者最喜欢的框架是Flask和Django,两者占比均为45%,远远超过了其他Python Web开发框架。

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

  • AWS是Python开发者最喜欢的云平台,然后是Google Cloud Platform, Heroku, DigitalOcean和Microsoft Azure平台。

  • 2018年受访的开发者中,运维人员的数量明显增加(与2017年相比增加了8个百分点)。在使用Python作为次要语言的开发者中,运维开发已经超过了Web开发。

  • PyCharm的两个版本是最受欢迎Python开发工具。有趣的是,VS Code的使用率从2017年的7%上升至2018年的16%,成为Python开发第二最受欢迎的编辑器。其他受欢迎的编辑器还有Vim, Sublime以及Jupyter Notebook。

  • 2/3的Python开发者使用Linux作为开发操作系统。

具体报告内容如下:

Python使用概况

主要开发语言or辅助开发语言

640?wx_fmt=png

调查中,84%的Python用户使用Python作为他们的第一开发语言,16%的用户将其作为辅助开发语言。 在2017年,79%用户使用Python作为第一语言,21%用户将其作为辅助开发语言。

除了Python,其他语言使用情况。

根据调查显示:参与调研的Python用户中有一半也使用JavaScript。 2018年的统计数据与2017年的结果非常相似。

640?wx_fmt=png

Python开发类型

用Python是工作需要还是个人需要?

640?wx_fmt=png

Python使用目的

从数据中看到,2018年的报告中58%的用户用Python进行数据分析,2017年这个数据是50%。机器学习也增长了7个百分点,Web开发与前一年相比仅增加了2个百分点。

640?wx_fmt=png

你参与过以下哪些领域的开发?

我们可以清楚地看到,Python游戏开发最主要是作为业余爱好,而Web开发、机器学习、数据分析和软件测试主要用在职业开发方面。

640?wx_fmt=png

你使用Python最多的领域是什么(单选)

640?wx_fmt=png

该问题是单选,乍一看,Web开发大幅领先(27%),大幅超过数据分析(17%)。但仔细观察后发现,机器学习增长了两个百分点,如果将机器学习和数据分析整合为“数据科学”,这个占比将会达到28%。

对比将Python作为主要开发语言和辅助开发语言,web开发差距最大(29% vs 17%)。对于机器学习和数据分析来说,没有明显差别。

Python3渗透率

Python3还是Python2?

由于Python2将于2020年停止更新维护,所以越来越的使用者迁移到了Python3,从下图可以看出,有84%的用户使用了Python3.

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

Python3渗透率

在调查中发现,82%的Web开发人员使用Python 3,而在数据科学这一领域Python3的渗透率高达90%。

640?wx_fmt=png

640?wx_fmt=png

原因可能是Web开发人员仍有大量遗留代码需要维护,而借助于人工智能的热度,数据分析和机器学习人员不断加入了Python 3的阵营。

Python安装和更新

71%的受访者从python.org或OS提供的包管理器(如APT和Homebrew)安装Python。 这与2017年的结果非常相似。

640?wx_fmt=png

你使用以下工具隔离Python开发环境吗?

在开发或部署阶段隔离Python环境已经是很长一段时间以来的最佳实践。 毫无疑问,pipenv和较低级别的virtualenv是创建和管理新的Python环境的两个最常用工具。 令人惊讶的是,21%的Python用户仍未接受这种做法。

640?wx_fmt=png

Python框架、库和技术

与前一年相比,受访者中Flask的使用量增长了15个百分点,今年Flask已成为最受欢迎的Web框架。 45%的受访者(2017年为41%)选择了Django。

Web框架

640?wx_fmt=png

数据科学框架和库

最流行的数据科学框架和库是:NumPy,Pandas,Matplotlib和SciPy。 特定于机器学习的库,如SciKit-Learn,TensorFlow,Keras等也非常受欢迎,这与机器学习领域的快速发展密切相关。

640?wx_fmt=png

通用框架和库

超过一半的Python用户使用了Requests。 Pillow也很受欢迎。

640?wx_fmt=png

云平台

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

如何在云平台运行代码? (多选)

640?wx_fmt=png

如何在云平台上进行开发?

640?wx_fmt=jpeg

开发工具

操作系统

近三分之二的受访者选择Linux作为他们的开发环境操作系统。

640?wx_fmt=png

测试框架

640?wx_fmt=png

最受欢迎的单元测试框架是pytest,然后是unittest。 其他单元测试框架受欢迎程度一般。 不过35%的Python用户不使用任何测试框架,并且可能没有测试他们的代码。 在上边“隔离Python开发环境”部分中,我们发现大约五分之一的Python用户不使用Python隔离。

数据库

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

640?wx_fmt=png

ORM

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

640?wx_fmt=png

大型数据工具更有可能被机器学习工程师使用,这就是为什么76%的受访者没有选择任何工具。

640?wx_fmt=png

半数受访的Python用户不使用任何CI(持续集成系统)解决方案。最受欢迎的三个CI解决方案是:Jenkins, Gitlab CI和Travis。

640?wx_fmt=png

配置管理方面,大部分Python用户不使用配置管理工具。

640?wx_fmt=png

编辑器和IDE

为了找到开发者们最喜欢的编辑器和IDE,我们将该问题设置成了单选。通过数据了解到,

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

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

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

Python开发中,相对流行的工具和特性包括版本控制,代码自动完成,代码重构,编写单元测试以及使用Python项目的虚拟环境都占据了最高点。

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

640?wx_fmt=png

开发者职业相关和使用情况

超过一半的Python用户是全职工作,19%是学生,13%是半自由或自由职业者。 与2017年相比,2018年受访用户中学生人数明显减少,就业人数更多。

640?wx_fmt=png

工作角色

73%的受访用户是开发者或者程序员。12%的其他选项中,填写最多的是数据科学家、运维、研究者和教师。

640?wx_fmt=png

涉及项目数量

17%的Python用户只做一个项目,42%的用户同时做多个项目。

640?wx_fmt=png

团队开发还是独立开发?

640?wx_fmt=png

团队规模

640?wx_fmt=png

公司规模

640?wx_fmt=png

受访Python用户公司的所属行业

640?wx_fmt=png

IT经验

640?wx_fmt=png

年龄分布

640?wx_fmt=png

更多报告内容,请见报告原文

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

(本文为Python大本营翻译文章,转载请联系微信1092722531)

如何挑战百万年薪的人工智能!

https://edu.csdn.net/topic/ai30?utm_source=csdn_bw

群招募

扫码添加小助手微信,回复:公司+研究方向(学校+研究方向),邀你加入技术交流群。技术群审核较严,敬请谅解。

640?wx_fmt=jpeg

推荐阅读:

  • 指纹锁就安全了?防火防盗还得防AI

  • 优秀开发者必备技能包:Python调试器

  • 十大经典排序算法动画与解析,看我就够了

  • 一键免费自动AI抠图,效果连PS大哥也点赞!

  • 抠图新法:试试Python+scikit-image

  • 数据分析:《流浪地球》逆袭《新喜剧之王》

  • 最全Python算法集

  • 用Python抓取某东购买记录并统计MM的bra大小

  • 只需45秒,Python 给故宫画一组手绘图!

640?wx_fmt=png

相关文章:

【Qt】QWidget对样式表设置边框无效的解决方法

1、现象 在对QWidget使用样式表时无效 QWidget#MyWgt{border:1px solid gray; }2、原因 原因是QWidget只支持background、background-clip和background-origin属性。 3、解决方法 3.1 使用QFrame代替QWidget,QFrame继承自QWidget,并且带有框架属性 …

break continue

break 终止整个循环体,执行循环后的代码; continue 终止单次的循环,整个循环体还是会继续执行转载于:https://www.cnblogs.com/RonnieQin/p/8430783.html

CSSA email list

UCSD: cssamailman.ucsd.eduUChicago: cssalists.uchicago.edu 转载于:https://www.cnblogs.com/stoneresearch/archive/2010/11/30/4336484.html

LVS原理详解(3种工作方式8种调度算法)--老男孩

一、LVS原理详解(4种工作方式8种调度算法)集群简介集群就是一组独立的计算机,协同工作,对外提供服务。对客户端来说像是一台服务器提供服务。LVS在企业架构中的位置:以上的架构只是众多企业里面的一种而已。绿色的线就…

【Qt】QMainWindow最大化按钮是灰色(不能最大化)的解决方法

解决方法 设置最大尺寸为16777215,并且使能Qt::WindowMaximizeButtonHint(默认就是使能的,不执行也可以) const QSize MAIN_SIZE_MAX QSize(16777215, 16777215); this->setMaximumSize(MAIN_SIZE_MAX); this->setWindow…

“AI明星”地平线B轮融资6亿美元!

整理 | 一一 出品 | AI科技大本营(ID:rgznai100) 60s测试:你是否适合转型人工智能? https://edu.csdn.net/topic/ai30?utm_sourcecxrs_bw 2 月 27 日,人工智能芯片技术的 AI 创业企业地平线(Horizon Robotics)宣布&a…

C++深拷贝与浅拷贝

浅拷贝就是成员数据之间的一一赋值:把值赋给一一赋给要拷贝的值。但是可能会有这样的情况:对象还包含资源,这里的资源可以值堆资源,或者一个文件。。当 值拷贝的时候,两个对象就有用共同的资源,同时对资源可…

【OpenCV】使用过的函数汇总

1、类 Mat:矩阵matrix,opencv2中主要用来封装图片数据 InputArray:输入参数 ,约等于Mat OutputArray:输出参数,约等于Mat Rect:表示矩形 2、函数 imread();//从文件中读取图片到Mat中 imwrit…

春招来袭!程序员如何拿下硅谷顶级公司200万年薪?

还记得那个在去年,用 6 天时间参加了 LinkedIn、Yelp、Apple、亚马逊、Facebook 和 Google 的面试,并拿下了 6 份 Offer 的“别人家的程序员”吗?之后,他又在这几份工作中进行了选择,一步步谈下了 30 万美元&#xff0…

wake_lock_timeout的使用方法【转】

本文转载自:http://blog.csdn.net/liuxd3000/article/details/44224849 今天有用到用ec43_GPIO的中断来唤醒系统,将系统从深度休眠中唤醒并保证系统wakup 一段时间用过了,方法如下,有同样使用的童鞋可以参考一下!1. …

函数05 - 零基础入门学习C语言36

第七章:函数05 让编程改变世界 Change the world by program 函数的嵌套调用 嵌套定义就是在定义一个函数时,其函数体内又包含另一个函数的完整定义。 然而,C语言不能嵌套定义函数,但可以嵌套调用函数,…

【linux】可执行程序执行时报错-sh: ./mxc_v4l2_tvin.out: No such file or directory的解决方法

问题 在imx6开发板上执行 ./mxc_v4l2_tvin.out时报错: -sh: ./mxc_v4l2_tvin.out: No such file or directory 原因查找 1、路径问题:确定在当前目录下有该程序,没问题; 2、使用ls -l查看可以执行权限,没问题&…

展望2018:WebRTC大规模商用元年

历经6年长跑,WebRTC终于在去年迎来了1.0标准(candidate recommendation)的发布,而它也将成为2018年视频通信商业应用场景爆发的主要技术推动力。一站式WebRTC通信技术提供商Zealcomm公司创始人、CEO冯昶对WebRTC在国内外发展历程、…

暴雪游戏遭遇AI“实力”坑队友:四处游走,还不参与战斗

作者 | 琥珀 出品 | AI科技大本营(ID: rgznai100) 60s测试:你是否适合转型人工智能? https://edu.csdn.net/topic/ai30?utm_sourcecxrs_bw “打游戏 AI 将完胜人类!?” 抱歉,这个 Flag 还是不…

linux/nginx 安全增强

这有一篇很好的文章. 评论中有好的补充 http://www.cyberciti.biz/tips/linux-unix-bsd-nginx-webserver-security.html转载于:https://www.cnblogs.com/pengxl/archive/2010/12/08/1900175.html

十年程序员的告诫:千万不要重写代码!

对重写代码说不。 作者 | Roman Luzgin 译者 | 苏本如 责编 | 屠敏 出品 | CSDN(ID:CSDNNews) 以下为译文: 重写代码消耗了12个月! 我们从头开始重写代码浪费的时间。 你能想象在软件行业,12个月的时…

RabbitMQ 实战(四)消费者 ack 以及 生产者 confirms

2019独角兽企业重金招聘Python工程师标准>>> 这篇文章主要讲 RabbitMQ 中 消费者 ack 以及 生产者 confirms。 如上图,生产者把消息发送到 RabbitMQ,然后 RabbitMQ 再把消息投递到消费者。 生产者和 RabbitMQ,以及 RabbitMQ 和消费…

【imx6】/dev中fb和video的对应关系

imx6q关于fb和video的设备信息 设备节点 rootmyzr:/unit_tests# ls /dev/fb* -l lrwxrwxrwx 1 root root 3 Jan 1 1970 /dev/fb -> fb0 crw-rw---- 1 root video 29, 0 Jan 1 1970 /dev/fb0 crw-rw---- 1 root video 29, 1 Jan 1 1970 /dev/fb1 crw-rw---- 1 r…

flash绘图API:恋上你的CD

早上,我无意间碰撞到一个女孩,那时候,她匆匆忙地走了。从她的口袋里面掉下了一本陈旧的书,在哪里我看到她藏在书中的那封陈旧的信和cd。我好奇打开它,一边听着她那张cd,一边看她的写的信,忽然间…

【Ubuntu】ubuntu工具 记录shell终端的内容到文件中:script

###用法 $ script -h Usage: script [options] [file] Options: -a, --append append the output -c, --command run command rather than interactive shell -r, --return return exit code of the child process -f, --flush run flush after each write –force use outpu…

弃Java、Swift于不顾,为何选Python?

作者 | JACE HARR译者 | 姜松浩转载自 CSDN(ID:CSDNNews)以下为译文:刚入行的程序员总是询问他们应该从哪种语言开始,我告诉他们,他们应该首先学习 Python。以下是使用 Python 开始自学编程去探险的一些原因…

iOS事件处理,看我就够了~

该文章属于<简书 — 刘小壮>原创&#xff0c;转载请注明&#xff1a; <简书 — 刘小壮> https://www.jianshu.com/p/b0884faae603 好久没写博客了&#xff0c;前后算起来刚好有一年了。这期间博客也不是一直没变化&#xff0c;细心的同学应该能发现&#xff0c;我一…

ISO9000机房管理办法

1 总则<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />1.1制定目的(1) 规范公司机房管理以及网管相关工作。1.2适用范围公司网络机房以及资讯组人员。1.3权责单位(1) 资讯组负责本办法制定、修改、废止之起草工作。(2) 总…

1400小时开源语音数据集,你想要都在这儿

整理 | 一一出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09;3 月 1 日&#xff0c;由 Mozilla 基金会发起的 Common Voice 项目&#xff0c;发布新版语音识别数据集&#xff0c;包括来自 42000 名贡献者&#xff0c;超过 1400 小时的语音样本数据&#xff0c;涵盖包括…

【VirtualBox】VirtualBox使用现有的虚拟盘文件(如VHD)创建虚拟机时,报错:打开虚拟硬盘失败,“UUID already exist”的解决方法

###0、问题描述 使用现有的虚拟盘文件&#xff08;如VHD&#xff09;创建虚拟机时&#xff0c;报错&#xff1a;打开虚拟硬盘失败&#xff0c;“UUID already exists”的错误。 ###1、参考博客 https://www.cnblogs.com/xqzt/p/5053338.html https://jingyan.baidu.com/articl…

JDK10 EA版特性速览

今天收到一封邮件组的邮件&#xff0c;是关于JDK 10 First Release Candidate的&#xff0c; JDK10 b43版将作为第一个JDK10的RC版。 b43版特性包括&#xff1a; 286: Local-Variable Type Inference296: Consolidate the JDK Forest into a Single Repository304: Garbage-Col…

linux主机常用管理命令

1.杀掉MYSQL SHELL ps aux|grep mysql|grep -v grep|awk {print $2}|xargs kill -9 2.删除当前目录下0字节的文件 find -type f -size 0 -exec rm -rf {} \; 3.匹配当data里包含"donald"&#xff0c;输出第4列 awk /donald/ {print $4} data 扩展1&#xff1a; awk /…

【Qt】新安装的虚拟机,使用QtCreator第一次编译时报错:g++: Command not found

1、问题描述 新安装的虚拟机&#xff0c;使用QtCreator第一次编译时报错&#xff1a;g: Command not found &#xff08;或着报&#xff0c;make执行失败之类的错误&#xff09; 2、原因分析 新安装的虚拟机中&#xff0c;没有g。一般默认情况是&#xff0c;只安装了gcc 3…

爬一爬那些年你硬盘存过的“老师”

作者 | PayneLi 转载自Python全家桶&#xff08;ID: python-0321&#xff09; 人工智能的现状及今后发展趋势如何&#xff1f; https://edu.csdn.net/topic/ai30?utm_sourcecsdn_bw 最近在Github发现一个基于google浏览器的爬虫项目&#xff0c;此项目是由美国大神2018年开源…

python 打印调用栈

import tracebackdef BBQ():traceback.print_stack() 引入 traceback 包&#xff0c;在某个函数中执行 traceback.print_stack()。 转载于:https://www.cnblogs.com/yourstars/p/8448471.html