所有文章 > 正文

Python 30年,从无人问津到众星捧月!

作者: GCT

时间: 2019-08-15 20:54

在人工智能、大数据盛行的今天,python以其语言简单、应用范围广、投入成本低、效率高等特点深受技术公司的追捧,也因为入门门槛低,出现了全民学python的热潮。但是,在上世纪90年代初,python刚问世的几年里,因为计算机资源非常有限,那时大家都倾向于最大化榨取计算机资源并提升运算效率,显然Python与当时时代特点相悖。但是,在30年间的不断更新和技术更迭,使得Python渐渐从小众最终站上了现在谁与争锋的高度。

v1.png

今天,我们就来简单了解一下python的发展历程。

故事还要从1989年的圣诞夜说起。那时还在荷兰CWI(Centrum voor Wiskunde en?Informatica,国家数学和计算机科学研究院)工作的Guido van Rossum 为了打发无趣的圣诞假期,于是便试着开发一种新的脚本解释程序,以此来作为ABC语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是取自英国20世纪70年代首播的电视喜剧《蒙提.派森干的飞行马戏团》(Monty Python‘s Flying Circus)。Guido表示,他希望这个新的语言功能全面、易学、易用又可拓展,将其作为一种新的介于C和shell之间的一种新的语言。

v2.png

注:ABC是由Guido参加设计的一种教学语言。在Guido看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido 认为是其非开放造成的。Guido 决心在Python 中避免这一错误。同时,他还想实现在ABC 中闪现过但未曾实现的东西。就这样,Python在Guido手中诞生了。可以说,Python是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。

1991年,第一个Python编译器问世,这标志着Python的第一个版本正式诞生。Python在C语言的基础上又兼备基础的类、函数、异常处理等功能特性,可扩展是其重要特性之一。Python深受ABC语言的影响,例如来源于ABC语言强制缩进的规定本身可以让Python容易读,但如果缩进出错却会影响编译和执行。

Python以其简洁性受到当时一部分人的欢迎,Guido当时也推荐给自己的同事使用,并得到了同事们的认同,并且在使用Python的过程中给出了许多建设性的意见,Guido也积极邀请同事参与Python的建设,最初的Python研发团队也就形成了。刚开始,Python还只是在研究院内部使用,但随着功能的不断完善,Python开始走出研究院,吸引着大批的尝鲜者。但在那个计算机资源匮乏的年代,Python只能在计算机语言中作为小众的存在。

初代的Python存在着不少的缺陷。直到1994年,其工作室发布了Unicode字符编码标准,使得跨语言、跨平台等问题才得以解决。

随着Python2.0在2000年的10月16日正式发布,其语言的框架才基本确定。包括面向对象、动态类型、胶水特性、可嵌入、生态系统、解释器机制等方面。至此,Python已经成为最受欢迎的程序设计语言之一。

2008年12月,Python 3发布。Python 3相对于Python 2有较大的升级,它在设计的时候没有考虑向下兼容,所以很多早期版本的Python程序无法在Python 3上运行。从2008年开始,Python 2与Python 3是并存发展的。但在2018年3月,Guido在邮件列表上宣布Python 2.7将于2020年1月1日终止支持,这意味着之后Python 2将不再被统一维护,Python 2的时代即将过去。

v3.png

Python官网

自从2004年以后,python的使用率呈线性增长Python 3于2008年12月3日发布,不完全兼容Python 2。2011年1月,它被TIOBE编程语言排行榜评为2010年度语言。这一时期,Python继续以其独特魅力吸引更多的开发者加入,但真正让Python大放异彩的却是AI的爆发。

人工智能快速发展的今天,Python功不可没。在计算机视觉、自然语言处理、语音识别、推荐化系统以及无人驾驶等领域发挥着至关重要的作用。在近两年的各种计算机语言排行榜中,Python始终处于前三之列,有些榜单甚至长期霸占榜一的位置。国内许多学校已经将Python列入教材,各种教育机构也开始出售Python课程,而Python也已列入全国计算机二级等级考试大纲。

v4.png

今年7月计算机语言排行榜

小编也总结了几点Python盛行的原因:

1.python入门简单,没有什么较高的门槛,大家都学,导致比较容易受到关注。

2.python是很多领域的嵌入语言,如maya的脚本就是开源的。python可以方便植入到其他系统中,可以通过调用c/c++编译的动态链接库,来实现各种调用,也可以使用消息队列、通信、数据库等方法,很方便地和其他系统交互。

3.python不需要知识产权费,是开放源代码的。

4.可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用C或C++编写,然后在Python程序中使用它们。

5.可嵌入型:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。

6.丰富的库:Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。

v5.png

全球最高薪酬开发者使用的语言

Python有不少相关的库与框架,下面就来简单介绍几个。

如果正在开发一个Web应用程序并且已经选择使用Python作为构建它的语言,那么这是一个明智的选择。Python的开发成熟度,强大的库以及广泛的实际应用使其成为Web开发的必需。但也会面临一个棘手的问题,如何从众多可用的Python web框架中选择一个适合的,一般选择框架大多会会遵循安全性、可伸缩性、原生能力等。其中最常见的五个库:CubicWeb,Django,Web2py,Weppy和Zope2,采用“控件”方法,包含你可以想象的Web应用程序所需的大多数功能。还有一些其他的库,例如:Bottle、CherryPy、Falcon、Flask、Pyramid、Tornado等,提供简约的外观,交易批量和完整性,简单易用。

下表是几个常见的Python 框架:

v6.png

Python拥有众多的标准库与第三方库,让我们来简单了解几个常用的Python 库。

1.Requests.Kenneth Reitz写的最富盛名的http库。应该说每个Python程序员都会用到它。

2.Scrapy。如果你从事爬虫相关的工作,那么这个库也是必不可少的。

3.Pillow。它是PIL(Python图形库)的一个分支。是从事图像领域工作者必备的库。

4.NumPy。提供了很多高级的数学方法。

5.Pygame。2D游戏开发者“攻城拔寨”的利器。

6.wxPython。Python的一个GUI(图形用户界面)工具。

7.SQLAlchemy。一个数据库的库。

8.BeautifulSoup。xml和html的解析库。

9.Pyglet。用于3D动画和游戏开发。

10.psutil。一个跨平台库,能够实现获取系统运行的进程和系统利用率(主要用于系统监控,分析和系统资源及进程的管理。

11.IPy。辅助IP规划。

展望

现在Python已经更新到3.7版本,Python 3.8也已经有了预览版,据说在2023年左右Python 4便会问世。那么,未来Python将会如何发展呢?

从Python的核心开发人员Nick Coghlan透露的消息中我们可以看出:首先,Python的PEP流程和制度没有任何变化,通过增加新模块和功能来增强的基础能力,会加大对Python 资源的投放力度。其次,不同解释器的实现和功能扩展还将继续增强,方向包括PyPy关于JIT编译器生成和软件事务内存的尝试,以及科学和数据分析社区,对面向数组编程的探索等。

[关于转载]:本文为“AMiner”官网文章。转载本文请联系原作者获取授权,转载仅限全文转载并保留文章标题及内容,不得删改、添加内容绕开原创保护,且文章开头必须注明:转自“AMiner”官网。谢谢您的合作。

二维码 扫码微信阅读
推荐阅读 更多