本文共 6604 字,大约阅读时间需要 22 分钟。
2018 年秋,Python软件基金会和著名IDE开发商JetBrains联合进行了第二届Python开发人员调查。和第一次调查一样,本次调查旨在关注Python 的最新趋势并总结 2018 年Python 开发的发展情况。来自 150 多个不同国家的 20000 多名开发人员参与了此次调查,帮我们勾勒出一个更精准、与时俱进的Python 社区全景图,包括 Python 在全球各地的使用、开发类型、Python 3的使用、Python框架、库和技术,开发工具,就业和工作等方面。
在我们的调查中,84%的Python用户使用Python作为他们的主要语言,而16%的用户把Python 作为第二语言。 在2017年,这个分布略有不同:79% 受访者指出他们使用Python作为主要语言,21%作为次要语言。
有趣的事实:
Python作为主要语言的使用率比2017年的79%高出5个百分点。
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进行什么类型的开发,以及如何进行结合?
60% 的用户在家和工作中都会使用Python,21%的人将之用于个人、教育或辅助项目,19%用于工作。
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 开发都是出于工作需要。
在这个问题中,受访者只能选择一个选项。结果表明,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?”。结果显示,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。
71%的受访者从python.org或OS提供的包管理器(如APT和Homebrew)安装Python。这与2017年的结果非常相似。有趣的是,与2017年相比,Anaconda 的占比增长了7个百分点。这更加明确了数据科学比其他类型的开发类型受欢迎程度增长更快。
在开发或部署阶段隔离Python环境很久以来是一个最佳实践。毫无疑问,pipenv和较低级别的virtualenv是创建和管理新的Python环境的两个最常用的工具,64% 的受访者表示会使用这两个工具进行 Python 环境隔离,31% 的用户会使用Docker,其次是 Conda、Vagrant/虚拟机和其他。令让人惊讶的是,21%的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用户正在进行某种形式的机器学习或数据工程。
两个最流行的ORM是SQLAlchemy和Django ORM,它们与两个领先的Web开发框架:Flask和Django的流行度相匹配。
机器学习工程师更有可能使用大型数据工具,这就是为什么76%的受访者表示没有使用大数据工具。Spark是大数据工具中的首选,其次是Hadoop和Kafka。
将近一半Python用户不使用任何CI方案。Python世界中最受欢迎的三个CI解决方案是Jenkins,Gitlab CI和Travis。
大多数Python用户不使用配置管理工具。在使用配置管理中,最受欢迎的无疑是Ansible。
为了找到最流行的编辑器和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项目的虚拟环境都位列Top10。
其他流行的工具和功能还包括SQL数据库,调试和代码linting。NoSQL数据库,Python分析器和代码覆盖工具是最少使用的功能。
有趣的事实:
类型提示作为一种可选技术似乎越来越受欢迎。59%的受访者表示,他们经常或偶尔在Python 开发时使用类型提示。类型提示的使用排名高于代码覆盖和分析器工具,与CI解决方案采用率进行Python开发旗鼓相当。
鉴于在2018年调查中,受访者中学生较少,而经验丰富的开发人员较多,我们可以得出结论,在专业团队中工作时间越长,经验越丰富,他们使用的工具和专业技术就越多。
超过一半(62%)的Python用户全职工作,19%为学生,而只有13%为自雇人士或自由职业者。与2017年相比,2018年,学生人数明显减少,就业人数更多。
这是个多选题,因此总百分比大于100%。将近3/4受访者为开发者,1/5为数据分析家、架构师或团队领导。在占比为12%的“其他”部分,最多的职位头衔为数据科学家、DevOps、研究员和教师。
只有五分之一的Python用户只从事一个项目; 其余人的工作涉及许多不同的项目,或负责一个主要项目和若干次要项目。
有趣的是,将近一半的Python用户独立进行项目开发,4% 的用户作为外部咨询或训练师。
约三分之一的开发者在规模很小的团队中工作,其中74%的团队规模为2-7人。团队规模的数据与去年相比没有变化。
25%的受访者在51-500人的企业中工作,这一部分占比最大,其次为11-50人和5000人以上企业,占比均为19%。
信息技术/软件开发占比最大,为44%;“其他”一列中包括零售、能源和媒体。
Python开发者的主要目标企业/行业同样为信息技术/软件开发,还包括财务、银行、销售、商务等,“其他”部分占比12%。大部分自填的行业包括电信或能源,并提到了其他行业。
与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% 其他
Python 3的采用率正在快速增长,并且已经达到84%,而Python 2仅被16%的Python用户用作主要的注释器。从2017年的75%到2018年的84%,这对于Python 3来说是一个巨大的飞跃。
数据分析在Python用户中比Web开发更受欢迎,从2017年的50%增长到2018年的58%
使用Python作为主要语言的所有开发人员中有一半也使用JavaScript。Python也经常与HTML / CSS,Bash / Shell,SQL,C / C ++和Java一起使用。
Flask和Django是Web开发人员中最受欢迎的框架,占比相同(约45%),把其他Python Web框架远远甩在后面。
NumPy,Pandas,Matplotlib和SciPy是最受欢迎的数据科学框架和库。机器学习专用库,如SciKit-Learn,TensorFlow,Keras等,也很受欢迎。
AWS是Python开发人员最受欢迎的云平台,其次是Google Cloud Platform,Heroku,DigitalOcean和Microsoft Azure。
2018年,使用DevOps的受访者数量明显增加(与2017年相比增加了8个百分点)。对于使用Python作为辅助语言的Python用户而言,DevOps已经取代了Web开发。
PyCharm及其两个版本是最受欢迎的Python开发工具。有趣的是,VS Code已从2017年的7%扩展到2018年的16%,使其成为Python开发的第二大受欢迎的编辑器。其他流行的Python编辑器包括Vim,Sublime和Jupyter Notebook。
令人惊讶的是,几乎三分之二的Python开发人员选择Linux作为他们的开发环境操作系统。
原文链接:
转载地址:http://akoux.baihongyu.com/