本文与 Dmitry Filippov 共同撰写。
Python 的受欢迎程度正在迅速增长,并在科技新闻中受到更多关注,包括关于 Python 被用于 让更多高中女生参与 计算机工程的报道,以及 大学入门级计算机课程 应该教授这种编程语言的建议。此外,Stack Overflow 2018 年的开发者调查发现,Python 是 最受人们欢迎学习 的编程语言。从简单的个人网站到世界最大银行的数据挖掘和机器学习,Python 在网络上随处可见和使用。
是什么让 Python 如此特别?Python 开发者是谁?为什么它如此受欢迎?为了回答这些以及许多其他重要问题,JetBrains 和 Python 软件基金会 (PSF) 合作对以 Python 作为主要或辅助语言的人员进行了开发者调查。到目前为止,还没有针对 Python 的专门研究来了解不同开发者如何使用它,哪些组件补充了它的使用,以及是什么使其成为最受欢迎的语言之一。
该调查的目标是找出 Python 的最新趋势,并收集关于当今 Python 开发世界面貌的见解。考虑到这一动机,我们着手确定:
- 当前 Python 3 的采用率是多少?
- Python 如何与其他语言一起使用?
- Python 用于哪些类型的项目?
- Python 用户的主要开发类型是什么?
- 最流行的技术和工具是什么?
- 哪些框架和库最常见,它们如何互补?
- Python 开发者是谁?
该调查于 2017 年 10 月进行。我们将在此总结结果,您可以在 Python 开发者调查 2017 结果 网站上深入了解更多图表和原始数据。
方法论
在我们查看数据和见解之前,重要的是回顾调查的方法论,包括它是如何分发的,以及为消除潜在偏差并确保它没有偏向任何特定工具、技术、库或国家而采取的步骤。
我们将调查发送给几个独立的群体,包括订阅了 PSF 邮件列表、博客、Slack、LinkedIn 和 Twitter 的用户。它还在访问量最大的 Python.org 页面上宣传了数周,并通过 Read the Docs 进行了宣传。大部分回复 (62%) 来自 Python.org 上的横幅广告;其他主要来源是 PSF 博客和 Twitter 帖子。没有使用任何产品、服务或供应商相关的渠道,以防止调查结果偏向任何特定工具或技术。
该调查受到了社区的良好反响,回复率高于预期。在收集期间,它收到了超过 10,000 份回复。在调查后的分析中,部分回复和重复回复被过滤掉,在我们的分析数据集中,保留了来自 150 多个国家/地区的 9,532 名受访者。描述如此大样本量的最大统计误差的保守置信区间仅为 1%,这意味着所有结果都具有统计学意义。调查的主要目标已经实现:我们收到了精确可靠的数据!

opensource.com
Python 开发者画像
我们将从 Python 世界中最令人兴奋的事情开始我们的旅程:Python 社区与该语言及其应用一样多样化。

opensource.com
Python 用户的年龄范围很广,但大多数受访者都在 20 多岁,四分之一在 30 多岁。有趣的是,几乎五分之一的 Python 用户年龄在 20 岁以下。如果我们将 Python 开发者的年龄范围与 Stack Overflow 在其 最新调查 中确定的一般开发者年龄范围进行比较,分布看起来相似,Python 调查报告的 18 岁以下开发者略多。这可以用许多学生在学校和大学使用 Python,并且它是一种常见的入门语言来解释。
超过一半的受访者全职担任开发者,五分之一的开发者兼任数据分析师、架构师或团队负责人。将我们的数据与 Stack Overflow 调查 进行比较,我们可以看到 Python 开发者全职就业的可能性低于一般开发者(52% 的 Python 开发者 vs. 74% 的所有开发者),而成为个体经营者或自由职业者的可能性更高(13% 的 Python 开发者 vs. 9.7% 的所有开发者)。
Python 调查受访者报告了广泛的经验;22% 的人经验不足一年,同样比例的人经验超过 11 年,中间分布平滑。这表明新手和经验丰富的开发者之间存在良好的平衡,使 Python 成为一种可持续发展的语言。

opensource.com
值得注意的是,Python 的新手比例远高于其他语言的平均水平。根据 Stack Overflow 数据,30% 的开发者拥有不到两年的专业经验,而 Python 开发者调查中为 41%。
大型开发者团队在 Python 中并不常见。在我们的调查中,56% 的 Python 开发者表示他们独立进行项目,40% 的人通常在 2 到 7 人的团队中工作。大约一半的受访者在一个主要项目和少量副项目上工作,而大约四分之一的人一次专注于一个项目。

opensource.com
2016 年,JetBrains 在没有 PSF 参与的情况下主办了一项 Python 开发者调查。虽然 JetBrains 在 2016 年拥有很大的样本量,但其调查主要通过自己的渠道进行推广,这自然吸引了更多 PyCharm 用户——约 50% 是 PyCharm 用户,50% 是其他编辑器用户。为了避免不可避免的偏差,2016 年的调查没有比较不同代码编辑器的用户群数量。尽管 2016 年的调查结果存在偏差,但比较 2017 年和 2016 年的一些调查结果仍然值得。例如,在 2016 年的调查中,45% 的人报告独立进行自己的项目,而 51% 的人在团队中工作。2017 年调查中不同的比例可能可以用更多的新手来解释,Python 是他们的第一语言,数据科学家现在与使用 Python 的 Web 开发者数量相当。
Python 工作机会
正如我们上面所写,Python 是 Stack Overflow 2018 年开发者调查 中最令人向往的语言(即调查参与者最感兴趣学习的语言);这是它连续第二年获得该排名。Python 用户也将其列为最受欢迎的编程语言榜单的第三名。这些事实与 Python 就业市场有何关系?
即使 Python 开发者调查没有专门讨论工作的受欢迎程度,我们也可以从其他资源中收集到,全球范围内对 Python 开发者的需求很大,涉及的工作范围很广。这些工作包括机器学习、数据库、数据分析、云基础设施、设计、站点可靠性/测试、网络爬虫、安全、移动开发、API 等。根据 jobs.python.org 上列出的工作,机会倾向于国际需求,尤其是在英国地区。
在任何主要的招聘网站上搜索“Python 开发者”都会产生数千个工作机会。2018 年 3 月,美国 Python 开发者的平均工资(基于 Indeed 数据)为 115,835 美元。高平均工资表明许多公司正在竞相聘请知识渊博的 Python 开发者,并进一步支持了 Python 是一项需求旺盛的技能的观点。
Python 还在美国最佳工作——数据科学(根据 Glassdoor.com 在 2018 年 4 月的报告)中占有一席之地。大约五分之一的数据科学工作涉及 Python,包括 NumPy、pandas 和 Matplotlib 库。
Python 的总体使用情况
几乎五分之四的 Python 开发者表示,Python 是他们的主要语言,比 JetBrains 2016 年的调查中的 75% 增加了 4%。

opensource.com
各种研究表明,Python 开发者的数量,以及使用 Python 作为主要语言的开发者的比例,都在逐年稳步增长。在 Stack Overflow 的调查中,Python 的受欢迎程度从 2017 年初的 32% 增加到年底的 38.8%。这可以用 Python 在数据科学领域的迅速普及来解释,因为这部分用户的增长速度远快于其他用户。
Python 经常与其他语言结合使用

opensource.com
在以 Python 作为主要语言的所有开发者中,一半的人也使用 JavaScript。JavaScript 被 79% 的 Web 开发者使用,但在数据分析或机器学习领域,只有 39% 的人使用。
对于那些将 Python 作为辅助语言使用的人来说,情况略有不同,因为他们中使用 JavaScript 的人较少 (46%),而使用 C/C++ (42%)、Java (41%) 和 C# (24%) 的人更多。
Python 开发的类型
为了确定最流行的 Python 开发类型及其交叉点,我们提出了两个类似的问题:“您使用 Python 做什么?” 受访者可以从中选择多个答案,以及“您最常使用 Python 做什么?” 只能选择一个答案。结果表明,科学开发现在与 Web 开发一样受欢迎:一半的受访者从事数据科学项目,一半从事 Web 开发。

opensource.com
回答因受访者是否将 Python 作为主要语言还是辅助语言而异:54% 的将 Python 作为主要语言的人参与 Web 开发,而 33% 的将 Python 作为辅助语言的人参与 Web 开发。对于数据分析、机器学习和其他类型的开发,差异不太显着。
许多 Python 开发者身兼数职。他们最常结合的角色是:

opensource.com
数据分析和机器学习的交叉是预期的,但 Web 开发和数据分析/机器学习之间的重叠值得注意。
当被问及他们从事的主要开发类型时,26% 的 Python 用户表示是 Web 开发,远远超过数据分析(18%)。

opensource.com
但是,如果我们将 18% 的从事数据分析的人与 9% 的主要角色是机器学习的人结合起来,我们就会发现 27% 的人主要从事科学开发。这意味着使用 Python 的 Web 开发者与数据科学家一样多。

opensource.com
有趣的是,当 JetBrains 在 2016 年进行 Python 开发者调查时,38% 的受访者认为自己是 Web 开发者,只有 21% 的人认为是科学开发者。这可能是 Python 开发者中数据科学家快速增长的证据。
比较那些将 Python 作为主要语言与辅助语言使用的人的趋势,Web 开发的差距最大(主要语言为 29%,辅助语言为 15%)。数据分析和机器学习的差异要小得多。相反,更多 DevOps 和系统管理员将 Python 作为辅助语言使用 (13%),而不是主要语言 (8%)。
数据科学是否正在席卷 Python?
Python 开发者调查中最引人入胜的问题是 Python 世界中 Web 开发者与数据科学家的比例。我们要求受访者根据他们自己的经验、信念和一般的“直觉”来估计使用 Python 的 Web 开发者和数据科学家之间的比例。由于我们明确询问了开发类型,并且样本量足够大,具有统计学意义,因此我们可以将社区的看法与现实进行比较。

opensource.com
更多受访者 (57%) 认为 Web 开发者比数据科学家更常见,而只有 33% 的人认为相反。

opensource.com
根据上一节报告的数据(26% 的人报告 Web 开发,27% 的人报告科学开发是他们的主要活动),真实比例为 1:1。
只有九分之一的受访者正确猜到了这一点;大多数人低估了数据科学 Python 用户的数量。Web 开发通常被认为是 Python 的主要应用。虽然这在几年前是正确的,但 Python 数据科学家的数量正在迅速增长,并且已经与 Web 开发者的人数相当。
Python 2 vs. Python 3
我们询问:“您最常使用哪个版本的 Python?” Python 3 以 75% 的比例遥遥领先,而 Python 2 仅被 25% 的人用作主要解释器。Python 3 正在迅速增长;在 2016 年的调查中,60% 的人使用 Python 2,40% 的人使用 Python 3。Python 2 的使用正在下降,因为它没有积极开发,没有新功能,并且将在 2020 年之后 不再维护。
值得注意的是,70% 的 Web 开发者正在使用 Python 3,而数据分析师和机器学习专家分别为 77% 和 83%。这可能是因为许多 Web 开发者仍然需要维护遗留代码,同时过渡到 Python 3,而许多数据分析师和机器学习专家最近才加入 Python 生态系统,并直接使用了 Python 3。

opensource.com
我们还询问了开发者他们如何安装和更新 Python 安装。

opensource.com
70% 的人从 python.org 或使用操作系统提供的软件包管理器(如 APT 和 Homebrew)安装 Python。
Python 框架、库和技术
Django 是最流行的框架;41% 的 Python 开发者使用它。

opensource.com
科学软件包,如 NumPy、pandas 和 Matplotlib,加起来紧随其后,占 39%。其他流行的框架和库包括 Requests、Flask、Keras/Theano/TensorFlow/Scikit-learn 等。TensorFlow 和 Django 在 StackOverflow 的 最受欢迎和最想要的技术列表 中。
Django 被 76% 的 Web 开发者选为首选框架,而数据科学领域只有 31% 的人选择它。奇怪的是,29% 的 Web 开发者正在使用科学库。这证实了这两个角色之间存在很强的重叠。

opensource.com
当被问及除 Python 之外使用的技术时,Jupyter Notebook 排名最高,为 31%,考虑到大量开发者参与数据科学,这很有道理。Docker 以仅低 2% 的 29% 位居第二。按角色细分,Docker 被 47% 的主要从事 Web 开发的人使用,而只有 23% 的数据科学家使用。同样,Web 开发者使用云平台(如 Amazon Web Services、Google App Engine、Heroku 等)的频率是数据科学家的两倍。
将 2016 年的调查结果与 2017 年的调查结果进行比较,Django 和 Flask 这两个最流行的 Web 框架的市场份额有所下降。(Django 在 2016 年被 51% 的人使用,在 2017 年被 41% 的人使用;Flask 在 2016 年被 40% 的人使用,在 2017 年被 32% 的人使用)。与此同时,科学库和技术框架的使用有所增长。2016 年,Anaconda、NumPy 和 Matplotlib(加起来)被 36% 的人使用;到 2017 年底,NumPy、pandas、Matplotlib、SciPy 和类似库被 39% 的人使用,Anaconda 被 25% 的人使用。

opensource.com
当被问及他们使用哪些云平台时,使用云的受访者将 AWS 排在首位,占 67%。Google App Engine、Heroku 和 DigitalOcean 的使用频率要低得多。AWS 在 Stack Overflow 调查的 最受欢迎和最想要的平台列表 中也名列前茅。我们在可以列为潜在答案的云平台数量上受到限制;“其他”类别收集了 13% 的回复,包括 Linode、PythonAnywhere、OpenShift 和 OpenStack。
Python 开发的工具和功能
当我们询问在 Python 开发中使用开发实践、工具和功能时,最受欢迎的是代码自动完成、代码重构、编写单元测试以及为 Python 项目使用虚拟环境。NoSQL 数据库、Python 性能分析器和代码覆盖率工具是最少使用的工具之一。这些结果与 2016 年的数据非常相似。

opensource.com
为了确定最流行的编辑器和 IDE,我们提出了两个问题:“您考虑过在 Python 开发中使用哪些编辑器/IDE?” 允许选择多个答案,以及一个单选题:“您当前 Python 开发使用的主要编辑器是什么?” 基于对该问题的 8,000 多个回复,PyCharm 是最流行的工具,其次是 Sublime、Vim、IDLE、Atom 和 VS Code。

opensource.com
注意:我们采取了许多步骤来消除偏差,并确保调查没有偏向任何特定工具。要了解有关调查方法和用于分发调查的渠道的更多信息,请参阅调查结果网站的 原始数据 部分。
Web 开发者与数据科学家在编辑器偏好方面略有不同。Web 开发者非常喜欢 PyCharm Professional Edition、Sublime Text 和 Vim,而数据科学家显然更喜欢 PyCharm Community Edition、Jupyter Notebook 和 Spyder。
当我们询问“您考虑过在 Python 开发中使用哪些编辑器/IDE?”时,我们了解到 Web 开发者最常考虑 Sublime Text (47%),其次是 Vim (39%) 和 Atom (32%)。科学开发者最常考虑 Jupyter Notebook (42%),其次是 PyCharm Community Edition (39%)、Sublime Text (31%) 和 Vim (26%)。
我们还发现,大多数开发者每天都使用他们的编辑器,大约五分之一的人每周使用他们的编辑器。
调查原始数据
与 Python 及其社区的开源理念一致,我们已将 原始数据 公开,我们欢迎其他分析和结论。我们计划在 2018 年和未来几年重复进行调查。我们的目标是保持每年的调查相似,以便可以进行纵向数据分析。
在剖析原始数据之前,请注意以下事项:数据是匿名的,不包含个人信息或地理位置详细信息。此外,所有开放式字段都已修剪,以防止通过逐字评论识别任何个人受访者。为了帮助其他人更好地理解调查的逻辑,我们正在分享数据集、调查问题和所有英文调查逻辑。我们对答案选项使用了不同的排序方法(字母顺序、随机、直接)。答案选项使用的顺序在每个问题中都有指定。
我们很高兴了解您的发现!请在 Twitter 或其他社交媒体上分享您的发现,并提及 @jetbrains 和 @ThePSF,并使用 #pythondevsurvey2017 标签。我们也欢迎建议和反馈,以便我们下次改进调查。请随时在 此处 打开问题,提出任何意见或问题。
主要结论
2017 年 Python 开发者调查是社区的基准。一些更重要的结论包括:
- Python 3 的采用率已达 75%,并且正在快速增长。
- 目前,从事数据科学的 Python 开发者与从事 Web 开发的 Python 开发者一样多,但 Python 在数据科学家中的快速增长表明,这种均等状态可能会迅速改变。
- 对于五分之四的使用 Python 的开发者来说,Python 是他们的主要语言。
- Django、NumPy、pandas 和 Matplotlib 是 Python 开发者使用的最流行的框架和库。Jupyter Notebook 和 Docker 是与 Python 一起使用的最流行的技术。AWS 是最流行的云平台。
- PyCharm、Sublime、VIM、Atom 和 VS Code 是最常用的 Python 编辑器。
- 在以 Python 作为主要语言的人中,一半的人也使用 JavaScript 和 HTML/CSS。Python 也经常与 SQL、Bash/Shell、C/C++ 和 Java 一起使用。
我们希望调查结果能够阐明 Python 开发者社区的当前状态,了解大局,并回答一些问题。
要了解有关 Python 趋势以及雇主正在寻找什么职位的更多信息,请参加作者在 PyCon Cleveland 2018 上的演讲 By the Numbers: Python Community Trends in 2017/2018r。
评论已关闭。