京公网安备 11010802034615号
经营许可证编号:京B2-20210330
作者 | 宋天龙
来源 | AI科技大本营
导语:一切都始于1989年的那个圣诞节,Python的诞生并不算恰逢其时,它崛起充满了机遇巧合,也有其必然性。三十年间,Python技术不断更迭,生态逐渐完善,加上互联网、大数据、以及人工智能这一波波浪潮的推波助澜,Python渐渐从小众最终站上了现在的高度。
从历史发展的角度出发,我们才能看清Python崛起的偶然性和必然性。本文将结合技术和产业的发展,全面透析Python的演进之路,帮助读者理解是什么造就了如今的Python。
Python 1.0时代:起源与诞生
Guido van Rossum(下面简称Guido)是Python语言之父,他于1982年从阿姆斯特丹大学获得了数学和计算机硕士双学位,期间他接触了很多的语言,包括Pascal,C,Fortran等。
在那个计算机资源贫乏的年代,像计算机一样思考并编程是每个程序员必须面对的事情,这让他非常苦恼;同时他又非常欣赏shell,shell简单易编程的特性让程序员更加专注于设计和逻辑本身,但shell本质上是一个功能的调用,它没有自己的数据类型,更无法全面调用计算机功能,因此shell也不算是一门“语言”。
因此,他希望找到一种语言既可以像使用shell一样简单,又可以和C语言的功能相媲美。不过这种语言在那个年代并不存在。
1989年的圣诞节,Guido开始编写Python语言的编译器。Python这个名字来源于他喜欢的电视剧Monty Python’s Flying Circus,而不是表面意义上的“蟒蛇”。他希望这个新的语言,能符合他的理想:介于C和shell之间,功能全面、易学、易用又可拓展。
1991年,第一个Python编译器诞生,这标志着Python的第一个版本正式诞生。它基于C语言,并具备了基础的类、函数、异常处理等功能特性,同时具备可扩展性。Python语法很多来自C,但又受到ABC语言的强烈影响。例如来源于ABC语言强制缩进的规定本身可以让Python容易读,但如果缩进出错却会影响编译和执行。Python本身不以性能为重,但当确实需要考虑性能时,Python程序员却可以深入底层来编写C程序,并编译为.so文件引入到Python中使用。
Python语言的魅力在于让程序员可以花更多的时间用于思考程序的逻辑,而不是具体的实现细节,这一特性也得到Guido同事的欢迎。他们在反馈使用意见的同时也参与到Python的改进中来,因此最初Guido和一些同事构成了Python的核心团队,当然,核心决策者还是Guido本人。随后,Python的使用拓展到研究所之外,并吸引了越来越多的程序员。
但是,最初Python的使用非常小众,因为在那个计算机资源非常有限的年代,大家都倾向于最大化榨取计算机资源并提升运算效率,而Python显然不是为此而生。
Python 2.0时代:崛起
最初发布时,Python在设计层面存在一些缺陷,例如以满足跨语言、跨平台进行文本转换、处理的要求的Unicode字符编码标准在1994年才正式公布,所以一直以来Python 2及之前的版本对Unicode的支持并不完全。相信大家在使用Python 2版本处理中文时都遇到过各种问题。
2000年发布的Python 2.0标志着Python的框架基本确定。重要框架方向包括:
1965年,戈登·摩尔提出了著名的摩尔定律,其内容为:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍。在随后超过半个世纪的时间里,个人计算机的发展日新月异,已经由资源不足向资源过剩转变。这客观上为Python的应用提供了基础条件——只有在资源过剩的条件下,程序员才不会过度关注榨取性能。
随着Python自身功能的完善以及生态系统的扩展,Python在Web开发、网络爬虫、数据分析与数据挖掘、人工智能等应用方面逐渐崭露头角。
Django和Flask引领的WEB开发模式
2004年,目前最流行的WEB框架Django诞生。2010年,另一个流行的轻量级WEB框架Flask诞生。Django是一个WEB解决方案“全家桶”,其功能大而全,包含了几乎所有WEB开发相关的组件和功能,它可以大大节省开发者在基础组件、选型、适配等方面的时间和精力;而Flask只包含基本的配置,默认依赖于两个外部库也可以自由替换,给开发者提供最大的自主空间。这两类完全相反方向上的WEB开发模式,几乎可以为所有开发者提供了很好的选型参照物:无论开发者想要一站式还是最大化自主解决方案,Python都能满足。
此后,以豆瓣、春雨医生、知乎、Dropbox、YouTube、CIA(美国中情局)等为代表的企业和机构都基于Python做网站开发,预示着Python应用到WEB开发领域逐渐成为一种新兴趋势。
人人都能胜任的网络爬虫
Python自带的标准库中,urllib、urllib2、requests库对于简单网页的抓取实现非常简单,即使在面对海量数据抓取需求时,第三方库Scrapy也能应对自如;再配合正则表达式库re、网页代码解析BeautifulSoup、html和xml解析库lxml、多线程库threading等特性,使得Python在应用到网络爬虫任务上时,只需要很少的开发量便能迅速完成任务。基于Python简单易学的特性,几乎人人都能开发网络爬虫。
比shell更好用的自动化运维工具
Python是跨语言和平台的,几乎所有Linux系统和MAC系统都自带Python库,Windows系统也可以自定义安装。Python默认的os、sys等库可实现与操作系统的交互和执行功能,更重要的是Python还能直接执行系统终端命令。因此,使用Python编写的系统运维和管理脚本在可读性、性能、代码重用度、扩展性几方面都优于普通的shell脚本,在自动化运维方面应用广泛。
数据分析与科学计算三剑客
2008年发布的Numpy、scipy和2009年发布的pandas是数据分析与科学计算的三剑客。
NumPy(Numeric Python的简称)是Python科学计算的基础工具包,也是Python做数据计算的关键库之一,同时又是很多第三方库的依赖库。
Scipy(Scientific Computing Tools for Python的简称)是一组专门解决科学和工程计算不同场景的主题工具包,它提供的主要功能侧重于数学、函数等,例如积分和微分方程求解。Pandas(Python Data Analysis Library的简称)是一个用于Python数据分析的库,它的主要作用是进行数据分析和预处理。
Pandas提供用于进行结构化数据分析的二维表格型数据结构DataFrame,类似于R中的数据框,能提供类似于数据库中的切片、切块、聚合、选择子集等精细化操作,为数据分析提供便捷。另外,Pandas还提供了时间序列的功能,用于金融行业的数据分析。
除此之外,很多大型公司也都在使用Python完成不同类型的其他工作,其中不乏世界知名公司,如国外的Google、Facebook、NASA 、雅虎、YouTube等,国内的网易、腾讯、搜狐、金山等。例如谷歌在Google Groups、Gmail、Google Maps等项目中将Python用作网络应用的后端;在Google Cloud Platform中的Google Cloud Storage本地部署环境中,gsutil也在Python 2基础上开发和应用。
后Python2与Python3时代:AI让Python大放异彩
2008年12月,Python 3发布。Python 3相对于Python 2的早期版本(主要是Python2.6之前)是一个较大的升级,它在设计的时候没有考虑向下兼容,所以很多早期版本的Python程序无法在Python 3上运行。为了照顾早期的版本,推出过渡版本2.6——基本使用了Python 2.x的语法和库,同时考虑了向Python 3.0的迁移,允许使用部分Python 3.0的语法与函数。同时,Python还提供了Python 2到Python 3的Python文件转换功能,以帮助开发者升级。
2010年7月发布了Python 2.x系列的最后一个版本,主版本号为2.7。大量Python 3的特性被反向迁移到了Python 2.7,2.7版本比2.6版本进步非常多,同时拥有大量Python 3中的特性和库,并且照顾了原有的Python开发人群。Python2.7也是当前绝大多数Linux操作系统最新版本的默认Python版本。
从2008年开始,Python 2与Python 3是并存发展的。但在2018年3月,Guido在邮件列表上宣布Python 2.7将于2020年1月1日终止支持,这意味着之后Python 2将不再被统一维护,与之对应的是主流第三方库也不会再提供针对Python 2版本的开发支持。Python 2的时代即将过去。
这一时期,Python继续以其独特魅力吸引更多的开发者加入,但真正让Python大放异彩的却是AI(人工智能)的爆发。
AI并不是一个新生事物,而是从20世纪50年代就开始出现,随后经过了大概20年的黄金时期,又分别在20世纪70年代和90年代两次进入寒冬期。从2006年开始,神经网络、深度学习的出现,让AI进入爆发期。
在AI领域,Python拥有很多相关库和框架。其中最著名的是:
在互联网领域,Facebook和Google都是全球IT企业的标杆,具备行业领导力和风向指示意义。他们基于Python开发的AI库(PyTorch和TensorFlow)已经成为目前最流行的AI库,而且“到底选择PyTorch还是Tensorflow”仍然是一个具有争议性的话题。
在AI时代,主要应用场景包括:
在不同的领域,Python都能扮演非常重要的角色,因此,在国外的各大榜单中,Python都已经成为最受欢迎的语言(或至少是之一)。不只在商业领域流行,国内很多地区和教育机构正将Python纳入教材之中。比如Python进入山东小学六年级的教材,浙江信息技术教材将放弃VB,改用Python 语言,Python列入全国计算机二级等级考试大纲等。
Python的未来发展
在Python发展过程中,Guido一直是核心人物,甚至被称为“终身仁慈独裁者”,但在2018年经历了退出管理层风波之后,他又在2019年以五大指导委员之一的身份重回决策层。这为Python迎来了新的治理方案:指导委员会模式。这种模式意味着Python的未来将从Guido一人决定变为5人决定,虽然比很多开源语言仍然有民主化空间(例如PHP的改进由社区投票决定),但也算是一种从专制到民主的进步。
有关Python的每个提升计划,都是在PEP(Python Enhancement Proposal)列表中——每个版本新特性和变化都通过PEP提案经过社区决策层讨论、投票决议,最终才有我们看到的功能。
目前,Python的最新稳定的主版本是3.7,Python 3.8也已经有了预览版,大概在2023年左右Python 4便会问世。在之后的时间里,Python会如何发展?我们可以从Python软件基金会的董事会成员、CPython的核心开发人员Nick Coghlan的信息中略知一二:
首先,Python的PEP流程和制度没有任何变化,通过增加新模块和功能来增强的基础能力。随着Python 2在2020年不再维护,社区在Python 3的资源和投入会相应增加。
其次,不同解释器的实现和功能扩展还将继续增强,方向包括PyPy关于JIT编译器生成和软件事务内存的尝试,以及科学和数据分析社区,对面向数组编程的探索等。
再次,嵌入式应用的增强,核心是与其他虚拟机运行时(如JVM和CLR)的集成和改进,尤其是在教育领域取得的进展,可能会让Python作为更受欢迎的嵌入式脚本语言,在更大的应用程序中运行。
最后,对于为了兼容和维持Python 2的部分功能而存在于Python 3中的原有代码,在后续版本中应该会逐步优化甚至去掉。而对于其他更改,则会根据情况弃用、提出警告、逐步替代以及保留。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
初中毕业想考证,先确认“我能不能报”,再比较证书价值。学历门槛不够的证书,宣传再多也与你无关;能报但对应不上岗位的证书, ...
2026-11-02市场岗确有一批报考不设专业限制的证书,但“不限专业”只解决能不能报,真正决定值不值的是三件事:对应市场岗哪条子路径、招聘 ...
2026-11-02“大学生必考证书有哪些”这个问题,本身就藏着一个需要先拆掉的假设:似乎存在一份人人适用的必考清单。实际上,除了少数与毕业 ...
2026-11-02“最好考的一级证书”这个问题,最容易踩的坑不是选错证书,而是没先弄清“一级”在目标证书体系里到底指什么。有的体系里,一级 ...
2026-11-02“职业证书哪个含金量高”这个问题,很难用一张榜单回答。原因不复杂:证书的“含金量”取决于你拿它做什么。想进入必须持证的行 ...
2026-11-02“证件含金量排名”是搜索量很高的词,但直接给你一份“十大证书排行榜”的文章,基本可以跳过。原因很简单:证书的含金量不是单 ...
2026-11-02在校大专生能考的证书,大体分三类:通用能力类(英语等级、计算机等级、普通话水平测试)、职业技能等级类,以及部分不要求工作 ...
2026-11-02在家闲着想考个证书,最容易踩的坑是先去搜“含金量排行榜”,然后被一堆培训广告牵着走。更稳妥的顺序是反过来的:先看自己属于 ...
2026-11-02“注册类证书”不是一个可以随手列全的清单,它更像一个制度口径:通常指国家职业资格目录中设有注册管理、与执业准入挂钩的资格 ...
2026-11-02“现在考什么证有用”很难有统一答案。同一张证书,对想进会计事务所的人有用,对想做新媒体运营的人可能帮助有限;对需要评职称 ...
2026-11-02“适合女生考的证书有哪些含金量高”,这个问题里藏着两个容易走偏的前提。一是把“女生”当成职业属性,仿佛有一份统一的女性证 ...
2026-11-02先说结论:工商管理专业女生不必追“女生必考”榜单。证书有没有用,取决于它能不能对上你准备投的岗位。比较稳妥的做法,是先在 ...
2026-11-02“什么证好考又实用”这个问题,最怕两种回答:一种是列一堆“通过率高”的证书,却不告诉你考完能干什么;另一种是反过来只谈含 ...
2026-11-02“女士可以考哪些证书”并没有一份统一答案。真正决定你能考什么的,不是性别,而是三件事:你现在的身份(在校、在职还是准备转 ...
2026-11-02大专学历想考运营岗位证书,先给结论:能报的证书不少,但值得考的集中在三类——平台官方运营/投放认证、职业技能等级评价、数 ...
2026-11-02大学生判断一张证书是否重要,不用先看宣传热度,而要看四件事:它是否匹配你的目标岗位,校招时是否真用得上,在校期间是否具备 ...
2026-11-02先把结论说清楚:在校期间以2—4张核心证书为宜,其中1—2张通用底证、1—2张与目标岗位对应的方向证;高壁垒资格证只在符合报考 ...
2026-11-02大学生问证书推荐,最容易掉进的坑是“别人考什么我也考什么”。证书本身没有统一的含金量排序,同一张证,对目标岗位是硬门槛, ...
2026-11-02经管毕业生没有一张“通吃”的证书。比较有用的选择,是先按财会、金融、市场、人力、综合管理几个方向锁定目标岗位,再把证书分 ...
2026-11-02“程序员考什么证书含金量高”,没有放之四海皆准的答案。同样是“高含金量”,对后端开发、云原生工程师、数据开发和安全工程师 ...
2026-11-02