当前位置: 首页 > 后端技术 > Python

Python快速成长的三大历史机遇

时间:2023-03-26 13:18:49 Python

很多不熟悉Python的人都认为Python这几年的崛起只是运气。本文帮助大家回顾Python近十年的三大成长以及对应的历史背景。Python设计的特点包括易于学习和使用,以及作为胶水语言。易学易用是一个很难量化的东西,但至少我的大多数朋友都认为Python比大多数语言更易学易用。有些人不认同Python,他们通常不认为Python比其他语言难学,而是认为Python运行速度慢,或者是动态类型语言的通病。至于胶水语言,就比较狭隘了。专门为胶水设计的语言很少。在我的印象中,只有Lua可以算是一个。Python相对于其他语言的另一个优势是字符串处理。下面分别介绍Python发展的三个契机。2006年的Search/NLP:2006年左右恰好是搜索引擎公司发展的爆发期。那一年,谷歌中国的李开复推出了关门弟子计划,百度也做了很多广告,比如百度知道中文系列。在那个年代,搜索引擎是IT行业的高科技。不久之后,阿里巴巴还成立了ASC(阿里巴巴搜索技术研究中心),多次顺应潮流更名,一直是阿里巴巴内部最前沿的研发部门。Python被用作搜索引擎和NLP的历史由来已久。谷歌在1990年代早期开发的搜索引擎爬虫是使用Python实现的。而且即使是现在,开发爬虫的时候,Python也基本上是首选。很多人学习Python的入门程序也是爬虫。Python适合开发爬虫的关键在于Python的字符串处理非常方便。也就是说,从2006年底开始,国内的python-cn邮件列表就涌入了大量新人,开始以爬虫为例深入学习Python。2010年的WEB创业浪潮:从2010年开始,国内外掀起了一股新的创业浪潮,大家纷纷开发各种网站。就此时的WEB开发而言,Python逐渐成为主流的WEB服务器开发选择之一。与同时代的Java、PHP等相比,在开发效率上具有优势。正是因为早期的创业需要快速迭代和试错,所以这个时代的Python成为了一个不错的选择。然后让更多的工程师开始学习Python。也正是从这个时期开始,越来越多的公司会公开招聘Python工程师。Python工程师的广告在过去非常非常少见。2014年的深度学习:在2014年开始流行的深度学习方面,Python的优势几乎是绝对的。深度学习的主流开发语言只有C++和Python。其他语言可以认为这里没有像样的空间。所有主流的深度学习框架也都官方直接提供了C++和Python的接口。由于C++开发的难度,确实有很多实践工程师直接使用Python来完成深度学习的相关步骤。Python成长的这段时间,被更多不懂Python的人认为是Python的狗屎运。但背后的逻辑是非常扎实的。原因是Python是一种很好的粘合剂。最初的起点是numpy库。numpy是一个封装了BLAS的科学计算库。BLAS是一个高度优化的CPU向量指令集数学运算库。通过BLAS进行科学计算可以获得顶级的计算性能,比没有针对向量指令集优化的C程序快数倍。numpy还有一个重要的特点就是对buffer进行了封装,使得buffer的内容不需要Python去处理,而是实际交给了具体的软件库来处理。numpy只负责维护缓冲区的生命周期、形状等元素。数据。这使得numpy的计算性能不受Python的影响,同时又可以利用Python易学易用的特点来管理缓冲区的生命周期。numpy对buffer的管理带来的易用性优势在后面得到了很大的发展。如以下几点:OpenCV:在opencv-python中,使用numpy.array来管理图像数据,但不像C++接口那样使用Mat。同样的顶级性能。PyCuda/PyOpenCL:同样使用numpy.array透明传输数据到GPU进行高性能计算。尤其是集成了JIT,使得内核函数可以以字符串的形式传递,不再需要像C++那样独立编译。Caffe/TensorFlow:也利用了numpy.array,利用了PyCuda/PyOpenCL的整合。所以一路上发现,Python是一个很好的胶水,在整个过程中它真的把几个有用的库粘在一起了。它在流程集成上是顶级的表现,没有Python的性能损失,同时带来非常好的易用性。与其他语言相比,这些C/C++库的玩法是先封装一层对象,封装准封装前后不匹配。而且因为大多数语言都不是为胶水设计的,所以开发C接口很困难。自然地,与这些高性能计算库的集成是困难的。累积起来,与Python有差距。以上就是本次分享的全部内容。想了解更多python知识,请前往公众号:Python编程学习圈,发“J”免费领取,每日干货分享