python的诞生
1991年,第一个python编译器(同时也是解释器)诞生。它是用c语言实现的,并能够调用c库(.so文件)。从一出生,python已经具有了:类(class),函数(function),异常处理(exception),包括表(list)和词典(dictionary)在内的核心数据类型,以及模块(module)为基础的拓展系统。
guido希望有一种语言,这种语言能够像c语言那样,能够全面调用计算机的功能接口,又可以像shell那样,可以轻松的编程。abc语言让guido看到希望。abc是由荷兰的cwi (centrum wiskunde & informatica, 数学和计算机研究所)开发的。guido在cwi工作,并参与到abc语言的开发。abc语言以教学为目的。与当时的大部分语言不同,abc语言的目标是“让用户感觉更好”。abc语言希望让语言变得容易阅读,容易使用,容易记忆,容易学习,并以此来激发人们学习编程的兴趣。
相关推荐:《python视频教程》
python与c
python语法很多来自c,但又受到abc语言的强烈影响。来自abc语言的一些规定直到今天还富有争议,比如强制缩进。但这些语法规定让python容易读。另一方面,python聪明的选择服从一些惯例(特别是c语言的惯例)。比如使用等号赋值,使用def来定义函数。guido认为,如果“常识”上确立的东西,没有必要过度纠结。
python从一开始就特别在意可拓展性(extensibility)。python可以在多个层次上拓展。从高层上,你可以引入.py文件。在底层,你可以引用c语言的库。python程序员可以快速的使用python写.py文件作为拓展模块。但当性能是考虑的重要因素时,python程序员可以深入底层,写c程序,编译为.so文件引入到python中使用。python就好像是使用钢构建房一样,先规定好大的框架。而程序员可以在此框架下相当自由的拓展或更改。
最初的python完全由guido本人开发。python得到guido同事的欢迎。他们迅速的反馈使用意见,并参与到python的改进。guido和一些同事构成python的核心团队。他们将自己大部分的业余时间用于hack python (也包括工作时间,因为他们将python用于工作)。随后,python拓展到cwi之外。python将许多机器层面上的细节隐藏,交给编译器处理,并凸显出逻辑层面的编程思考。python程序员可以花更多的时间用于思考程序的逻辑,而不是具体的实现细节 (guido有一件t恤,写着:人生苦短,我用python)。这一特征吸引了广大的程序员。python开始流行。
python的发展
到今天,python的框架已经确立。python语言以对象为核心组织代码(everything is object),支持多种编程范式(multi-paradigm),采用动态类型(dynamic typing),自动进行内存回收(garbage collection)。python支持解释运行(interpret),并能调用c库进行拓展。python有强大的标准库 (battery included)。由于标准库的体系已经稳定,所以python的生态系统开始拓展到第三方包。这些包,如django, web.py, wxpython, numpy, matplotlib,pil
python从其他语言中学到了很多,无论是已经进入历史的abc,还是依然在使用的c和perl,以及许多没有列出的其他语言。可以说,python的成功代表了它所有借鉴的语言的成功。同样,ruby借鉴了python,它的成功也代表了python某些方面的成功。每个语言都是混合体,都有它优秀的地方,但也有各种各样的缺陷。同时,一个语言“好与不好”的评判,往往受制于平台、硬件、时代等等外部原因。
以上就是python底层是用c写的吗的详细内容。
