写点什么

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

  • 2025-06-17
    北京
  • 本文字数:3761 字

    阅读完需:约 12 分钟

大小:1.63M时长:09:30
从 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 坦言,这与其说是一个严肃的提案,不如说更像是一场“吐槽”,旨在“激发核心开发者们的一些思考”。

 

“当年写 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 编译器正是这一思想的产物——它们结构简单、资源消耗少,能在不同平台上轻松移植运行。这种“够用就好”的策略,使得它们不仅能运行在小型计算机上,也能适配大型系统,展现出极强的可移植性。

 

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

 

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

  1. 首先构建一个跨平台、资源消耗低的基本实现;

  2. 把这个“次优解”快速推向用户;

  3. 在广泛采用的基础上,持续增强功能和性能。

 

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

 

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

 

“今天的 ‘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’,追求每一件事都尽善尽美?”他说,“那样挺可惜的。”但他也承认,“我不知道该怎么改变现在的状况。”毕竟,核心开发者也担心发布新功能后会破坏已有代码。

 

让更多人走进 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

2025-06-17 08:007334

评论

发布
暂无评论
发现更多内容

李彦宏称创新不容易但不会放弃

Yan-英杰

#大模型

如何设计与构建 FinOps 流程、团队、体系与目标

阿里巴巴云原生

阿里云 云原生 FinOps

TikTok海外运营:云手机的四种快速变现方法

Ogcloud

云手机 海外云手机 云手机海外版 跨境云手机 tiktok运营

用户研究系列之“心流”解析

糖小妹来了

用户研究 心流 用户画像分析 用户特征分析 福流

IPD是什么?如何组建 IPD(集成产品开发)团队?

IPD产品研发管理

产品 项目管理 研发管理 IPD

VMware SD-WAN 6.0 发布 (含下载) - 领先的 SD-WAN 解决方案

sysin

vmware SD-WAN sdn SDN网络 velocloud

软件测试学习笔记丨Spring Boot结合 Swagger 生成 API

测试人

软件测试 springboot swagger 测试开发

阿里云可观测 2024 年 4 月产品动态

阿里巴巴云原生

阿里云 云原生 可观测

算法人生(16):从“K均值 & C均值”看“为人处事之道”

糖小妹来了

人工智能 机器学习 算法 K-Means #算法

用户研究之全面解析Persona

糖小妹来了

用户研究 用户行为分析 用户分析 用户画像 用户特征分析

XTransfer5月产研岗位热招

XTransfer技术

拿捏这12个Java开发框架,轻松拿到30K+

伤感汤姆布利柏

利用大模型训练提升AI性能

百度开发者中心

人工智能 大模型

利用预训练模型优化大模型训练

百度开发者中心

人工智能 深度学习 大模型

软件测试学习笔记丨JIRA-Bug管理流程定制

测试人

软件测试

设备二维码怎么生成?三分钟即可搞定

草料二维码

二维码 二维码生成 草料二维码 设备巡检二维码 设备二维码

算法人生(17):从“课程学习”到“逐步暴露心理疗法”

糖小妹来了

人工智能 机器学习 AI 算法 #算法

C++ 资源大全:标准库、Web框架、人工智能等 | 最全整理

不在线第一只蜗牛

c++ 人工智能 前端 Web框架

Swagger 中 allOf 的详细解读

Liam

程序员 后端 接口文档 API swagger

共赴科技盛会“2024南京智博会”11月在南京国际博览中心召开

AIOTE智博会

南京智博会 物联网展 大数据展 智慧城市展

IPv6监测指标有哪些?如何才算真正完成IPv6的升级改造?

防火墙后吃泡面

6个步骤解析“用户运营”

糖小妹来了

运营 产品运营 用户分析 用户运营

海外云手机解决海外社交媒体运营难题

Ogcloud

云手机 海外云手机 云手机海外版 美国云手机 海外云手机推荐

从 3 个月业余项目到全球第一语言!Python 之父坦言:那些年靠“将就”撑起来的代码,如今都真香了_开源_Tina_InfoQ精选文章