Python的知名度这些年是越来越高了,各个招聘网站的不同岗位都有要求熟悉Python语言的,而且对于运维岗位来说,似乎已经成了必不可少的工具类编程语言。那么Python到底是怎样的一种语言呢?
Python是一种跨平台的计算机程序设计语言, 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,目前已经越来越多的被用于独立的、大型项目的开发。其应用已经广泛涉及到各个领域,主要包括Web 和 Internet开发、科学计算和统计、人工智能、桌面界面开发、后端开发、网络爬虫等等。
起源
1989年,在荷兰阿姆斯特丹的圣诞节期间,一名走出象牙塔七年的计算机宅男无聊的看着外面白茫茫的世界,感觉是如此的无趣。这位宅男就是吉多·范罗苏姆(Guido van Rossum),他决心开发一个新的脚本解释程序,以便度过这无聊的圣诞节,而这个新的脚本解释程序就是十余年后享誉世界的Python。而Python语言也在未来成就了吉多·范罗苏姆,使其加入了Google,还被美国计算机协会(ACM)认定为著名工程师,并获得了由自由软件基金会颁发的2001年自由软件进步奖。而最大的荣誉就是——Python之父。
吉多·范罗苏姆(Guido van Rossum)
当时的吉多·范罗苏姆任职于荷兰国家数学和计算机科学研究所,正在参加设计一种被称之为ABC的教学语言,而Python的设计,就是其基于ABC教学语言,并采用开放的原则,遵循 GPL(GNU General Public License)协议,结合了Unix shell和C的习惯创立出来的。而之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森的飞行马戏团》(Monty Python’s Flying Circus)。
吉多·范罗苏姆开发时总的指导思想是,对于一个特定的问题,只要有一种最好的方法来解决就好了。而在具体设计上坚持了清晰划一的风格,这使得Python成为一门易读、易维护,并且被大量用户所欢迎的、用途广泛的语言。
发展
最初的 Python 完全由 Guido 本人开发。然而此后他的同事迅速爱上了这门新语言并不断反馈使用意见,参与到 Python 的改进中。于是 Guido 和一些同事构成 Python 的核心团队。
1991年,第一个 Python 编译器(解释器)诞生,C语言实现,并能够调用C库(.so 文件)。与此同时,第一个Python公开发行版也正式发行。从一出生,Python已经具有了:类,函数,异常处理,包括表和词典在内的核心数据类型,以及模块为基础的拓展系统。 Python将许多机器层面上的细节隐藏,交给编译器处理,并凸显出逻辑层面的编程思考,这使得程序员可以花更多的时间用于思考程序的逻辑,而不是具体的实现细节。这一特征吸引了广大的程序员,使得Python开始迅速流行起来。
Python从出世到2.0版本的正式发布,经历了整整十年时间。Python 2 于2000年10月16日发布。从 Python 2.0 开始,Python也从 MailList 的开发方式,转为完全开源的开发方式。社区气氛已经形成,工作被整个社区分担,Python 也获得了更加高速的发展。 其后的时间,Python不断进行小版本的迭代,最终发展到了稳定的2.7版本。这期间也同时是Python在全球应用上的大扩张时期。
2018年3月,Python之父吉多·范罗苏姆在邮件列表上宣布,Python 2.7将于2020年1月1日终止支持。用户如果想要在这个日期之后继续得到与Python 2.7有关的支持,则需要付费给商业供应商。Python 2.7 被确定为最后一个 Python 2.x 版本,它除了支持 Python 2.x 语法外,还支持部分 Python 3.1 语法。如今 Python 已经进入到 3.0 时代,由于 Python 3 向后不兼容,所以从 2.0 到 3.0 的过渡并不容易。
2008年12月3日,Python 3.0正式发布,在之后已经经历了多个小版本的迭代,目前最新稳定版本为Python 3.9,已经可以测试3.10版本。
现在 Python 是由一个核心开发团队在维护。而就是在2020年11月,Python 之父 吉多·范罗苏姆宣布加入 Microsoft 的 DevDiv Team,但其依然关注 Python 的发展。在 Python 社区,他被人们认为是“仁慈的独裁者”,意思是他仍然关注 Python 的开发进程,并在必要的时刻做出决定。
发展到今天,Python语言已经具有了丰富和强大的库,这也体现了其极强的可扩展性。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联接在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。
应用
Python 从一开始就特别在意可拓展性,这使得 Python 可以在多个层次上拓展。从高层上,可以引入 .py 文件;在底层,可以引用C语言的库。Python 程序员可以快速的使用 Python 写 .py 文件作为拓展模块。但当性能是考虑的重要因素时,Python 程序员可以深入底层,写C程序,编译为 .so 文件后再引入到 Python 中使用。Python 就好像是使用钢构建房一样,先规定好大的框架,而程序员可以在此框架下相当自由的拓展或更改。
由于Python语言的简洁性、易读性以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python来教授程序设计课程。例如卡耐基梅隆的编程基础、麻省理工学院的计算机科学及编程导论就使用Python语言讲授。
众多开源的科学计算软件包都提供了Python的调用接口,例如著名的计算机视觉库OpenCV、三维可视化库VTK、医学图像处理库ITK。而Python专用的科学计算扩展库就更多了,例如如下3个十分经典的科学计算扩展库:NumPy、SciPy和matplotlib,它们分别为Python提供了快速数组处理、数值运算以及绘图功能。
因此,Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。在大量数据的基础上,结合科学计算、机器学习等技术,对数据进行清洗、去重、规格化和针对性的分析是大数据行业的基石。Python就是数据分析的主流语言之一。
另外,Python也作为大数据行业获取数据的核心工具,用其开发的网络爬虫是相当的高效。没有网络爬虫自动地、不分昼夜地、高智能地在互联网上抓取免费的数据,那些大数据相关的公司恐怕要少四分之三。能够编写网络爬虫的编程语言有不少,但Python绝对是其中的主流之一,其Scripy爬虫框架应用非常广泛。
而在自动化运维领域,几乎是Python应用的自留地,作为运维工程师首选的编程语言,Python在自动化运维方面已经深入人心,比如Saltstack和Ansible都是大名鼎鼎的自动化平台。
结语
Python 是一门简洁而又强大的编程语言。相信即使是刚接触编程的同学也一定听说过「人生苦短,我用 Python(Life is short. You need Python.)」这句话。
今天,Python 的框架已经确立,以对象为核心组织代码,支持多种编程范式,采用动态类型,自动进行内存回收等等。另外,由于标准库的体系已经稳定,所以Python的生态系统已经开始拓展到第三方包。但是,Python 的性能依然值得改进,它的运算性能仍低于 C++ 和 Java。可以说 Python 依然是一个在发展中的语言,它还有着更加值得期待的未来。
在应用方面,目前人工智能越来越火,Python 凭借其扩展性强、第三方库丰富和免费开源等特点,在机器学习、数据挖掘、人工智能等领域有着很大优势,前景非常值得期待。