社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

InfoQ • 昨天 • 28 次点击  
编译 | Tina

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 翻译整理,不代表平台观点,未经许可禁止转载。

今日好文推荐
AI编码工具双雄也开始商业互捧了?Cursor × Claude 最新对谈:两年后,几乎100%代码都将由AI生成!
三大云厂同时瘫了?Cursor、ChatGPT跟着倒下!网友:整个互联网都要废了
被骂“在乱讲”的专家,这次可能说对了:传统数据仓库正在被 Agentic AI 吞噬
对 Agentic AI 的支撑,快成这家大厂的OKR了
活动推荐

6 月 27~28 日的 AICon 北京站将继续聚焦 AI 技术的前沿突破与产业落地,围绕 AI Agent 构建、多模态应用、大模型推理性能优化、数据智能实践、AI 产品创新等热门议题,深入探讨技术与应用融合的最新趋势。欢迎持续关注,和我们一起探索 AI 应用的无限可能!

image

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/183309
 
28 次点击