前言
大家好,我叫橘子皮,一个软件开发小白,最近发现身边人都在卷,感觉很慌,自己也要发奋图强一波。Python这门语言,很久以前我就听说过,但个人感觉Python的发展很乱,没有什么稳定版本可以普适现有大部分代码,因此放弃了对这门语言的学习。近几年,Python语言在各个领域的发展,出现欣欣向荣的趋势,我也不能免俗,希望通过最近一段时间,让自己入坑这门语言。
一、Python介绍
欲学语言,先看历史,就算最后没学成,至少可以拿这点知识量,去装装X。当然这是玩笑,任何一门风靡世界的语言,都有一个坎坷波折的发展历史。我以前学其他语言的时候,总有一个感觉,我是来吃干货的,它的发展历史,关我毛事,然后直接去B站搜个点赞量、浏览量、评论量最多的视频,二倍速起飞。但是学到后面,总感觉好像少了点什么,就好像一个在闷头跑步的人,撞到树才抬一下头,然后绕一下,继续跑。后来,才理解自己可能少了一些对这门语言,全面的预览,这个预览不是具体知识体系的思维导图,而是缺少对语言发展历史的认识。任何一门语言的诞生,肯定都是为了应对一个十分特定的场景,后续因为它在某一方面优秀的性能表现,才被发扬广大。过程中,语言的创造者和继承者,早期必然有考虑不周的情况,需要后继者不断完善、优化,最后才成为现在的样子,我直接吃了现成的,肯定缺少了他们的思考过程,无法体会这其中的良苦用心。接下来,追一波Python的发展历史吧。
1、Python诞生历史
这种发展历史,早就有大神在网上总结的非常好了,我就直接Google、baidu了一波。根据维基百科和知乎大神的分享,总结了一下。
Python是在1980年代后期所构思出来的,并在1989年12月由荷兰CWI(数学和理论计算机科学领域的研究中心,位于阿姆斯特丹)的吉多·范罗苏姆开发了第一个版本。范罗苏姆在CWI的主要工作是为ABC语言(一个为编程初学者打造的研究项目)贡献代码。因此Python继承了ABC编程语言的诸多特性,如字符串、列表和字节数列都支持索引(不太懂)、切片排序(没怎么听说过)和拼接操作(这个倒是懂v),能够处理异常,并与阿米巴操作系统(感觉是早期操作系统)交互运作。范罗苏姆是Python的主要贡献者,他在决定Python发展方向上扮演着重要角色,这也反映在Python社区给他的头衔:终身仁慈独裁者(有点怪,这算是夸吗?~),不过范罗苏姆于2018年7月12日卸任了Python研发的领导者。
1991年,Python的第一个解释器(解释器,这个值得关注一波,说明Python语言是一门解释型语言,这里可能需要一个小便签说明一下,啥是解释型语言,啥是编译性语言)诞生。解释器主要由C语言实现,大部分语法来自于C语言(哦哦哦,还好我会一些C语言),也受到了ABC语言(完犊子,这个听都没听过)的影响。
编译型语言:使用编译器来编译执行的编程语言,这类语言往往会花费较长的编译时间,但编译完成后,会有很好的运行性能;因此,这类语言编写的程序每次修改都要再次经历一遍完整编译过程后,修改效果才能生效,迭代时间会比解释型语言要长。
代表语言:C、C++
解释型语言:使用解释器来解释执行的编程语言,这类语言不需要编译,程序执行到了,解释器才会去解释对应的语句,这类语言更多的时间花费在了运行期间;但是这类语言编写的程序的修改迭代不要经历漫长的编译过程,效果能够很快生效;这类语言由于没有经历编译过程,所以即便是语法错误,也得等到运行期间才会被发现。
代表语言:PHP、Python、Ruby
1994年1月,Python1.0版本发布,这个版本的主要功能包括:lambda, map, filter和reduce,但范罗苏姆似乎并不喜欢这个版本。
2000年10月,Python2.0版本发布,具有许多新特性,包括用于存储器管理的循环检测垃圾回收器(除了引用计数之外)以及对Unicode的支持。不过,Python最重要的变化是开发过程的本身,具有转向更加透明、以及Python社区强大的技术支持。
2008年12月,Python3.0版本发布,一个向后不兼容版本(what? 这不是要我死嘛,我岂不是要学两套,一会看看到底有多少不同,呜呜呜~),许多主要功能也被向后移植到向后兼容的Python 2.6以及2.7版本,尽管这种Python 3.0向后移植的方法目前不怎么受支持