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

Python的起源

06. 参考资料

(0)

相关推荐