1. 首页>>分享

Python发展历程:从雏形到称霸,35年后风光依旧?

Guido van Rossum 在 1989 年的圣诞节假期开始了 Python 的开发工作,仅仅三个月便使其初具规模。时至今日,Python 已然成为全球最受欢迎的编程语言之一,甚至已经超越了曾经的霸主 Java。

2025年5月,Tiobe编程语言流行度指数显示,Python的得分攀升至25.35%,这一成绩创造了历史性的最高点。自2001年Java独占鳌头以来,Tiobe榜单上未曾有其他语言的人气能够与之匹敌。在 PyPL 编程语言流行度指数排名中,Python 的搜索占比高达 30.41%,这一比例远远超过了其他语言,几乎达到了 Java 的两倍之多。

然而,在经历了35年的辉煌之后,Python的缔造者提出了一个值得深思的疑问:“‘差即是好’的理念,如今是否依然适用?”范罗苏姆直言,这与其说是一个正式的提议,不如说更像是一种“抱怨”,目的是为了“激起核心开发者们的深思”。

1  “当年写 Python 的时候,我选择了将就”

在今年的五月,Python编程语言的年度峰会上,作为Python语言的创始人,Guido van Rossum无疑成为了众人最热切期盼的焦点人物。他的亮相之后,他直接提出了一个引人深思的问题:“‘Worse is better’这一理念,如今是否依然适用?”

Guido 对 Python 在早期35年的发展历程进行了回顾。他回忆说,在当年,他几乎只使用 UNIX 系统,因此 Python 也不可避免地受到了 UNIX 精神的深刻影响,尤其是其中倡导的“糟糕优先”原则。

上世纪80年代末,Guido加入了位于荷兰的CWI研究中心,参与了一个名为Amoeba的分布式操作系统项目。该项目旨在使整个计算机网络能够像一台统一的机器那样高效运行。

我们期望 Amoeba 能够实现自我构建,然而这要求众多用户级工具的支持,例如文本编辑器和电子邮件客户端等。鉴于 Amoeba 与 Unix 文件系统架构存在根本差异,现有的工具无法直接应用,只得采用 C 语言逐步进行重写,因此进展颇为缓慢。

面对这一难题,Guido 便开始琢磨,是否有可能寻找到一种更为高效的途径来打造这些必需的工具。在他看来,与其继续沿用 C 语言进行编写,不如直接着手创造一门全新的语言,以此来加快开发的速度。他回想起自己曾参与过的 ABC 语言项目。ABC 语言以其优雅的结构而著称,尤其擅长处理用户数据,同时它还具备列表和字典等十分强大的数据结构。然而,其特性过于抽象,使得它难以与操作系统直接进行交流,更接近于一种电子表格式的编程语言。

于是,在1989年的圣诞节假期,Guido van Rossum开始着手创建一种全新的编程语言。该语言的创意源自ABC语言,但设计上更加强调与操作系统的直接沟通。他给这个项目取名为Python,这个名字来源于他钟爱的英国喜剧节目《Monty Python's Flying Circus》。

假期落幕之后,Guido依旧在闲暇时光中不断推动Python的进展。尤其在初期阶段,他几乎承担了全部的编程任务。

日间我专注履行本职职责,夜晚或是闲暇之余,便会投身于Python编程。经过三个月的努力,如今我已能向他人展示:“瞧,这是我创作的编程语言。”它具备交互执行代码、实现变量赋值与输出、函数定义以及数组创建与遍历等功能。

对我而言,“越糟越好”这一理念在相当长的一段时间内确实效果显著。如今,Guido 回忆起这些往事。他提到了许多 Python 的“糟糕设计”,例如缺乏长整型、依赖 C 语言的 stdio 实现,甚至最初连类这一概念都未曾出现。

这些看似“简陋”的选则,却使他得以在短短三个月内迅速掌握语言技能。他坦言:“对于语言的语法和结构,我并未进行深入的研究,许多地方都是直接借鉴了C语言和ABC语言。”

在软件设计领域,存在两种截然不同的哲学取向。

以麻省理工学院和斯坦福大学等机构为代表的一群人,他们主张“做正确的事”,这一理念深刻影响了Common Lisp、CLU、Scheme等编程语言的发展:这些语言重视形式逻辑,追求代码的优雅与全面。然而,与之形成鲜明对比的是另一种观点——“Worse is Better”。这一思想源自 Unix 与 C 传统。

从3个月业余项目到全球第一语言,Python之父坦言:当年“将就”的代码,如今全都真香了__从3个月业余项目到全球第一语言,Python之父坦言:当年“将就”的代码,如今全都真香了

“Worse is Better”的核心理念在于:我们更应注重实现上的简便,而非追求极致的完美。早期的 Unix 操作系统和 C 语言编译器便是这一理念的体现——它们设计简洁、资源占用低,能够在多种平台上轻松实现移植和运行。这种“满足需求即可”的策略,让它们不仅能在小型计算机上顺畅运行,还能适应大型系统,展现了卓越的可移植能力。

这种做法被称作“新泽西方法”,其核心并非追求最佳解决方案,而是首先打造一个“可行且易于传播”的系统。当系统跨越“足够满意”的界限,便有可能像病毒般迅速蔓延。用户会逐步适应其不足之处,而开发者群体则可在这一基础上不断优化,逐步向理想状态迈进。

这套方法通常遵循这样的路径:

Gabriel,即Richard P. Gabriel,这位1949年出生的美国计算机科学家,以在Lisp编程语言领域的杰出贡献而著称,他提出“Worse is Better”这一观点,实则并未全然摒弃MIT派别的“正确主义”思想。他认为,这种模式在构建规模庞大且结构复杂的单体系统,或者如同钻石般细腻精致的小型系统方面,显得尤为适宜。然而,此类系统通常具备较长的开发周期,并且对硬件资源的要求较高,因此在计算资源相对匮乏的早期阶段,它们难以得到广泛的应用与推广。

与其它理念相较,“Worse is Better”展现出了更为浓厚的现实主义色彩。它倡导迅速搭建、简洁实现,立足于“满足基本需求”的原则,逐步进行优化。这一思想不仅催生了C语言和Unix系统的兴盛,还影响了包括Web、JavaScript、Rust、React在内的众多技术领域的发展轨迹:先构建出最基础的可运行系统,随后在真实应用过程中持续完善。

今日的“越差越好”原则是否依旧适用?

Python中,“Worse is Better”的原则似乎得到了实际验证,那些为了加速更新而做出的早期让步,随着时间的推移,最终逐渐得到了弥补。

Python作为一个纯粹的业余项目,在1991年2月推出了其首个版本。随后,Guido迅速收到了众多积极且实用的反馈,这使得项目迅速进入了快速迭代阶段:新版本频繁发布,语法不断优化,标准库持续扩展,Bug也得到及时修复。随着Python社区的日益壮大,越来越多的机构开始在生产环境中使用它。

这些年来,我过往所偷的每一分懒,最终都得到了弥补。例如,哈希表的实现经历了两次重写,垃圾回收器如今几乎可以覆盖整个系统,测试用例也累积了厚厚一摞——而最初,我们甚至没有进行过测试。Guido 在会议上这样说道。

在那个年代,“与其更好,不如更简单”的理念是 Python 流行起来的核心所在。他坦言,“我根本无法承受三年时间来专注于语言设计,既无人使用,亦无人给予我任何赞誉。”实际上,从着手编写代码到首次发布,整个过程不超过一年时间。“在发布之前,几乎未修复任何问题,唯一例外是类,那是由一名实习生添加的。”

那些并非完美无瑕的事实,却激发了众多人的加入热情。他回忆道,那时的代码设计简单明了,没有人考虑过进行性能上的提升。这样的特点使得早期的贡献者迅速产生了强烈的归属感,他们甚至将这门语言视为己出,“它成为了他们的孩子。”这些人后来在自己的公司里也积极推广 Python。

那么,关于“今天的‘worse is better’理念是否依旧适用?”Guido进行了对比分析,他指出:“相较于过去,现在的创新功能通常需要大型企业资助的团队耗费数年时间才能研发完成。”

例如,在静态类型系统中,要深入理解其复杂的类型理论,这几乎要求具备一定的学术基础。而且,这并不仅仅是 Python 本身复杂性的问题,类似 numpy 这样的项目,也完全是依靠专职维护者的努力来维持。

我们当前所在的社区规模颇为庞大,然而,实际上能够真正提供实质性帮助的人却寥寥无几。Guido 提出疑问:难道那些贡献者就必须“撰写一份无懈可击的 PEP,抑或打造一个可直接投入使用的原型”吗?

他常常回忆起过去那种“先确保功能得以实现并交付给社区使用,随后逐步进行优化”的开发模式。

难道我们真的要舍弃“糟糕就是好”,去追求每一项事物都达到完美无缺的境界吗?他如此说道,“这未免太过遗憾了。”然而,他也坦承,“我对于如何改变现状感到迷茫。”毕竟,连核心开发者都忧虑,新功能的推出可能会损害现有的代码。

3  让更多人走进 Python

在提及其他项目之际,Guido 特别指出 PyO3,并阐述了 Rust 与 Python 结合进行开发的策略——“遵循‘越简单越好’的原则:先搭建起能够运行的核心功能,随后逐步完善。”他稍作停顿,接着说:“这听起来比直接开发核心 CPython 要有趣得多。”

随着语言生态环境的不断演变,越来越多的 Python 程序员开始关注如何在他们的项目中融入 Rust 语言。其中,PyO3 技术扮演了关键角色,它使得开发者能够利用 Rust 语言来编写 Python 模块,并将 Python 语言嵌入到 Rust 应用程序中,同时还能实现与 Rust 中 Python 代码的相互操作。

David Hewitt 维护者指出,PyO3 对所有 Python 解释器的公开 API 进行了定义,这使得 Rust 能够将其视作 C 语言的外部接口。该项目的宗旨在于,让 Rust 开发者在进行开发时,只需关注自身的业务逻辑,无需过多关注底层的技术细节。

David 观点认为,Rust 的显著优势在于其人才生态,众多年轻的程序员选择以 Rust 为起点,若 Rust 能够吸引投资,那么这无疑将“拓宽人才储备的范畴”。

引入 Rust 虽然有其益处,但并非毫无代价。它从单一语言转向双语言开发,导致技术及组织复杂性大幅增加。一个值得借鉴的例子便是“Linux 内核项目在推进 Rust 引入”的过程中所面临的挑战。尽管 Rust for Linux 项目在技术层面和社区管理方面都面临着巨大的挑战,甚至有些核心开发者对此表示了反对,然而项目依然在困难中不断前进,其关键因素在于 Rust 能够吸引到一群新的开发者加入 Linux 的开发行列。

此外,关于 Rust 语言本身,Python 的创始人 Guido 进一步阐释说:“坦白讲,我可能永远不会去学习 Rust……但或许我应当尝试一下。”

他最终得出结论:“或许我们确实有必要在这个领域迈出更进一步的步伐:让更多的社区成员感受到参与的热情,激发他们对这门语言未来发展的关注。”

参考链接:

该视频内容涉及未经授权的版权信息,观看时请遵守相关法律法规,切勿下载或传播。

Python的受欢迎程度达到了前所未有的高度,这一信息可以在InfoWorld的报道中找到,链接为https://www.infoworld.com/article/3981643/python-popularity-climbs-to-highest-ever-tiobe.html。

在维基百科的“Worse is better”词条中,有关于这一概念的详细解释和引用。

该文档详细介绍了Guido在Python早期发展历程中的贡献,链接为https://www.cc4e.com/papers/2015-05-Guido-Early-Years-Python-IEEE.pdf。

此视频内容涉及敏感信息,请勿传播,以免造成不良影响。观看此视频可能违反相关法律法规,请谨慎操作。

2025年Python语言峰会官方网站发布了相关内容,其中包括了闪电演讲环节,详细介绍了2025年6月的活动情况。

本文采摘于网络,不代表本站立场,转载联系作者并注明出处:http://www.mjgaz.cn/fenxiang/276054.html

联系我们

在线咨询:点击这里给我发消息

微信号:13588888888

工作日:9:30-18:30,节假日休息