为什么Python发展速度这么快

2,840 阅读10分钟
原文链接: zhuanlan.zhihu.com
出处:Why is Python Growing So Quickly?
作者:David Robinson

最近显示,基于Stack Overflow问题访问,Python是成长最快的主要编程语言,它已成为Stack Overflow上高收入国家访问量最大的标签。

为什么Python生长如此之快?

Python用于各种目的,从Web开发到数据科学到DevOps,值得了解的是Python的特定应用程序最近变得更加普遍。 我是一个使用R的数据科学家,所以我对Python本身的增长有多少兴趣。 在这篇文章中,我将再来看一下Stack Overflow数据,以了解Python开发的种类以及最常用的公司和组织。

这些分析提出两个结论。 首先,Python的增长最快的是数据科学,机器学习和学术研究。 这在pandas包的增长中尤其明显,pandas包是网站上增长最快的Python相关标签。

对于哪些行业正在使用Python,我们发现在电子,制造,软件,政府,特别是大学等几个行业中,我们都有更多的访问。 然而,Python的增长在各个行业中均匀分布。 结合起来,这将讲述数据科学和机器学习在许多类型的公司中变得越来越普遍,Python成为此目的的常用选择。

就像上一篇文章一样,所有这些分析都限于世行高收入国家

Python开发的类型

Python是用于各种任务的通用语言,如Web开发和数据科学。 我们如何解决Python最近在这些领域的发展?

对于初学者,我们可以检查流量的增长,以便在每个字段中表示明显的Python包的标签。 我们可以将Web框架DjangoFlask与数据科学包NumPymatplotlibpandas进行比较。 (您也可以使用Stack Overflow 趋势来比较所问问题的比率,而不是访问的问题。

对于来自高收入国家的Stack Overflow流量来说,pandas显然是增长最快的Python软件包:

它在2011年几乎不推出,但现在占Stack Overflow问题观点的近1%。 关于numpy和matplotlib的问题也随着时间的推移增加了他们的访问份额。 相比之下,Django问题的流量在此期间保持相当稳定,而当Flask持续增长时,它的份额仍然较小。 这表明Python的大部分增长可能是由于数据科学而不是Web开发。

然而,这给了我们一部分的图片,因为它只能测量广泛使用的Python特定的包。 Python也受到系统管理员和DevOps工程师的欢迎,他们可能访问Linux,Bash和Docker问题以及Python问题。 类似地,没有Django或Flask可以完成大量的Python Web开发,这样的开发人员可能会将JavaScript,HTML和CSS作为“支持”标签。 我们不能简单地测量像linux,bash,javascript这样的标签的增长,并假设它们与Python相关联。 因此,我们想测量与Python一起访问的标签。

我们将考虑到2017年夏季(6月至8月)的访问,这有助于减少学生的影响,重点关注最近的流量,并有助于减少长时间总结流量的计算挑战。 我们仅考虑了在此期间访问过至少50个Stack Overflow问题的登录用户。 我们认为某人是Python用户,只有当他们最常访问的标签是Python时,而且Python至少占访问量的20%。

哪些标签经常被那些倾向于访问Python的人访问?

pandas大部分是Python开发人员最常访问的标签,这在我们看到其早期的增长之后并不奇怪。 Python访问者访问次数最多的是JavaScript,可能代表了一组Python Web开发人员(Django几个插槽较低)。 这证实了我们的怀疑,我们应该考虑与Python一起访问什么标签,而不仅仅是Python相关标签的增长。

在列表中,我们可以看到其他“簇”的技术。 我们可以通过考虑哪些标签往往是相关的来检验他们的关系:也就是说,Python用户对是否不成比例地访问这两个标签。 通过过滤具有高Pearson相关性的标签对,我们可以在网络图中显示这些关系(有关此类可视化的更多信息,请参阅此处)。

我们可以看到几大类技术,它们大致描述了通常用Python解决的问题类别。 在上层中心,我们看到了一个数据科学和机器学习的集群:它在中心拥有pandas,NumPy和matplotlib,并且与R,Keras和TensorFlow等技术紧密相连。 下面的集群描述了Web开发,包括JavaScript,HTML,CSS,Django,Flask和JQuery等标签。 我们可以看到的其他两个集群是左侧的系统管理/ DevOps(围绕Linux和Bash),右侧的数据工程(Spark,Hadoop和Scala)。

按主题增长

我们已经看到了Python相关的Stack Overflow流量通常可以分为几个主题。 这让我们可以检查哪些主题对于Stack Overflow访问中Python的大部分增长负责。

想象一下,我们正在看一个用户的历史,我们看到Python是他们访问量最大的标签。 我们如何猜测他们是网络开发人员,数据科学家,系统管理员还是其他? 那么,我们可以考虑他们第二次访问的标签,然后是他们的第三个标签,并且按照他们最常访问的标签的名单工作,直到我们从上面的一个集群中看到可识别的东西。

因此,我们提出以下简单的方法来将用户分类到主题中,我们从下面列出的9中找到每个用户最常访问的标签,并使用它来对其进行分类。

  • 数据科学家:pandas,NumPy或Matplotlib
  • Web开发人员:JavaScript,Django,HTML
  • Sysadmin / DevOps:Linux,Bash或Windows。
  • 无:上述九个标签中没有一个超过其流量的5%。

这不是很复杂,但它可以让我们快速估计每个主要类别对Python增长的影响。 我们还尝试了更为严谨的潜在Dirichlet分配方法,并得到了定性相似的结果。

随着时间的推移,哪些类别的Python开发人员变得更加普遍 ?请注意,由于我们对用户进行分类,而不是问题访问,我们将其显示为Stack Overflow注册访问者的百分比(不管他们访问过Python还是访问Python)。

我们可以看到,在过去三年中,在所有访问Stack Overflow的访问者中,使用Web技术或系统管理的Python访问者数量都以缓慢或适度的速度增长。 但访问数据科学技术的Python开发人员的份额正在迅速增长。 这表明Python在数据科学和机器学习中的普及可能是其快速增长的主要动力。

我们还可以通过计算2016年和2017年Python开发人员访问的代码流量来考虑个人标签级别的增长。例如,Javascript流量可能总体稳定,但是它的缩小比例来自Python的访问百分比开发人员。 一旦我们拥有这些每个标签的增长率,将它们放在我们的网络中是有用的,以了解哪些主题正在增长和缩小。

这有助于证实我们怀疑Python内的许多增长与数据科学和机器学习有关。 大部分的集群都转向了橙色,这意味着这些标签已经开始弥补了Python生态系统的更大部分。

行业

我们可以理解Python语言的增长的另一种方式是考虑从哪里访问哪些类型的公司。 这是访客开发人员类型的独立问题:零售公司和媒体公司都可以聘请数据科学家或网络开发人员。

我们将重点关注Python增长最为显着的两个国家:美国和英国。 在这些国家,我们能够按行业划分流量(就像我们比较AWS和Azure一样)。

Python流量最大的行业(大幅度增长)是由高校组成的学术界。 这是因为Python通常在本科生编程课上讲授?

部分,但不完全。 正如我们在前一篇文章中看到的那样,来自大学的Python流量在夏季很常见,不仅仅是在秋季和春季。 例如,Python和Java是大学访问量最大的标签,我们可以看到季节性趋势的差异。

在一个百分比中,我们可以看到,每个夏天,Java流量下降得更为显着,因为Java是本科课程中比较常见的课题。 (我们将在未来的帖子中探索大学最常用的编程语言)。 相比之下,Python在每个夏天的流量中占有更大的份额。 因此,来自大学的Python问题的高流量部分归因于学术研究人员,他们通常在整个一年中工作。 这提供了更多的证据表明Python的增长是由于其科学计算和数据分析的能力。

对于其他行业,我们已经看到,Python在政府部门很受欢迎,发展迅速,但我们也可以看到它在电子和制造行业也得到广泛应用。 我不太熟悉这些行业,并且有兴趣了解为什么。 这种语言在零售或保险公司中仍然没有受到重视(有些调查显示,Java仍然占主导地位)。

这篇文章主要是调查Python发展的原因。 一些行业的Python流量增长速度比其他行业还要快吗?

在过去一年中,Python的增长已经非常均匀地分布在各个行业,至少在美国和英国。 在每个行业,Python的流量增加了约2-3个绝对百分点。 (请注意,这不是普遍的行业,如保险和零售业)的相对增长更大。

在许多这些行业中,Java仍然是基于2017年至今流量的访问量最大的标签,但Python一直在取得进展。 例如,在财务(这些行业中Stack Overflow出流量的较大贡献者之一)中,Python从2016年的第四大访问量上升到2017年第二名。

结论

作为以前在Python工作但现在在R工作的数据科学家,这是否应该推动我重新使用Python?

我不这么认为 一方面,R一直在迅速发展, 我们在最后一篇文章中看到,它是Python之后增长最快的主要编程语言。 但其次,我更喜欢使用R进行数据分析的原因与其相对受欢迎程度并不相关。 (我打算写一篇关于我自己从Python到R的旅程的个人博客文章,我喜欢这两种语言,以及为什么我不觉得被迫切换回来)。

无论如何,数据科学是一个令人兴奋和不断增长的领域,并且有足够的空间让多种语言茁壮成长。 我的主要结论是鼓励开发人员在职业生涯早期考虑建立数据科学的技能。 我们在这里看到,它是软件开发生态系统中增长最快的组件之一,并且在许多行业中变得相关。

如果您在Python中工作,对于Web开发,数据科学或其他领域,并且正在寻找您职业生涯中的下一个步骤,那么有些公司现在就在Stack Overflow Jobs上招聘Python开发人员。