Python 简史

一部代码与社区的传奇

第一章:缘起 · ABC 语言的哲学
  • 背景 Python 的思想源头可追溯到 80 年代阿姆斯特丹的 CWI(荷兰数学和计算机科学研究学会)。
  • 项目 CWI 的一个项目是 ABC 语言,旨在设计一门极易学习和使用的编程语言,目标用户是科学家、艺术家等非专业程序员。
  • 痛点 当时的编程语言(如 C)与计算机硬件耦合过紧,学习曲线陡峭,对初学者不友好。经济上,程序员比昂贵的计算机廉价,因此语言设计优先考虑机器效率而非人的效率。
  • 遗产 ABC 项目最终因分发困难(当时没有互联网,只能邮寄软盘)等原因失败,但其核心理念——简洁、易读、为人类设计——深刻影响了后来的 Python。

我们互相看着说,难道我们不能做得更好吗?我们不能设计一种易学、易教,并且易于使用的语言吗?

— Lambert Meertens (ABC 语言设计者之一)
第二章:诞生 · 一个人的圣诞项目
  • 创造者 Guido van Rossum,曾是 ABC 团队的一员。在参与一个名为 Amoeba 的分布式操作系统项目时,他对使用 C 语言编写大量工具感到沮丧。
  • 动机 他希望有一种能“弥合 C 和 Shell 脚本之间鸿沟”的语言——既有高级语言的表达力,又能轻松进行系统调用。
  • 诞生 1989 年圣诞假期,Guido 出于兴趣和需求,开始设计并实现一门新的编程语言。
  • 命名 他以自己喜爱的喜剧团体“Monty Python's Flying Circus”命名了这门语言,即 Python。
  • 借鉴 Python 借鉴了 ABC 的许多优点,最著名的是使用缩进来组织代码块,但抛弃了 ABC 中一些不实用的特性,使其更接地气。

那时我决定,好吧,我要看看我是否能创造出自己的编程语言。

— Guido van Rossum
第三章:开源 · 社区的微光
  • 发布 1991 年,Python 通过 Usenet(早期互联网新闻组)发布。过程极其繁琐:源码需要打包、压缩、编码成文本,再分割成 21 个小文件发布。
  • 早期用户 尽管发布过程复杂,但 Python 简洁的介绍吸引了第一批用户,他们通过邮件和 Usenet 积极反馈 bug 和建议。
  • 第一次会议 1994 年,第一次 Python 研讨会在美国国家标准与技术研究院(NIST)举行,约 20 人参加,标志着 Python 社区的正式形成。
  • BDFL 在这次会议上,Guido 被社区成员戏称为“仁慈的终身独裁者”(Benevolent Dictator for Life, BDFL),这个头衔定义了他未来二十多年的角色:所有语言设计的最终决策者。

那个研讨会对​​我来说是 Python 社区的真正开端。感觉就像一个房间里的人都知道你在说什么,因为他们都深入研究过 Python。

— Guido van Rossum
第四章:成长 · 跨越大西洋
  • 新家 1995 年,Guido 移居美国,加入 CNRI(美国国家研究创新联合会),这让他首次可以全职投入 Python 的开发。
  • 关键转折 2000 年,Guido 和核心团队加入了一家名为 BeOpen 的初创公司,但公司在 5 个月后倒闭,Python 的未来陷入危机。
  • Zope 的救援 Digital Creations(后来的 Zope Corporation)是一家完全基于 Python 构建其产品的公司。为确保 Python 的存续,他们果断雇佣了整个 Python 核心团队。
  • PSF 成立 为确保 Python 的知识产权永远属于社区而非任何一家公司,2001 年,Python 软件基金会(PSF)成立。这是一个非营利组织,旨在推广、保护和推进 Python 语言。

如果 Python 死了,你知道还有谁会死吗?我们也会死。整个平台都建立在 Python 之上。

— Paul Everitt (Zope 创始人之一)
第五章:崛起 · 数据与网络的浪潮
  • 科学计算 Python 简洁的语法和开放性吸引了科学界。NumPy、SciPy 等库的出现,使其成为 MATLAB 等商业软件的有力开源替代品。
  • Web 时代 谷歌早期就大量使用 Python。YouTube、Dropbox 等成功的初创公司也选择 Python 作为主要开发语言,证明了其在大型 Web 应用中的高效性。
  • 数据科学 随着“大数据”时代的到来,Python 成为数据科学家的首选工具。Pandas 库的出现极大简化了数据处理和分析。
  • Anaconda Continuum Analytics(后更名为 Anaconda)公司推出的 Anaconda 发行版,解决了科学计算库安装复杂的问题,通过一键式安装极大降低了入门门槛,为 Python 带来了数百万新用户。

我们意识到,我们不仅仅有一个廉价的、免费的替代品。我们实际上拥有一些创新的东西,正在做一些相当独特的事情。

— Travis Oliphant (NumPy 创始人, Anaconda 联合创始人)
第六章:分裂 · Python 2 到 3 的十年阵痛
  • 发布 2008 年,Python 3.0 发布。这是一个不向后兼容的版本,旨在修复语言设计上的一些历史遗留问题,最核心的改动是彻底转向 Unicode 字符串。
  • 社区阻力 社区对此反应冷淡甚至抵制。大量现存的 Python 2 代码库迁移成本巨大,且初期 Python 3 的生态系统不完善,缺乏关键库的支持。
  • 漫长过渡 社区分裂成 Python 2 和 Python 3 两个阵营。原计划几年的过渡期,最终持续了超过十年。这期间,核心开发者需要同时维护两个版本,负担沉重。
  • 转折点 Instagram 公开分享他们将数百万行代码成功从 Python 2 迁移到 3 的经验,并展示了性能提升等收益。这给了整个社区巨大的信心。
  • 终结 2020 年 1 月 1 日,Python 2.7 正式停止维护,标志着这场漫长的“战争”终于结束。

我严重低估了 Python 已经有多成功,有多少人已经用 Python 2 编写了如此多的代码,以至于他们很难投入精力将其转换到 Python 3。

— Guido van Rossum
第七章:成熟 · 包容与多元的社区
  • 意识觉醒 社区逐渐意识到早期 Python 社区(尤其是核心开发层)缺乏多样性,主要是白人男性。
  • PyLadies PyLadies 社区的成立和发展,为女性开发者提供了一个支持性的环境,极大地促进了女性在 Python 社区的参与度。
  • 积极行动 PyCon 会议主席 Jessica McKellar 等人通过主动邀请、提供支持等方式,几年内将女性演讲者比例从 1% 提升到 40% 左右。
  • 里程碑 Guido 在大会上公开呼吁并承诺亲自指导女性成为核心开发者。Marietta Widyawati 响应号召,在他的指导下,于 2017 年成为第一位女性 Python 核心开发者,改变了历史。

我来是为了语言,但留下是为了社区。

— Brett Cannon (Python 核心开发者,这句话成为社区名言)
第八章:变革 · BDFL 的谢幕
  • 导火索 PEP 572,即“海象运算符”(The Walrus Operator `:=`),引发了社区历史上最激烈的争论之一。这是一个语法糖,允许在表达式内部进行变量赋值。
  • 争议 反对者认为它破坏了 Python 的简洁性和可读性,是“不 Pythonic 的”。支持者则认为它在特定场景下能写出更高效、简洁的代码。
  • 辞职 2018 年,在激烈且有时充满人身攻击的争论之后,Guido 最终批准了这个提案。但精疲力尽的他随即宣布辞去 BDFL 的职务,并让社区自行决定未来的治理模式。
  • 新治理 经过数月讨论,社区投票决定成立一个五人组成的“指导委员会”(Steering Council),以集体决策的方式取代 BDFL,负责 Python 语言的未来发展。Guido 本人也当选为第一届委员会成员,以确保平稳过渡。

我不想再为了一项 PEP 而如此艰苦地战斗,却发现那么多人鄙视我的决定。……我给自己放个永久的长假,不再担任 BDFL,你们得靠自己了。

— Guido van Rossum (辞职信节选)
第九章:未来 · AI 时代的基石
  • AI 霸主 如今,Python 凭借其易用性、强大的生态系统(TensorFlow, PyTorch, scikit-learn 等)以及作为“胶水语言”的特性,已成为人工智能和机器学习领域无可争议的主导语言。
  • 持续进化 即使没有了 BDFL,Python 依然在指导委员会的领导下稳步发展,持续引入新特性并进行性能优化。
  • 全球影响 从火星探测器的数据处理,到世界各地的中小学编程教育,再到驱动互联网的无数服务,Python 已无处不在。
  • 遗产 Python 的成功不仅在于语言本身的设计,更在于其开放、包容、务实的社区文化。它证明了一个由爱好者发起、由社区驱动的项目,可以对世界产生多么深远的影响。

Python 证明了,你可以花两周时间在圣诞节写一个编程语言,因为它看起来很有趣。谁能想到这会成为一件改变人生、也改变世界的事情呢。

原文

源链接

相关链接

Python 简史