Python的起源 - 二十年前的故事
01. 前言
Python现在是一门非常流行的语言,在编程语言流行排行榜上,长期进入前三名,使用非常普遍。
凡事有果必有因,那么大家有没有思考过Python为什么受欢迎么?
那么我们就从源头上来说说这个事情。
02. Python - ABC编程语言的替代者
Python设计的初衷就是用来替换ABC编程语言,作为Pyer我们先来一窥ABC语言的模样。
(1) ABC语言设计初衷
ABC语言是在NWO【荷兰科学研究组织】旗下CWI【数学与计算机科学国家研究所】的 Leo Grurts,Lambert Meertens,Steven Pemberton主导研发一种交互式,结构化高级语言,旨在替代BASIC,Pascal等语言,用于教学及原型软件设计。
从这里可以看到ABC语言的设计目的:
用于教学目的
软件的原型设计
(2) ABC语言的特点
同时,ABC语言的代码量通常为Pascal或者C语言程序的四分之一,并且具备更强的可读性,有以下特点:
只有五种基本数据类型
不需要变量声明(动态变量)
明确支持自上而下的编程
语句嵌套由缩进来表示
精度,列表,字符串均无限制
(3) ABC语言的一个小Sample
HOW TO RETURN words document: PUT {} IN collection FOR line IN document: FOR word IN split line: IF word not.in collection: INSERT word IN collection RETURN collection
这是一段统计文本中出现词的总数的小程序,你有没有觉得和Python的风格非常像哦,所以老子的基因刻在了儿子的身上,并发扬光大。
03. Python - 由大师来创造
(1) Python之父
Python的作者,Guido von Rossum,荷兰人。1982年,阿姆斯特丹大学毕业,获得数学和计算机硕士学位。
尽管他算得上是一位数学家,但他更加享受计算机带来的乐趣。用他的话说,尽管拥有数学和计算机双料资质,他总趋向于做计算机相关的工作,并热衷于做任何和编程相关的活儿。
Guido希望有一种语言,这种语言能够像C语言那样,能够全面调用计算机的功能接口,又可以像shell那样,可以轻松的编程。ABC语言让Guido看到希望,另外Guido van Rossum于20世纪80年代曾在ABC系统开发中工作了数年,他很清楚ABC的优点和不足,这些都为Python的诞生创造了条件。
(2) Python的诞生
1989年,为了打发圣诞节假期,Guido开始写Python语言的编译/解释器,参考了ABC语言,并取长补对。Python来自Guido所挚爱的电视剧Monty Python's Flying Circus -- 巨蟒剧团之飞翔的马戏团。
两年后,第一个Python编译器(同时也是解释器)诞生。它是用C语言实现的,并能够调用C库(.so文件)。从一出生,Python已经具有了:类(class),函数(function),异常处理(exception),包括表(list)和词典(dictionary)在内的核心数据类型,以及模块(module)为基础的拓展系统。
最初的Python logo设计,是由Guido的兄弟Just von Rossum设计。
(3) Python的发展
最初的Python完全由Guido本人开发。Python得到Guido同事的欢迎。他们迅速的反馈使用意见,并参与到Python的改进。Guido和一些同事构成Python的核心团队。他们将自己大部分的业余时间用于hack Python (也包括工作时间,因为他们将Python用于工作)。随后,Python拓展到CWI之外。
Python将许多机器层面上的细节隐藏,交给编译器处理,并凸显出逻辑层面的编程思考。Python程序员可以花更多的时间用于思考程序的逻辑,而不是具体的实现细节 ,这一特征吸引了广大的程序员,Python开始流行。
上面这个图表明了Python各个版本的发展历史和路线。今天Python已经进入到3.0的时代。由于Python 3.0向后不兼容,所以从2.0到3.0的过渡并不容易。另一方面,Python的性能依然值得改进,依然是一个在发展中的语言,未来可期。
04. Python - 前进的方向
“简洁而优雅” - 是我对Python的评价。
Python从其他语言中吸收了很多优点,例如ABC、C、Perl等语言。比如Python标准库中的正则表达(regular expression)是参考Perl,而lambda, map, filter, reduce函数参考Lisp,Python本身的一些功能以及大部分的标准库来自于社区开发者的贡献。
而如今,Python在自动化测试、机器爬虫、Web开发大数据、机器学习、人工智能领域都在大展拳脚。
05. 更多内容
原文来自兔子先生网站:https://www.xtuz.net/detail-126.html