由于您从未听说过的功能,Python是发展最快的编程语言

由于您从未听说过的功能,Python是发展最快的编程语言

根据最近*的分析, Python是已经被广泛使用的语言中增长最快的编程语言。 而且,增长率正在加速 ,并且在过去几年中一直保持稳定。 尽管应该对*帖子的具体结论有所了解,但不可否认的是,过去五年来Python的使用激增。 对于长期使用和喜欢该语言的人来说,这是个好消息,但是询问为什么 Python的使用量激增仍然很重要。 而且,这种增长的主要推动力(如果不是唯一的推动力)是您可能从未听说过的语言的功能。

大数据和勉强的程序员

随着大数据的兴起,大多数行业都陷入了可怕的境地:他们花费了大量的时间和金钱来建立大数据管道,但他们的投资回报很少。 在气喘吁吁的比赛中能够捕获数据的不断增长量,大多数公司不得不为如何处理它们捕获的数据没有明确的计划。 当时,每个人都认为通过存储大量数据,分析将很简单,有价值的业务见解几乎是不言而喻的。 今天听起来可能很愚蠢,但是大多数人认为,一旦捕获到足够的数据,数据中的模式就会变得显而易见。

不幸的是,事实并非如此。

取而代之的是,业界几乎同时集体意识到,他们希望收集各种非平凡的见解以及他们希望回答的问题,需要进行严格的数学分析和验证。 SQL查询可能会发现最明显的模式和趋势,但是真正多汁的东西需要完全不同的技能。 这种技能扎根于统计学和应用数学,学术界以外的人似乎都没有。 此外,负责分析这些巨大数据集的人员不仅需要非常强大的数学背景, 而且还需要能够编写软件

它应该是毫不奇怪,那么,标题为“数据科学家”开始出现所有在两个招聘网站简历,虽然这将是一个数年,直到有人会试图指甲挫,究竟数据科学家与任何严谨一样 当时,它更接近于“一个既能统计分析又能编程的人”的简写。

Web上的Ruby与Python

在大数据才是真正的“东西”之前,进一步回顾一下,您会看到Ruby和Python之间争夺成为“网络语言”的激烈战斗。 两者都证明非常适合开发Web应用程序。 Ruby的流行与Rails框架密切相关。 很少有人会争辩说,大多数在这段时间自称为“ Ruby程序员”的程序员也可能只是说“ Rails程序员”。 Python已经在学术界和少数几个不同的行业中根深蒂固。 与Rails最接近的Python是Django 尽管它比Rails早一点发布,但它的受欢迎程度似乎大大落后了。

许多人认为这些语言在表达性和可访问性方面足够相似,以至于最终将“赢得”网络。 但是,这种想法的含义有根本的区别:尽管Ruby的流行与Rails紧密相关,但是Django在已经活跃的Python生态系统中所占的比例相对较小。 Ruby似乎需要Rails“击败” Python以保证其持续流行。 而且在很多方面都做到了。

事实证明,“网络战争”的重要性远没有任何人预期的那样。

房间里的油性鱼

要理解为什么,我们需要一直追溯到2006年,那时Travis Oliphant仍是BYU的助理教授,而不是Anaconda(nee Continuum Analytics)的共同创始人, Anaconda是最成功的商业数据科学平台之一完全在Python上。 一年以前,他在以前的科学计算库Numeric的基础上松散地启动了NumPy项目。 他最终将成为SciPy的创始贡献者,甚至担任PSF的董事。 但是在2006年,他(与卡尔·班克斯(Carl Banks)一起)提交了PEP 3118 ,对Python的“缓冲区协议”进行了修订。

缓冲区协议曾经是(现在仍然是)一个非常低级的API,用于由其他库直接操作内存缓冲区。 这些是由解释器创建并使用的缓冲区,用于将某些类型的数据(最初,主要是“数组式”结构,其中提前知道数据的类型和大小)存储在连续的内存中。

提供此类API的主要动机是消除了仅在读取时复制数据的需要,阐明缓冲区的所有权语义以及将数据存储在连续的内存中(即使在多维数据结构的情况下),在读取时访问速度非常快。 那些可以利用API的“其他库”几乎肯定是用C编写的,并且对性能非常敏感。 新协议意味着,如果我创建一个整数类型的NumPy数组,则其他库可以直接访问底层的内存缓冲区,而不需要进行间接操作,或者更糟的是,在使用该数据之前先进行复制。

现在,要使这种延长的行程遍及整个存储通道,是一个问题:哪种类型的编程人员将从对大量数据的快速零拷贝存储访问中大大受益?

为什么,当然是数据科学家。

我们如何从那里到达这里

所以现在我们看到了整个图片:

  • Oliphant和Banks提议对Python的缓冲区协议进行修订,以简化对刚刚开始的NumPy项目的工作所驱动的某些数据结构的底层内存的直接访问。
  • PEP 3118已提交,接受和实施。
  • 借助于PEP 3118的实现,Python悄然成为一种令人难以置信的引人注目的语言,因为C扩展可以以很少的开销共享和处理数据,因此可以在其上构建数值计算库
  • Python和Ruby在网络上与之抗争,大多数人认为这将赢得“语言之战”
  • 随着磁存储设备价格的暴跌,存储大量数据以供以后分析变得可行(即使尚不清楚该分析可能需要进行什么分析;最好是只保存数据,因为它已经足够便宜了)
  • 出现了对新型程序员的需求:拥有统计学和/或应用数学背景并且很少有编程经验的程序员
  • 数据科学家 ,正在寻找一种既能表达快速的语言(具有良好的数值计算库支持以启动),所有这些都取决于Python
  • 在后续文章中,Stack Overflow的David Robinson详细介绍了“ Why Python” ,使Data Science成为主要推动力的有力理由
  • Jeff最后写了一篇文章,详细说明了为什么Python的受欢迎程度在过去五年中飞速上升,自从为ArrowParquet项目做出贡献以来,他的头脑一直在绕

我们从这里去哪里?

在本文的第二部分,我将解释过去几年来我在 Python方面所做的工作,以及它如何直接与上述故事和数据科学家的兴起联系起来。

发表于九月15,2017作者Jeff Knupp

最初于 2017 年9月15日 jeffknupp.com 发布

From: https://hackernoon.com/python-is-the-fastest-growing-programming-language-due-to-a-feature-youve-never-heard-of-3ea2fa344a84