Python的诞生

发明 Python 的动机

Guido 大学毕业后加入了 CWI ,CWI 是荷兰的一家研究中心,它由荷兰政府教育部和其他研究基金资助,对计算机科学和数学进行学术级的研究。在 CWI 中,Guido 参与了 Amoeba 项目。Amoeba 项目是由 Andrew Tanenbaum 负责,CWI 和 Vrije Universiteit Amsterdam 两所机构共同参与开发的基于微内核的分布式系统。

在 Amoeba 项目中,Guido 发现用 C 语言开发系统管理程序所花费的时间太长了,而且因为 Amoeba 是一个全新的底层操作系统实现,导致了和原有的 Bourne shell 不兼容,在 Bourne shell 中无法执行 Amoeba 项目中的一些程序。这些原因让 Guido 意识到它需要一个能够弥合 C 和 shell 之间鸿沟,更高抽象级别、更加简单的编程语言去完成工作任务。

于是 Python 诞生了。

同样的 Guido 也在文章中解释了为什么选择造轮子发明 Python,而不是移植其它编程语言 ?那是因为当初并没有其它编程语言可以完成这些任务。

为什么 Python 要叫 Python ?

Python 的中文是“蟒蛇”的意思,而且 O’Reilly 出版社也用蟒蛇图片作为了 Python 相关书的封面(O’Reilly 非常喜欢用动物图片去作为其出版物的封面),平时看过的一些关于 Python 文章想当然的认为 Python 这门语言与蟒蛇关联上了,但实际上 Guido 并不喜欢将 Python 与蛇关联上。

For many years I resisted attempts to associate the language with snakes.

Guido 使用 Python 这个名字的灵感来源于他喜欢的一个马戏团的名字 Monty Python,并且他认为使用 Python 更具有 IT 行业一贯以来的不拘一格的个性。也符合编程语言的名称来源于名人的名字的习惯。

The word “Python” was also catchy, a bit edgy, and at the same time, it fit in the tradition of naming languages after famous people, like Pascal, Ada, and Eiffel.

Guido 眼里的 Python 是什么样的?

Guido 在博客的开篇便提起了他所认为的 Python 是什么样的一门语言,从中摘抄几个核心设计点:

Python 大量的采用了 C 语言里面的设计,比如 if、else 等关键字都直接来源 C 语言。但是放弃了 C 语言的大括号和分号,选择了缩进去区分不同的编程语句。

Python 是一门动态语言,不像 C 语言一样需要预先声明变量和指定变量类型,,因此 Python 里的变量只是所引用对象的名称,并且也可以在程序运行时改变变量类型。

Python 内置了大量的数据类型,包括布尔(Boolean)、数字(Number)和字符串(String)等,这些类型都是不可变的。除此以外还有像列表、元组和字典这种容器型的数据类型。

为了程序的模块化,Python 引入了包(packages)、模块(modules )、类、方法和函数。为了流程控制,Python 提供了 if/else、while 和可迭代的实例。为了处理程序异常,Python 使用了 Exception 语法,raise 关键字可以抛出异常(exception),try/except/finally 可以处理异常。

Python 的所有对象都是一等对象,这意味着函数、类、方法、模块和所有的其他对象都可以在运行时自由地传递,并放入在各种数据结构(例如列表或字典)中去。

同样的,Python 还支持面向对象编程。

除了自身特性外,Python 还拥有着大量的标准库和第三方库,方便使用者完成各种各样的需求。

最后,Python 的标准实现使用 C 语言实现的,但是 Python 不仅仅局限于 C 语言,它也可以用 Java(Jython)、Microsoft .NET(IronPython),甚至是 Python 自己实现(PyPy)。

你可能感兴趣的:(Python的诞生)