Python传奇30年崛起之路

白癜风诚信为民 https://m.39.net/news/a_6185486.html

导语:一切都始于年的那个圣诞节,Python的诞生并不算恰逢其时,它崛起充满了机遇巧合,也有其必然性。三十年间,Python技术不断更迭,生态逐渐完善,加上互联网、大数据、以及人工智能这一波波浪潮的推波助澜,Python渐渐从小众最终站上了现在的高度。从历史发展的角度出发,我们才能看清Python崛起的偶然性和必然性。本文将结合技术和产业的发展,全面透析Python的演进之路,帮助读者理解是什么造就了如今的Python。

作者

宋天龙,大数据技术专家,触脉咨询合伙人兼副总裁,前Webtrekk中国区技术和咨询负责人(Webtrekk,德国的在线数据分析服务提供商)。擅长数据挖掘、建模、分析与运营,精通端到端数据价值场景设计、业务需求转换、数据结构梳理、数据建模与学习以及数据工程交付。

Python1.0时代:起源与诞生

GuidovanRossum(下面简称Guido)是Python语言之父,他于年从阿姆斯特丹大学获得了数学和计算机硕士双学位,期间他接触了很多的语言,包括Pascal,C,Fortran等。

在那个计算机资源贫乏的年代,像计算机一样思考并编程是每个程序员必须面对的事情,这让他非常苦恼;同时他又非常欣赏shell,shell简单易编程的特性让程序员更加专注于设计和逻辑本身,但shell本质上是一个功能的调用,它没有自己的数据类型,更无法全面调用计算机功能,因此shell也不算是一门“语言”。

因此,他希望找到一种语言既可以像使用shell一样简单,又可以和C语言的功能相媲美。不过这种语言在那个年代并不存在。

年的圣诞节,Guido开始编写Python语言的编译器。Python这个名字来源于他喜欢的电视剧MontyPython’sFlyingCircus,而不是表面意义上的“蟒蛇”。他希望这个新的语言,能符合他的理想:介于C和shell之间,功能全面、易学、易用又可拓展。

年, 个Python编译器诞生,这标志着Python的 个版本正式诞生。它基于C语言,并具备了基础的类、函数、异常处理等功能特性,同时具备可扩展性。Python语法很多来自C,但又受到ABC语言的强烈影响。例如来源于ABC语言强制缩进的规定本身可以让Python容易读,但如果缩进出错却会影响编译和执行。Python本身不以性能为重,但当确实需要考虑性能时,Python程序员却可以深入底层来编写C程序,并编译为.so文件引入到Python中使用。

Python语言的魅力在于让程序员可以花更多的时间用于思考程序的逻辑,而不是具体的实现细节,这一特性也得到Guido同事的欢迎。他们在反馈使用意见的同时也参与到Python的改进中来,因此最初Guido和一些同事构成了Python的核心团队,当然,核心决策者还是Guido本人。随后,Python的使用拓展到研究所之外,并吸引了越来越多的程序员。

但是,最初Python的使用非常小众,因为在那个计算机资源非常有限的年代,大家都倾向于 化榨取计算机资源并提升运算效率,而Python显然不是为此而生。

Python2.0时代:崛起

最初发布时,Python在设计层面存在一些缺陷,例如以满足跨语言、跨平台进行文本转换、处理的要求的Unicode字符编码标准在年才正式公布,所以一直以来Python2及之前的版本对Unicode的支持并不完全。相信大家在使用Python2版本处理中文时都遇到过各种问题。

年发布的Python2.0标志着Python的框架基本确定。重要框架方向包括:

简单明确。在设计Python语言时,开发者倾向于选择没有或者很少有歧义的语法。由于这种设计观念的差异,Python源代码通常被认为比Perl具备更好的可读性,并且能够支撑大规模的软件开发。

面向对象。任何Python的元素都可以视为对象,包括数据类型、类、函数、实例化元素等,完全支持继承、重载关系,这有益于增强代码的复用性。

动态类型。任何对象的数据类型都无需提前定义,拿来即用。即使在之前已经预先定义,后期也可随时修改。

胶水特性。Python本身被设计为可扩充的,并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C、C++、Cython来编写扩充模块。例如在Google对于GoogleEngine使用C++编写性能要求极高的部分,然后用Python或Java/Go调用相应的模块。

可嵌入。你可以把Python的功能嵌入到C/C++程序中,从而实现Python功能在其他语言中的功能实现。

生态系统。Python有强大的标准库,同时支持第三方库和包的扩展应用,甚至可以自定义任何库和包。Pypi(


转载请注明:http://www.aierlanlan.com/rzgz/1600.html

  • 上一篇文章:
  •   
  • 下一篇文章: