从数字看:2017/2018 年 Python 社区趋势
这篇文章是与Dmitry Filippov共同撰写的。
Python 正在迅速普及,并在科技新闻中引起更多关注,其中包括有关 Python 被使用的报道涉及计算机工程领域的更多高中女生以及推荐入门级大学计算课程教授编程语言。此外,Stack Overflow 的 2018 年开发者调查发现 Python 是人们最想学习的编程语言](https://insights.stackoverflow.com/survey/2018#technology-most-loved-dreaded-and-wanted-languages)。从简单的个人网站到世界上最大的银行的数据挖掘和机器学习,在网络上都可以看到和使用 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页面上推广了数周,并通过阅读文档进行宣传。大多数回复(62%)来自 Python.org 上的横幅;其他主要来源是 PSF 博客和 Twitter 帖子。没有使用与产品、服务或供应商相关的渠道来防止调查结果偏向于任何特定的工具或技术。
该调查得到了社区的好评,响应率高于预期。在征集期间,它收到了10,000多条回复。在调查后分析期间,部分回复和重复被过滤掉,我们的分析数据集中包含来自 150 多个国家的 9,532 名受访者。描述如此大样本量的最大统计误差的保守置信区间仅为 1%,这意味着所有结果都具有统计显着性。调查的主要目标已经实现:我们收到了准确可靠的数据!

图片来源:
开源网站
Python开发者简介
我们将从最激动人心的事情开始我们的 Python 世界之旅:Python 社区与语言及其应用程序一样多样化。

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

图片来源:
开源网站
值得注意的是,与其他语言相比,Python 的平均新手比例要高得多。根据Stack Overflow 数据,30% 的开发者拥有不到两年的专业经验,而 Python 开发者调查中这一比例为 41%。
大型开发人员团体在 Python 中并不常见。在我们的调查中,56% 的 Python 开发人员表示他们独立开展项目,40% 的人通常在 2 到 7 人的团队中工作。大约一半的受访者从事一个主要项目和几个副项目,而大约四分之一的人一次专注于一个项目。

图片来源:
开源网站
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 还与美国最好的工作——数据科学(根据 2018 年 4 月Glassdoor.com)有关。大约五分之一的数据科学工作涉及 Python,包括 NumPy、pandas 和 Matplotlib 库。
Python的一般用法
几乎五分之四的 Python 开发人员表示这是他们的主要语言,比 JetBrains 2016 年调查的 75% 增加了 4%。

图片来源:
开源网站
各种研究表明,Python 开发者的数量,以及使用 Python 作为主要语言的开发者的比例,都在逐年稳步增长。在 Stack Overflow 的调查中,Python 的流行度从 2017 年初的 32% 上升到了年底的 38.8%。这可以用 Python 在数据科学领域的迅速普及来解释,因为这部分用户的增长速度比其他用户快得多。
Python 经常与其他语言结合使用:

图片来源:
开源网站
使用 Python 作为主要语言的所有开发人员中,有一半也使用 JavaScript。 79% 的 Web 开发人员使用 JavaScript,但只有 39% 的人参与数据分析或机器学习。
使用 Python 作为第二语言的人的细分略有不同,因为使用 JavaScript (46%) 的人更少,使用 C/C++ (42%)、Java (41%) 和 C# (24%) 的人更多。
Python开发的类型
为了确定最流行的 Python 开发类型及其交叉点,我们问了两个类似的问题:“你用 Python 做什么?”哪些受访者可以选择多个答案,以及“您最常使用 Python 做什么?”只有一个可能的答案。结果表明,科学发展现在与 Web 开发一样受欢迎:一半的受访者从事数据科学项目,另一半从事 Web 开发。

图片来源:
开源网站
根据受访者是使用 Python 作为主要语言还是次要语言,回答会有所不同:54% 的使用 Python 作为主要语言的人参与了 Web 开发,而 33% 的人说 Python 是他们的次要语言。对于数据分析、机器学习和其他类型的开发,这种差异不太显着。
许多 Python 开发人员身兼数职。他们最常结合的角色是:

图片来源:
开源网站
数据分析和机器学习的交叉点是意料之中的,但 Web 开发和数据分析/机器学习之间的重叠是值得注意的。
当被问及他们从事的主要开发类型时,26% 的 Python 用户表示 Web 开发的速度远远超过数据分析(18% 的报告)。

图片来源:
开源网站
但是,如果我们将 18% 的从事数据分析的人与 9% 的主要角色是机器学习的人结合起来,我们会发现 27% 的人主要从事科学发展。这意味着使用 Python 的网络开发人员与数据科学家的数量一样多。

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

图片来源:
开源网站
更多的受访者 (57%) 认为网络开发人员比数据科学家更普遍,而只有 33% 的人认为相反。

图片来源:
开源网站
根据上一节中报告的数据(其中 26% 报告 Web 开发和 27% 报告科学发展作为他们的主要活动),真实比率是 1:1。
只有九分之一的受访者猜对了;大多数人低估了数据科学 Python 用户的数量。 Web 开发通常被认为是 Python 的主要应用程序。虽然几年前确实如此,但 Python 数据科学家的数量正在迅速增长,并且已经与 Web 开发人员的数量持平。
Python 2 与 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。

图片来源:
开源网站
我们还询问了开发人员如何安装和更新 Python 安装。

图片来源:
开源网站
70% 的人从 python.org 或操作系统提供的包管理器(如 APT 和 Homebrew)安装 Python。
Python 框架、库和技术
Django 是最流行的框架; 41% 的 Python 开发人员使用它。

图片来源:
开源网站
NumPy、pandas 和 Matplotlib 等科学软件包加起来以 39% 的比例紧随其后。其他流行的框架和库是 Requests、Flask、Keras/Theano/TensorFlow/Scikit-learn 等。 TensorFlow 和 Django 在 StackOverflow 的最受欢迎和最想要的技术列表中。
76% 的 Web 开发人员将 Django 选为最佳框架,而数据科学领域的这一比例仅为 31%。奇怪的是,29% 的 Web 开发人员正在使用科学库。这证实了两个角色之间的强烈重叠。

图片来源:
开源网站
当被问及除 Python 之外使用的技术时,Jupyter Notebook 排名最高,为 31%,考虑到大量开发人员参与数据科学,这是有道理的。 Docker 仅落后 2%,为 29%。按角色划分,47% 的主要参与 Web 开发的人员使用 Docker,而只有 23% 的数据科学家使用 Docker。同样,Web 开发人员使用 Amazon Web Services、Google App Engine、Heroku 等云平台的频率是数据科学家的两倍。
将 2016 年的调查结果与 2017 年的调查结果进行比较,Django 和 Flask 这两个最流行的 Web 框架已经失去了份额。 (Django 的使用率在 2016 年和 2017 年分别为 51% 和 41%;Flask 在 2016 年和 2017 年分别为 40% 和 32%)。与此同时,科学图书馆和技术框架的使用也在增长。 2016 年,Anaconda、NumPy 和 Matplotlib(组合)使用率为 36%;到 2017 年底,NumPy、pandas、Matplotlib、SciPy 等的使用率为 39%,Anaconda 的使用率为 25%。

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

图片来源:
开源网站
为了确定最流行的编辑器和 IDE,我们问了两个问题:“您考虑过哪些编辑器/IDE 用于您的 Python 开发?”允许多个答案和一个单答案问题,“您当前的 Python 开发使用的主要编辑器是什么?”根据对这个问题的 8000 多条回复,PyCharm 是最受欢迎的工具,其次是 Sublime、Vim、IDLE、Atom 和 VS Code。

图片来源:
开源网站
注意:我们采取了一些措施来消除偏见,并确保调查不偏向任何特定工具。要了解有关调查方法和用于分发调查的渠道的更多信息,请参阅调查结果网站的原始数据部分。
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 或其他社交媒体上提及@jetbrainsu200f 和@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 趋势和雇主正在寻找的更多信息,请参加作者的演讲By the Numbers: Python Community Trends in 2017/2018ratPyCon Cleveland 2018.
更多推荐

所有评论(0)