编程学习网 > 编程语言 > Python > Python简史中的人性、社群与偶然
2025
10-09

Python简史中的人性、社群与偶然


在软件工程的宏大叙事中,我们习惯于见证由巨型企业自上而下推动的“大教堂”式创新:Java 的背后是 Sun,C# 的背后是 Microsoft,Go 的背后是 Google。然而,二十一世纪最重要的技术版图——人工智能与数据科学——其通用语言的宝座,却被一个源自阿姆斯特丹某个程序员圣诞假期的“业余项目”所占据。

这便是 Python 的悖论,一个由无数次“压碎性的失败”、濒临死亡的危机和幸运的偶然共同谱写的传奇。它的成功并非源于颠覆性的技术突破或雄厚的资本加持,而更像是一场关于人性、社群与历史偶然的“公理的胜利”。让我们跟着纪录片《Python: The Documentary》一起走进 Python 这门语言的成长史。

视频地址:https://www.youtube.com/watch?v=GfH4QL4VqJ0

源起:一个“足够好”的理想

故事始于 1989 年的冬天,但也植根于更早的失败。在80年代,Guido van Rossum 参与了一个名为 ABC 的语言项目。ABC 的目标崇高——为非专业程序员(比如艺术家)设计一门极易学习的语言。然而,在那个互联网尚未普及的年代,它的分发方式原始得令人难以置信:“如果任何人想要一份拷贝,他们必须给我们寄一封信,然后我们会给他们寄一张软盘。” 最终,这个在技术上颇有远见的项目,因无法触及它的受众而被高层扼杀。Guido 为此投入的三年半心血付诸东流,他称之为一次“令人失望”的经历。

历史的吊诡之处在于,这次失败的种子,将在另一个截然不同的土壤中开花。Guido 在参与另一个名为 Amoeba 的分布式操作系统项目时,发现自己陷入了用 C 语言编写大量应用工具的泥潭。他怀念 ABC 的简洁,但 ABC 又过于抽象,无法与操作系统底层(如文件系统和进程)顺畅交互。他需要一个能“桥接 C 和 Shell 之间鸿沟”的语言。

于是,在1989年的圣诞假期,出于一个程序员最朴素的动机——“我能做得更好”——Guido 开始了自己的“业余项目”。他从 ABC 中借鉴了最具争议也最具标志性的特性——使用缩进来组织代码块,同时抛弃了自己不喜欢的部分。为了向他钟爱的喜剧团体“Monty Python's Flying Circus”致敬,他将这门语言命名为 Python。这个看似随意的命名,却在无意中为这门语言注入了最早的文化基因:非正式、人性化、以及一种反对过度工程化的幽默感。

然而,这个新生儿的第一次亮相堪称灾难。当 Guido 兴奋地向他 ABC 项目的前同事 Lambert Meertens 展示自己的作品时,后者只是平静地看了一会儿,然后输入了一行极短的代码,解释器应声崩溃。“那是一次相当沉重的打击,”Guido 回忆道。但第二天,他就修复了那个 bug。这个充满戏剧性的开端,仿佛预示了 Python 未来三十年的发展轨迹:在不断的反馈、批评甚至崩溃中,坚韧地成长。

成长:“仁慈的独裁者”与“喧闹的市集”

Python 的早期岁月,是在邮件列表和 Usenet 新闻组的“市集”中度过的。在那个年代,发布一个开源软件是一场艰苦的战斗。你需要将所有源代码打包(tar),压缩(compress),然后进行 ASCII 编码,最后再切分成 21 个符合 Usenet 帖子大小限制的部分。而用户则需要耐心地下载所有部分,再反向执行所有操作。这种原始的协作方式,却吸引了第一批真正的信徒。

1994年11月,第一届 Python 研讨会在马里兰州 NIST(美国国家标准与技术研究院)一间“没有窗户的政府办公楼”里举行。仅有 20 人参加,但正是这 20 人,构成了 Python 社区的内核。他们在这里亲眼见到了只存在于网络上的 Guido,并意识到:“如果你能用一个好功能打动他,而且这个功能很容易实现,他会当场就把它加到语言里。”

这种“仁慈的独裁者”(Benevolent Dictator for Life, BDFL)的治理模式,为 Python 在脆弱的早期提供了稳定性和连贯的视野。但真正让 Python 破土而出的,是其社区的品格。一个绝佳的例子来自 3D 动画软件 Blender。当其创始者 Ton Roosendaal 在为 Blender 选择脚本语言时,他在 Perl 和 Python 之间犹豫。他发现,Perl 的拥护者只会吹嘘 Perl 有多棒,而 Python 的支持者则会给出均衡的观点,承认 Perl 的优势,再阐述 Python 可能更适合的理由。Ton 的结论简单而深刻:“我选择了 Python,仅仅是因为它的人更友善。”

这种友善、务实、略带幽默的社区精神,最终被一位名叫 Tim Peters 的早期核心贡献者,用诗意的语言固化下来,这就是著名的《The Zen of Python》(Python之禅)。当社区成员对 Python 的设计哲学感到困惑时,Tim 写下了这些“箴言”,并将其作为彩蛋(import this)植入了 Python 解释器:

Beautiful is better than ugly. (优美胜于丑陋)
Explicit is better than implicit. (明了胜于晦涩)
There should be one -- and preferably only one -- obvious way to do it. (应该只有一个——而且最好是只有一个——显而易见的解决方案)
...although that way may not be obvious at first unless you're Dutch. (虽然这可能一开始并不那么明显,除非你是荷兰人)

这不仅仅是一首诗,它成为了社区的宪法,一种判断“什么才是 Pythonic”的直觉标准。一句广为流传的话完美地总结了这一切:“我为语言而来,我为社区而留。”

危机与成熟:从“.com”的灰烬到“3.0”的阵痛

Python 的成长并非一帆风顺,它曾两次站在悬崖边缘。

第一次危机发生在 2000 年。Guido 和几位核心开发者满怀希望地加入了一家名为 BeOpen 的初创公司,并在那里发布了 Python 2.0。然而,随着互联网泡沫的破裂,这家完全无能的公司在五个月内轰然倒塌。“突然之间,在十月底,我们发不出工资了。”Guido 回忆道。Python 的核心团队面临解散的风险,这在当时对 Python 来说是致命的。

拯救来自社区自身。一家名为 Digital Creations(后来成为 Zope)的公司,其整个业务都构建在 Python 之上。他们的创始人意识到:“如果 Python 死了,我们也会死。” 于是,他们果断出手,雇佣了整个 Python 核心团队。这次极其幸运的营救,让社区深刻反思:Python 的命运不能与任何一家公司的命运捆绑。这次危机直接催生了 Python 软件基金会(PSF)的成立——一个中立的、非盈利的组织,其唯一使命就是守护 Python 的知识产权和未来。

第二次危机则更为漫长和痛苦,它是一场持续了十年的“内战”——从 Python 2 到 Python 3 的迁移。Guido 团队希望通过 Python 3 修复一些历史遗留的设计缺陷,其中最核心的是对 Unicode 的处理,彻底区分“为人类阅读的字符串”和“为机器读写的字节流”。但在当时,这个改动被认为是“极具破坏性的”。Guido 事后承认:“我严重低估了 Python 当时已经取得的成功,以及人们在 Python 2 中编写了多少代码。”

社区分裂了。许多人认为收益不值得迁移的痛苦。著名的库作者 Armin Ronacher 成为了坚定的反对者,他发表了一系列措辞严厉的博客,认为这是一个自上而下的决定,完全忽视了用户的实际痛苦。在长达数年的时间里,Python 社区同时维护着两个不兼容的版本,造成了巨大的内耗和混乱。

转折点出现在 2017 年。当时已完全拥抱 Python 的 Instagram 在 PyCon 大会上分享了他们如何成功地将数百万行代码从 Python 2 迁移到 3,并获得了显著的性能提升。这次分享如同一剂强心针,它不仅提供了迁移的蓝图,更重要的是,它为这场旷日持久的争论提供了平反——迁移是值得的。这给了其他公司效仿的信心和理由:“看,Instagram 能做到,我们为什么不呢?”

这场几乎撕裂社区的危机,最终以一种缓慢而痛苦的方式愈合。它教会了 Python 社区一个沉重的教训:任何技术决策,都必须考虑到其背后的社会和经济成本。

终章:从独裁者到议会,从代码到人

如果说 Python 3 的迁移是一场漫长的内战,那么“海象运算符”(Walrus Operator, :=)的引入,则是一场突如其来的“政变”。这个看似微不足道的语法糖,却在 2018 年引发了 Python 社区有史以来最激烈的争论。反对者认为它“不 Pythonic”,会破坏代码的可读性。

这场争论的激烈程度和攻击性,最终压垮了作为最终裁决者的 Guido。“第二天早上醒来,我感觉糟透了。”因为此前所遭受的种种攻击,他感到身心俱疲。于是,他写下了一封震惊所有人的邮件,宣布辞去“仁慈的独裁者”的职务。他写道:“我累了,需要一个很长很长的假期。”

Guido 的退位,让 Python 社区陷入了一场前所未有的治理危机。在没有国王的情况下,未来该何去何从?核心开发者们像一群“书呆子工程师”一样,通过编写一系列 PEP(Python 增强提案)来辩论未来的治理模式,甚至对投票系统本身的优劣进行了激烈争论。最终,社区选择了由五名成员组成的指导委员会(Steering Council)模式。

这标志着 Python 的治理模式,从一个人格化的“独裁制”,演变为一个非人格化的“议会制”。这是 Python 从一个个人项目,走向一个成熟的、由社区拥有的公共机构的最后一步。有趣的是,在短暂的休息后,Guido 也参与竞选并加入了第一届指导委员会。他将自己的角色比作送孩子去上大学的父母:“你不再直接参与他们的生活,但你永远不会停止担心。”

在 Python 的故事中,同样闪耀的是人本身。当 Guido 意识到核心开发者中缺乏女性时,他公开承诺亲自指导女性开发者。Mariatta Wijaya,一位当时甚至没有开源贡献经验的开发者,鼓起勇气给 Guido 写了邮件,克服了“我不配得到 Guido 指导”的自我怀疑。在 Guido 的鼓励和指导下,她最终成为了 Python 历史上第一位女性核心开发者。她的故事,以及 PyLadies 社区的努力,让 PyCon 的女性演讲者比例从 2011 年的 1% 飙升到 2016 年的 40%。

回望 Python 三十余年的历史,我们看到的并非一个冰冷的技术产品的迭代,而是一个鲜活的人文故事的展开。它的胜利,是“足够好”哲学对“完美主义”工程的胜利;是务实主义对理论洁癖的胜利;更是社群的集体智慧对单一公司战略规划的胜利。

Guido 曾将自己比作“Python 的贝斯手”——“这很棒,你可以做很多事,可以享受乐趣,但聚光灯不在你身上。” 这种谦逊,恰恰是 Python 精神的缩影。

Python 的终极启示并非写在代码里,而是蕴含于其创造的人文故事中:最强大的系统,不是被设计出来的,而是被培育出来的。 它提醒我们,在下一次技术浪潮到来之时,真正值得关注的,并非那些喧嚣一时的“特性列表”,而是其背后所凝聚的人性、社群与价值观。

因为,那才是决定一个技术最终能走多远、能抵达何方的真正力量。

以上就是“Python简史中的人性、社群与偶然的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取