购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 Python是位“年轻的老同志”

Python语言起源于1989年末,当时CWI(荷兰国家数学与计算机科学研究中心)的研究员Guido van Rossum需要一种高级脚本编程语言,为其研究小组的Amoeba分布式操作系统执行管理任务。为创建新语言,他从高级数学语言ABC(ALL BASIC CODE)中汲取了大量语法,并从系统编程语言Modula-3中借鉴了错误处理机制。他把这种新的语言命名为Python(大蟒),Python来源于BBC当时正在热播的喜剧连续剧Monty Python’s Flying Circus,他希望这个新的叫作Python的语言能符合他的理想:处于C和Shell之间,且功能全面、易学易用、可拓展。

1991年,第一个Python编译器诞生了。它是用C语言实现的,能够调用C语言的库文件。从一出生,Python就具有类、函数、异常处理、包含表和词典在内的核心数据类型,以及以模块为基础的拓展系统。

Python语法大多来自C语言,却又受到ABC语言的强烈影响。一方面,ABC语言的一些语法规定直到今天还有争议,如强制缩进。不过,这些语法规定让Python更容易阅读。另一方面,Python聪明地选择了服从一些惯例,特别是C语言的惯例,如回归等号赋值。Guido认为,基于常识确立的内容,没有必要过度纠结。

Python从一开始就特别在意可拓展性,它可以在多个层次上拓展。在高层可以直接引入.py文件,在底层可以引用C语言的库。Python程序员可以快速地使用Python写.py文件作为拓展模块。但将性能作为考虑的重要因素时,Python程序员可以深入底层写C程序,并将其编译为.so文件引入Python中使用。这就像使用钢结构建房一样,先规定好大的框架,然后由程序员在此框架下相当自由地进行拓展或更改。

Python的核心开发者和使用者最开始只有Guido和他的同事,后来才逐渐扩展到团队外。Python早期通过邮件列表来进行交流和开发,用户将改动发给Guido,由他来决定是否将这些新特性添加到Python中,由于Guido拥有至高无上的决策权,因此他被称为“终身的仁慈独裁者”。随着社区的发展壮大,Python的开发逐渐转为开源的方式,遵循GPL(General Public License)协议并通过一套PEP文档审核流程来合作开发。从此,Python的开发工作由社区大部分人分担,但Guido作为核心开发者,仍决定着Python的发展方向。

以下是Python版本发展过程中的重要时间点。

(1)1989年圣诞节,Guido von Rossum开始写Python语言编译器。

(2)1991年2月,第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面又出现了用Java和C#实现的版本—Jython和IronPython,以及PyPy、Brython、Pyston等其他实现),可以调用C语言的库函数。在最早的版本中,Python已经提供了对“类”“函数”“异常处理”等构造块的支持,同时提供了“列表”“字典”等核心数据类型,另外还支持以模块为基础的扩展系统。

(3)1994年1月,Python 1.0正式发布。

(4)2000年10月16日,Python 2.0发布,增加了垃圾回收功能,并且支持Unicode。与此同时,Python的整个开发过程更加透明,社区对开发进度的影响逐渐扩大,生态圈开始慢慢形成。

(5)2004年11月30日,Python 2.4发布,是Python 2.x的经典实用版本。2005年,Python中流行的开发框架Django发布。

(6)2008年12月3日,Python 3.0发布,此版本不完全兼容之前的Python代码,不过很多新特性后来也被移植到旧的Python 2.6/2.7版本中,直到现在还有公司在项目和运维中使用Python 2.x版本的代码。

(7)2008年10月,Python 2.6发布。随后,增加了许多兼容Python 3的语法,和后来发布的Python 2.7成为Python 2.x的过渡版本。

(8)2010年7月,Python 2.7发布。同年,Python中流行的Flask框架发布,该框架一经发布便以简单、自定义的特性迅速“蹿红”,现在已与Django共同成为Python语言中最受欢迎的两大Web框架。

(9)2014年4月,Guido宣布Python 2.7的技术支持时间延长到2020年,且不会再有Python 2.8了。

(10)2016年12月,Python 3.6发布。

(11)2018年12月,Python 3.7.2rc1发布,这是截至本书写作时Python 3.x分支的最新版本。

温馨提示:Python的版本号规则

Python的版本号分为三段,形如A.B.C。A表示大版本号,一般当整体重写或出现不向后兼容时增加A;B表示功能更新,出现新功能时增加B;C表示小的改动(如修复了某个Bug),只要有修改就增加C。

截至2019年6月,Python在TIOBE语言排行榜上跃居第三名,且还有继续上升的趋势,如图1-1所示。

图1-1 截至2019年6月的TIOBE语言排行榜 CHTFiH6m5yIwcmytfSlCgddIZlSeHr6Qv+pZeMnABZXpRl6MkhQoBcHPd1Uh064k

点击中间区域
呼出菜单
上一章
目录
下一章
×