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

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

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提交,被认可,实施。

受益于PEP 3118的实现,Python已悄然成为一个非常吸引人的编译语言。在此基础上,就有了很多基于C语言扩展的数字计算库被开发出来。

Python和Ruby在网络上一决雌雄,大多数人认为“Web开发语言之战”必有分晓。

随着磁存储设备价格暴跌,存储大量数据以供日后分析变得可行。

对新一代程序员的需求发生变化:具有统计学背景,最好还得有应用数学背景的,且先前有过一些编程经验的程序员开始被哄抢——数据科学家的时代来临了!

数据科学家们想寻找一种既具有表现力又快速的语言,所有的这些需求都指向于Python。

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

缓冲协议才是Python风靡全球的主要原因相关推荐

  1. 为何webpack风靡全球?三大主流模块打包工具对比

    小编说:前端项目日益复杂,构建系统已经成为开发过程中不可或缺的一个部分,而模块打包(module bundler)正是前端构建系统的核心.Webpack能成为最流行的打包解决方案,并不是偶然.webp ...

  2. 艾永亮:回力鞋生死的92年,风靡全球后没落,如今成功逆袭

    当国内运动品牌李宁.安踏正在努力转型成功并小有成就时,有一款老牌国产运动鞋早已掀起了一阵热潮,它就是回力.其实回力的销量早在2015年开始就以超过20%的速度递增,到了2018年销量更是达到了8000 ...

  3. 从风靡全球到风口,Tiktok是如何做到的?

    大家好,我是瑞卡迪电子商务.我们是从2019年下半年就注意到了TikTok的风口,并在2020年初,团队就开始投入TikTok的运营及商业变现.从2019年起,围绕TikTok一系列的产品功能迭代和商 ...

  4. 风靡全球的GANs:一文看尽这“混世魔王”的“三生三世”

    点击我爱计算机视觉标星,更快获取CVML新技术 本文转载新智元. 也许您已经了解到,当前的人工智能已经可以生成类似于人类的语音,或者生成难以与真实照片区分开的人物图像,甚至达到足以"以假乱真 ...

  5. python的功能及特点_使用Python这么多年,才发现Python还有这些实用的功能和特点...

    原标题:使用Python这么多年,才发现Python还有这些实用的功能和特点 在使用Python多年以后,我偶然发现了一些我们过去不知道的功能和特性.一些可以说是非常有用,但却没有充分利用.考虑到这一 ...

  6. 风靡全球25年的重磅IP,新作沦为脚本乐园

    纵观游戏发展史,二十世纪九十年代可谓是神作辈出,如<俄罗斯方块>.<超级马里奥世界>.<刺猬索尼克>等大作在游戏市场掀起一股又一股热潮. 而当时,RPG游戏却在激烈 ...

  7. 风靡全球的社交媒体二维码在国内正式上线啦!

    你还在为国内互联网平台之间互相屏蔽的问题而烦恼不已吗? 现在,只需要一个社交媒体二维码,就可以轻松将国内16个主流社交媒体渠道汇集在一个页面.让粉丝增长.获客引流变得更加高效和轻松. 扫描二维码之后, ...

  8. 【风靡全球年近40年的C++过时了吗?C++20来告诉大家】

    作为带有类的C的继承者,丹麦计算机科学家Bjarne Stroustrup于1982年发明了C++.1985年,发布了第一版的"C++程序设计语言".第一个标准化版本的C++在19 ...

  9. 风靡全球的英雄联盟手游,竟然没有国服,只能教你玩国际服了...

    嗨喽!各位小伙伴们,由于公众号做了乱序推送改版,为了保证公众号的推送,能够第一时间及时送达到大家手上,大家记得将我的公众号 加星标置顶 ,公众号每天会送上IT圈独有的资源 ! 上篇推文: 对不起,B站 ...

最新文章

  1. 智源论坛Live丨青年科学家线上报告会日程发布
  2. 现在的教育:感慨之一
  3. JavaScript基础13-day15【DOM增删改、DOM添加删除记录、操作内联样式、获取元素的样式、DOM Element 对象、滚动条练习、事件对象、div跟随鼠标移动、事件冒泡】
  4. 网易2019实习生Java编程题
  5. 代码环复杂度的计算公式
  6. mysql 学习笔记 多表查询02
  7. Npoi导出excel整理(附源码)
  8. Transfer-Encoding: chunked
  9. Redis 下载与安装(Windows版)
  10. 一文读懂程序化交易、算法交易、量化交易、高频交易、 统计套利的区别
  11. 设计一个RC高通滤波器或低通滤波器
  12. VMware安装流畅系统Chrome OS以及国产系统FedyOS(基于Chrome OS的二次开发)
  13. 线性代数学习笔记——第三十三讲——向量混合积的几何意义
  14. Linux普通用户执行root权限脚本且没有读写权限
  15. NOTE_网络存储-2 by 张冬
  16. java 定时器 每天凌晨_java定时器 每天凌晨 固定执行一个方法
  17. AMD提出的补丁使退出延迟降低21%左右
  18. redis:Unable to connect to localhost:6379
  19. ANSYS workbench 根据坐标施加载荷- external data载荷映射
  20. React的render不是纯函数? triggering nested component updates from render is not allowed

热门文章

  1. SpringBoot【整合JSP】
  2. 2018年全国多校算法寒假训练营练习比赛(第二场)A 吐泡泡 【模拟】
  3. python-opencv控制鼠标操作
  4. 一搜◎欢乐搜索 变相滋生垃圾邮件与病毒
  5. 与其让黑客有机可乘,不如用MCK保驾护航
  6. HTML淘宝购物车页面的实现
  7. [机缘参悟-43]:鬼谷子-第六忤合篇 - 合则聚,不合则散,顺势而为
  8. 买服务器做网站 镜像选什么,如何做网站镜像,网站镜像方法
  9. 关于手机联系人的中文字母排序问题
  10. html 转义字符对照表 部分