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

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

Guido van Rossum 在 1989 年圣诞假期期间,着手开发 Python,仅仅用了三个月就让 Python 有了雏形。如今,这门语言不仅成为全球最受欢迎的编程语言之一,甚至超越了昔日霸主 Java。

在 2025 年 5 月的 Tiobe 编程语言流行度指数中,Python 的得分达到 25.35%,创下历史新高。自打 2001 年 Java 称霸以来,还没哪个语言在 Tiobe 榜单上达到过这么高的人气。而在 PyPL 编程语言流行度指数中,Python 更是以 30.41% 的搜索份额遥遥领先,几乎是 Java 的两倍。

然而,在这门语言风光无两的 35 年后,Python 的创始人却抛出了一个引人深思的问题:“‘Worse is better’(差即是好)现在还适用吗?”Van Rossum 坦言,这与其说是一个严肃的提案,不如说更像是一场“吐槽”,旨在“激发核心开发者们的一些思考”。

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

今年五月的 Python 编程语言峰会上,Guido van Rossum — Python 的创造者本人,无疑是大家最期待的面孔。他出现后直截了当地抛出了一个问题:“Worse is better’(差即是好),这套理论现在还管用吗?”

Guido 先回顾了 Python 早期 35 年的开发经历。他提到,当年自己几乎只用 UNIX,自然而然地,Python 也深受 UNIX 精神的影响,尤其是其中的 “worse is better” 理念。

时间回到上世纪 80 年代末,Guido 在荷兰的 CWI 研究中心参与了一个名为 Amoeba 的分布式操作系统项目。这个项目的目标是让整个计算机网络像一台单一的机器一样运作。

“我们希望 Amoeba 能自举(self-hosting),但这需要大量用户级工具,如编辑器、邮件客户端等。由于 Amoeba 与 Unix 的文件系统模型完全不同,现有工具无法复用,只能用 C 慢慢重写,进展非常缓慢。”

面对这一挑战,Guido 开始思考是否有更高效的方法来开发这些必要的工具。他认为,与其继续用 C 语言编写,不如直接设计一门新的语言来加速开发进程。他想到了自己之前参与过的 ABC 语言项目。ABC 语言结构优雅,特别适合处理用户数据,并且拥有列表和字典等强大的数据结构。然而,它过于抽象,无法直接与操作系统进行交互,更像是一种电子表格语言。

因此,在 1989 年的圣诞假期期间,Guido van Rossum 着手开发一门新语言。这门语言的灵感来源于 ABC,但更侧重于与操作系统进行交互。他将这个项目命名为 Python,这个名字来源于他喜爱的英国喜剧节目《Monty Python's Flying Circus》。

假期结束后,Guido 仍在业余时间持续推进 Python 的开发。特别是在早期,Guido 几乎包揽了所有代码工作。

“我白天做本职工作,晚上或有空就写 Python。三个月后,我已经可以跟别人演示:‘看,这就是我做的语言。’它能交互式运行代码、赋值打印变量、定义函数、创建并遍历数组。”

“对我来说,‘worse is better’ 在很长一段时间里确实非常奏效。”如今,他 Guido 回忆道。他还举了很多 Python 的“糟糕设计”:比如没有长整型、依赖 C 的 stdio 实现、甚至一开始连类都没有。

但正是这些“简陋”的选择,让他能“在三个月内把语言跑起来”。他说:“语言的语法和结构,我其实并没有深入推敲,很多地方直接照搬了 C 和 ABC。”

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

一派以 MIT/Stanford 为代表,强调“做正确的事”(The Right Thing)。Common Lisp、CLU、Scheme 等语言都深受这一哲学的影响:注重形式逻辑、追求优雅和完整。与之相对的是另一种路径,即 “Worse is Better”。这一思想源自 Unix 与 C 传统。

“Worse is Better”的核心哲学是:优先追求实现上的简洁性,而非完美。早期的 Unix 和 C 编译器正是这一思想的产物——它们结构简单、资源消耗少,能在不同平台上轻松移植运行。这种“够用就好”的策略,使得它们不仅能运行在小型计算机上,也能适配大型系统,展现出极强的可移植性。

这种做法也被称为“新泽西方法”:重点不是寻找最优解,而是先构建一个“能用、能传播”的系统。一旦系统达到“足够好”的门槛,就有可能像病毒一样迅速扩散。用户会逐渐适应它的不完美,开发者社区则可以在此基础上持续改进,逐步逼近理想状态。

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

首先构建一个跨平台、资源消耗低的基本实现; 把这个“次优解”快速推向用户; 在广泛采用的基础上,持续增强功能和性能。

“Worse is Better”的提出者 Gabriel(Richard P. Gabriel,1949 年出生,美国计算机科学家,以在 Lisp 编程语言方面的贡献闻名)其实也并未否定 MIT 派的“正确主义”理念。他指出,这种模式更适合构建庞大复杂的单体系统,或像钻石般精致的小型系统。然而,这类系统往往需要漫长的设计周期和强大的硬件资源,难以在早期计算资源有限的时代广泛推广。

相比之下,“Worse is Better” 更具现实主义精神。它强调快速构建、简洁实现,从“够用”出发,逐步演进。这一理念不仅推动了 C 和 Unix 的崛起,也启发了后续如 Web、JavaScript、Rust、React 等技术生态的发展路径:先做出最小可用系统,再在实际使用中不断打磨。

2  “今天的 ‘worse is better’ 还成立吗?” 

对 Python 而言,“Worse is Better” 的理念似乎得到了验证,那些为了快速迭代而做出的早期妥协,最终也都被时间一点点补上了。

作为一个完全的业余项目,Python 于 1991 年 2 月发布了第一个版本。Guido 很快收到大量积极、实用的反馈,项目也因此进入了快节奏的迭代周期:频繁发布新版本,不断改进语法、扩展标准库、修复 Bug。Python 的社区也随之壮大,越来越多机构开始在生产环境中依赖它。

“这些年来,我当年偷的每一个懒,最终都被补上了。”比如哈希表的实现“被重写了两次”,垃圾回收器现在“几乎能填满整套系统”,测试用例也“堆了一大堆”——而最早的时候,“我们连测试都没有。”Guido 在大会上表示。

“在那个时代,‘worse is better’ 是 Python 得以流行的关键。”他说,“我根本耗不起三年做语言设计,还没人用、也没人夸我一句。”事实上,从动手写代码到第一次发布,前后不到一年。“发布前几乎没有修什么问题,除了类——那还是一个实习生加进去的。”

“[Python] 并不完美的事实,反而鼓励了很多人参与进来。”他回忆说,当时的代码都很简单直白,没人想着做什么性能优化。这让早期的贡献者迅速产生了归属感,“这门语言也成了他们自己的孩子。”这些人后来也在各自的公司里积极推广 Python。

那么,“今天的 ‘worse is better’ 还成立吗?”Guido 将早期开发节奏和现在作了对比:“现在的新功能,往往需要大厂资助的团队投入数年时间才能推出。”

比如静态类型系统,“得理解非常深奥的类型系统理论,几乎得有学术背景。”而且这还不仅是 Python 自身的复杂度问题,“像 numpy 这样的项目,也全靠专职维护者撑着。”

“我们现在的社区很大,但真正能做出实质性贡献的人其实并不多。”Guido 反问:现在的贡献者是否非得“写出一份完美的 PEP,或者一个能直接部署的原型”?

他怀念过去那种“先把功能做出来交给社区,后面再慢慢完善”的开发节奏。

“难道我们真的要放弃 ‘worse is better’,追求每一件事都尽善尽美?”他说,“那样挺可惜的。”但他也承认,“我不知道该怎么改变现在的状况。”毕竟,核心开发者也担心发布新功能后会破坏已有代码。

3  让更多人走进 Python 

谈及其他项目时,Guido 还特别提到了 PyO3,分享了 Rust 与 Python 的组合开发“就是走的 ‘worse is better’ 路线:先把能跑的核心特性搭起来,再慢慢打磨。”他停顿了一下:“听起来比做核心 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……也许该试试。

最后他总结道:“也许我们真的应该朝这个方向多走一步:让更多社区成员有参与感,让他们也能关心这门语言的发展。”

参考链接:

https://www.youtube.com/watch?v=_7UWcOEpoCI

https://www.infoworld.com/article/3981643/python-popularity-climbs-to-highest-ever-tiobe.html

https://en.wikipedia.org/wiki/Worse_is_better#cite_note-WorseIsBetter-3

https://www.cc4e.com/papers/2015-05-Guido-Early-Years-Python-IEEE.pdf

https://www.youtube.com/watch?v=UmL_CA-v3O8

https://pyfound.blogspot.com/2025/06/python-language-summit-2025-lightning-talks.html

本文来自微信公众号“InfoQ”,编译:Tina ,36氪经授权发布。

相关推荐

从3个月业余项目到全球第一语言,Python之父坦言:当年“将就”的代码,如今全都真香了
Python之父:Python 4.0可能不会来了
Python之父,现在成为微软打工人
Python 之父:移动设备中的 Python 应用“又大又慢”
Python 之父 Guido van Rossum 退休失败,正式加入微软搞开源
Python正在蚕食全世界
C 语言的诞生,竟然是一个失败的项目?
比 Python 快 9 万倍的 Mojo 终于开源了!刚上线 star 已超过 1.7 万
3个月里修了12门数据科学课程后,我学到了什么?
Python之父:我们能为中国的“996”程序员做什么?

网址: 从3个月业余项目到全球第一语言,Python之父坦言:当年“将就”的代码,如今全都真香了 http://m.xishuta.com/newsview137546.html