Python风靡全宇宙,首要原因竟是它?

众所周知,Python是目前使用最广泛且用户增长最快的编程语言。优雅简洁的语法、强大的第三方库支持等都是Python能够风靡各行各业的原因。然而,你或许不知道,Python能够实现用户飞速增长,背后其实另有玄机。

就让我们从近年来大数据的兴起说起,为你娓娓道来Python火爆的真正原因。

郁闷的大数据程序员

随着大数据的崛起,大多数行业发现自己进入了一种恐慌状态:他们花费了大量的时间和金钱来建立他们的大数据渠道,但是他们的投资回报率却很低。在毫无喘息机会的竞争中,虽然能够挖取到日益增长的数据,但大多数公司并没有一个明确的计划来处理他们挖取到的数据。当时,几乎每个人都认为,有了大量的数据存储,后面的分析就会变得更简单,数据的业务价值也会变得显而易见。这在今天听起来可能很愚蠢,但大多数人依旧认为,只要获取到足够的数据,数据背后的规律和信息就会自动浮现。

被时代召唤的“数据科学家”

随后,业界几乎同时觉醒,他们希望得到的各种卓越远见和希望回答的问题都需要严格的数学分析和验证。
SQL查询能让你知道数据最明显的模式和趋势,但要想获取数据中最为有用的信息,你需要的其实是完全不同的另一套技术——一套牢固扎根于数学和应用数学的技能。而具备这种技术的人才似乎只存在于学术界中。此外,负责分析这些庞大数据集的人不仅需要非常强大的数学背景,还需要能够编写软件。这也不难解释为什么“数据科学家”这一职位频繁出现在招聘网站上了。

Ruby与Python的“Web开发语言之争”

我们再往回讲讲,在大数据还没有真正风靡之前,Ruby和Python曾在成为最受欢迎的“web开发语言”上发生过激烈的争战。
两者都非常适合开发Web应用程序。 Ruby的受欢迎程度与Rails框架密切相关。 在那个年代,大多数自称为“Ruby程序员”其实更应该称自己为
“Rails程序员”。 而Python在学术界和少数不同行业已经相当完善。
在Python中,与Rails最相近的是Django,Django尽管在Rails之前发布,但它的受欢迎程度似乎远远落后于Rails。

很多人认为,Python和Ruby的性能都很相似,最终只会有一种语言能够赢得“web开发语言之战”。
但实际上,Ruby的流行度与Rails密切相关,而Django只代表了一个已经很活跃的Python生态系统的一小部分。事实也证明,“Web开发语言之战”的重要性远低于人们的预期。即便从很多层面来讲,Ruby都凭借Rails赢得了这场争战,但这丝毫不影响Python成为当今最受欢迎的语言。这到底是为什么呢?

Oliphant的大手笔

为了揭开这个谜团,我们就不得不提一下一位大佬了,他就是Travis Oliphant。追溯到2006年。当时,Travis
Oliphant还是BYU的助理教授,他仍未创办Anaconda(注:Anaconda是一个完全以Python为基础的,目前最成功的商业数据科学平台之一)。
一年前,他参考科学计算库Numeric开发了NumPy。 他后来又成为SciPy的创始人并兼任了PSF的主管。

在2006年,他与Carl Banks一起提交了PEP 3118,这是Python的“缓冲区协议”的修订版。这为Python的兴起埋下了重要伏笔。

Python的缓冲协议:Python风靡全球的首要原因

缓冲器协议是(并且仍然是)一个极低级别的API,被其他库用来直接操纵内存缓冲区。 这些是由解释器创建和使用的缓冲器,用于存储连续存储器中某些类型的数据(最初,主要是“类似数组的”数据类型和大小都被提前给出的数据结构)。

提供这样一个API的主要动机是:消除在只读取时复制数据的必要性,澄清缓冲区的所有权转移语意,并将数据存储在连续的存储器中(即使在多维数据结构的情况下),其中读取访问速度非常快。
那些将使用该API的“其他库”一般都是用C写的,而且对性能十分敏感。
这一新协议意味着,如果我创建了一个NumPy的int数组,其他库可以直接访问底层内存缓冲区,而不是间接访问或者在使用该数据之前复制该数据。

现在问题来了:什么类型的程序员会从快速、零拷贝的大量数据获取中受益呢?

当然是数据科学家了!

让我们们来梳理一下事件的发展过程:

  • Oliphant和Banks提出了Python的缓冲协议的修订,以简化对刚开始的NumPy项目工作所驱动的某些数据结构的底层内存的直接访问。
  • PEP 3118(https://www.python.org/dev/peps/pep-3118/) 提交,被认可,实施。
  • 受益于PEP 3118的实现,Python已悄然成为一个非常吸引人的编译语言。在此基础上,就有了很多基于C语言扩展的数字计算库被开发出来(注:C语言扩展可以很便捷地实现数据共享和操作。)
  • Python和Ruby在网络上一决雌雄,大多数人认为“Web开发语言之战”必有分晓。
  • 随着磁存储设备价格暴跌,存储大量数据以供日后分析变得可行(因为数据已经变得很廉价,最好是先把数据保存起来,甚至都不需要去考虑具体要分析什么。)
  • 对新一代程序员的需求发生变化:具有统计学背景,最好还得有应用数学背景的,且先前有过一些编程经验的程序员开始被哄抢——数据科学家的时代来临了!
  • 数据科学家们想寻找一种既具有表现力又快速的语言(具有良好的数值计算库支持启动),所有的这些需求都指向于Python

后来,就如我们看到的那样,Python受到万千宠爱,一跃成为了最受欢迎的编程语言。

作者:Jeff Knupp

翻译:吴蕾、霍静

本文作者:Jeff Knupp

来源:51CTO

时间: 2024-10-03 08:16:30

Python风靡全宇宙,首要原因竟是它?的相关文章

解密:Python风靡全宇宙,首要原因竟是它?

众所周知,Python是目前使用最广泛且用户增长最快的编程语言.优雅简洁的语法.强大的第三方库支持等都是Python能够风靡各行各业的原因.然而,你或许不知道,Python能够实现用户飞速增长,背后其实另有玄机. 就让我们从近年来大数据的兴起说起,为你娓娓道来Python火爆的真正原因. 郁闷的大数据程序员 随着大数据的崛起,大多数行业发现自己进入了一种恐慌状态:他们花费了大量的时间和金钱来建立他们的大数据渠道,但是他们的投资回报率却很低.在毫无喘息机会的竞争中,虽然能够挖取到日益增长的数据,但

Python实现全角半角转换的方法_python

本文实例讲解了Python实现全角半角转换的方法,相信对于大家的Python学习能够起到一定的参考借鉴价值.如下所示: 一.全角半角转换概述: 全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E) 半角字符unicode编码从33~126 (十六进制 0x21~ 0x7E) 空格比较特殊,全角为 12288(0x3000),半角为 32 (0x20) 而且除空格外,全角/半角按unicode编码排序在顺序上是对应的 所以可以直接通过用+-法来处理非空格

14亿用户数据泄露,原因竟是垃圾邮件!

本文讲的是14亿用户数据泄露,原因竟是垃圾邮件!, 事件回顾 3月3日,MacKeeper 的安全研究人员Chris Vickery发布Twitter称在美国当地时间3月6日将公布一起"14亿身份信息泄露案". 3月4日,Vickery又在推文中将潜在泄露数据精确到了13.7亿.     据悉,这近14亿条记录的数据库内包含真实姓名.iP地址以及家庭住址等,可能会成为今年最大的数据泄漏事件.而最令人担忧的是,你和你的家人可能都会受到此次数据泄漏事件的影响. 此外,国外媒体还曾对泄密企业

挨踢圈【IT】怪像:全宇宙最大~!

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 全宇宙最大?怪木西西看到这么名号之后,唏嘘不已,恨不得把自己钛合金狗眼扣下来扔地下踩两脚,看看我是不是看错了;恨不得把自己耳朵撕到脚后跟上,试试自己是不是听错了.入行久了,终于明白了其中的深意,原来如此: 好,我们书归正传,各位看官,请听怪木西西娓娓道来: 各位请看,这是包青天身边的御前第一侍卫展昭: 请各位睁大眼睛,没错,是她是她就是她,假

2010年IPO被否全调查:独立性成首要原因

21世纪经济报道 苏江 上海报道 刚刚过去的2010年,虽然中国股市的二级市场表现并不尽如人意,但一级市场方面无论从项目数量还是从融资额来看A股IPO(首次公开发行)在全球范围内异常引人瞩目. 来自普华永道的数据显示,2010年全年349宗IPO和约4780亿元的融资额使得中国大陆成为当年全球最大的融资市场,这得益于自2009年IPO重启以来中国证监会对于IPO超乎以往的飞速审核节奏. 据记者不完全统计,2010年中国证监会对合计405家拟上市公司进行IPO审核,其中发审委对230家拟登陆沪市主

Python爆红的六大原因

无论你是否清楚这个事实,Python实际上已经不是一门年轻的编程语言了.虽然它也不如其它一些语言那么年长,但它仍然比大部分人所想的要更老一些.它第一次发布的时间是在1991年,虽然这些年它也经历了相当大的改变,但它现在的用处跟当时并没有什么差别. 实际上,这只是它最近这些年变得流行的原因之一:它是一个面向企业和第一流项目的.基于生产的语言,而且它有着长久的历史.它可以被用做几乎任何事情,这也是它被认为是"多功能"的原因.你既可以创建一个树莓派应用,又可以用Python来写桌面程序的脚本

使用Python转换全角字符串为半角

关于全角转换为半角的问题,其实源自在公司的运营人员在输入法切换的时候选择了全角,结果导致程序有时候没有办法进行解析. 为了避免这样的问题再次出现,于是就有了将全角转换为半角的问题了. 在这里,会对以下内容进行描述: 什么是全角 如何将全角字符转换为半角 使用python实现上述转换操作 我们知道在编码中,存储在计算机中仅仅是1个数字,而编码其实充当的是1种转换的过程,如果将1个字符转换为1个数字而问题. 全角和半角 一般情况下,普通的英文字符只占用1个字节的空间,而1个字节有8位,因此可以存储2

排名点击器是否成为百度大规模K站的首要原因

近期太原SEO一直在和SEO朋友们在谈论这两天百度大规模K站,这也是至6月22号百度大更新之后的又一新动作,从A5和一些大网站调查中显示75%的站长网站都被K掉了,而Chinaz数据风向标中也在显示近期被惩罚的站点急剧增加,到底是何原因引起这次大规模K站的呢?太原SEO个人认为是软件操作惹的祸.   众所周知无论是百度还是其他的搜索引擎对于用户体验都是非常重视的,都是一切以用户为中心,当然.你作为一个站长或者网络公司做网站也因一用户出发,当然.这一举动也引起了软件工程师们的兴趣,从而各种操作百度

Python中文全详解

1.        在python中使用中文 在python中有两种默认的字符串:str和unicode.在python中一定要注意区分"unicode字符串"和"unicode对象"的区别.后面所有的"unicode字符串"指的都是python里的"unicode对象". 事实上在python中并没有"unicode字符串"这样的东西,只有"unicode"对象.一个传统意义上的uni