欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

notebasewww.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v0.8.7 · 知识库
笔记
KnowledgeBase
网络无边,知识有迹。
0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →
>
笔记
0
加载中...
工具
0
此页用于记录用户反馈问题后的每一次改进
笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势
// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

Python 之父 Guido 宣布卸任 BDFL:一场开源治理的权力交接

1970/1/1编程开发

核心内容:Python 创始人 Guido van Rossum 因 PEP 572 之争深感疲惫,宣布永久卸任 BDFL(仁慈独裁者),将决策权交还给核心开发者社区,不指定接班人。

背景:PEP 572 与压倒骆驼的最后一根稻草

2018 年 7 月 12 日,Python 之父 Guido van Rossum 在 python-committers 邮件列表中投下了一枚重磅炸弹——他宣布自己将永久性退出 BDFL(Benevolent Dictator For Life,仁慈独裁者)的角色,不再参与 Python 语言核心决策。这封信距离 PEP 572(海象运算符 :=)被接受仅过去了数天,而正是这个 PEP 的激烈争论,让 Guido 彻底耗尽了心力。

PEP 572 提议引入赋值表达式(assignment expressions),允许在表达式内部进行变量绑定,例如 if (n := len(a)) > 10:。这个看似简单的语法糖,却在 Python 社区引发了前所未有的分裂。许多资深开发者认为它破坏了 Python 的可读性哲学,甚至有人为此发起联名反对。Guido 在邮件的开头直白地写道:

"Now that PEP 572 is done, I don‘t ever want to have to fight so hard for a PEP and find that so many people despise my decisions."(现在 PEP 572 已完成,我再也不想为某个 PEP 如此拼命抗争,却发现有那么多人鄙视我的决定。)

这句充满疲惫感的话,揭示了一个开源社区领导者长期承受的隐形压力:每一次技术决策都可能被无限放大,甚至演变成个人攻击。Guido 自 1989 年创建 Python 以来,近 30 年间一直是这个项目的唯一最终仲裁者。他见证了 Python 从一个小众脚本语言成长为全球最流行的编程语言之一,但随之而来的,是决策权重的不断增加和社区噪音的持续升级。

卸任声明的实质内容

Guido 的这封邮件虽然篇幅不长,但信息量极大,涵盖了以下几个关键点:

1. 完全退出决策流程

"I would like to remove myself entirely from the decision process." 这不是象征性的让步,而是彻底的抽身。Guido 表示自己绝不会再参与 PEP 的最终裁决,也不会介入核心开发者的重大争议。

2. 保留普通核心开发者身份

"I'll still be there for a while as an ordinary core dev, and I'll still be available to mentor people — possibly more available." 他愿意以普通贡献者的身份继续参与代码审查和日常维护,甚至愿意花更多时间指导新人。这并非全盘退休,而是从"裁判员"降级为"运动员"。

3. 不任命继任者

"I am not going to appoint a successor." 这是整个声明中最具颠覆性的一点。传统上,BDFL 的传承模式是"领袖指定下一任领袖",比如 Perl 的 Larry Wall 至今仍掌舵。但 Guido 选择放弃这一权力,把治理模式的最终决定权完全交给社区。

4. 对社区治理模式的开放态度

"So what are you all going to do? Create a democracy? Anarchy? A dictatorship? A federation?" 他用一连串反问句表明:自己不在乎社区选择哪种治理结构,但必须尽快做出决定。他特别提到两个最核心的决策点:

  • PEP 如何被决定:即未来的语言功能提案遵循什么样的评审和批准流程?
  • 新核心开发者如何被引入:即什么人获得提交权限?标准是什么?

他建议这些流程可以写成新的 PEP,甚至形成一部"宪法"(constitution),但他强调,自己不会参与起草过程——"I'm going to try and let you all (the current committers) figure it out for yourselves."

5. 关于行为准则(CoC)的提醒

Guido 特意提到 Python 社区的行为准则(Code of Conduct)仍然有效,不服从这一准则的人唯一的出路是自愿离开社区。这实际上是在为未来的治理委员会留下一个硬性边界:无论社区选择何种模式,基本的尊重与包容是不可妥协的底线。他还指出,CoC 同样适用于 python-dev 和 python-ideas 邮件列表,这意味着驱逐机制也可以覆盖到更广泛的讨论场所。

6. 身体与精神的疲惫

邮件末尾,Guido 写道:"I'm tired, and need a very long break."(我累了,需要很长一段时间的休息。)他还提到"bus lurking around the corner"(公交车潜伏在街角),这个经典的谚语暗指"被公交车撞到"——即意外死亡或突发健康问题导致无法继续工作。他称之为"I'll spare you the list of medical issues"(我就不跟你们罗列我的健康问题了),暗示自己的身体状况已不容乐观。

深度解析:BDFL 模式为何走到了尽头?

BDFL 的历史渊源与运作机制

BDFL(仁慈独裁者)一词最初是 Python 社区的戏称,后来被广泛用于描述开源项目中的单一领导者模式。Guido 拥有对 PEP 的最终否决权,但"仁慈"二字意味着他并非专断独行——他通常会在充分讨论后做出决定,并且经常采纳社区的意见。在 Python 的早期,这种模式极其高效:一个小型核心团队加上一个果断的领袖,可以快速迭代语言特性。

但随着 Python 的爆发式增长(到 2018 年,Python 已在 TIOBE 指数中稳居前三),核心开发者数量扩展到数百人,邮件列表讨论动辄数百条,PEP 的争议也变得越来越政治化。BDFL 的决策成本急剧上升——每一次裁决都需要 Guido 在海量信息中做出判断,而无论结果如何,总会有一部分社区成员感到不满。

PEP 572 的争议究竟有多大?

PEP 572 提议的 := 运算符(俗称"海象运算符")允许在表达式内赋值,例如:

python

旧写法:需要两行

data = get_data()
if data is not None:
process(data)

新写法:一行搞定

if (data := get_data()) is not None:
process(data)

反对者的理由包括:

  • 它混淆了"赋值"与"比较"的视觉边界(= vs == vs :=)
  • 它为 Python 引入了一种其他主流语言(如 Java、C#)没有的语法
  • 它可能在条件表达式中导致难以察觉的副作用

支持者则认为它能消除大量重复代码,提高表达效率。这场争论持续数月,邮件列表几乎被淹没,甚至在 Reddit、Twitter 等社交平台也引发了大规模论战。最终 Guido 选择接受该 PEP,但为此付出的代价是他的个人权威受到了前所未有的挑战。

从"仁慈独裁"到"社区治理"的必然性

Guido 的卸任并非一时冲动,而是开源项目发展的必然规律。当项目规模足够大时,单一领袖的认知带宽和情感承受力终将触顶。Linux 的 Linus Torvalds 曾公开承认自己需要学习情绪管理,而 Python 社区则选择了另一条路:拆解权力中心。

从治理理论的角度看,BDFL 本质上是"技术债务"的一种:它适合初创项目,但难以支撑成熟的大型社区。Guido 的聪明之处在于,他没有手忙脚乱地设计新制度,而是退后一步,让社区自己碰撞出解决方案。这种"放手"而非"指定"的策略,最大程度地避免了权力真空期的混乱——毕竟,当时并没有一个明显能服众的"二号人物"。

后续影响:Python 治理的转型之路

这封邮件发出后,python-committers 列表迅速进入了激烈的讨论期。接下来的几个月里,社区提出了多种方案,包括:

  • 维持松散的门槛制:只要获得一定数量的核心开发者支持,PEP 即可通过
  • 设立选举产生的管理委员会:像 Apache 基金会那样的模式
  • 完全去中心化:每个领域(语法、标准库、工具链)各自的负责人负责决策

最终在 2018 年 12 月,Python 社区投票选举产生了首届指导委员会(Steering Council),由五位核心开发者组成,每两年选举一次。委员会的职责包括接收 PEP、任命核心开发者、处理行为准则争议,以及在最坏情况下解散自己。这个模式吸收了民主选举和精英治理的优点,且至今仍在运行。

Guido 本人在隐退约两年后,于 2020 年宣布加入 Microsoft 继续从事 Python 相关工作,但他也明确表示自己不会重新担任领导者角色,只在必要时提供建议。

结语:打破"巴士因子"的魔咒

Guido 在邮件中提到的"bus lurking around the corner"(潜伏在街角的巴士)是一个经典的软件工程术语:巴士因子(Bus Factor)——指项目的关键人物如果被巴士撞倒,项目还能否继续。长期以来 Python 的巴士因子为 1,这既是它的幸运(决策果断),也是它的致命弱点。

这场"自我放逐"实际上是一次主动降险:通过放弃个人权威,Guido 不仅为自己解了套,也为 Python 的未来上了保险。他用自己的行动证明了一个开源领袖的最高境界不是"不可或缺",而是"让项目在失去自己后依然能繁荣"。

对今天的开源社区而言,Python 的这次转型提供了宝贵样本:没有人能永生,也没有哪个项目应该依赖不可替代的个人。权力交接不是危机的信号,而是一个项目走向成熟的勋章。


原文链接:https://mail.python.org/pipermail/python-committers/2018-July/005664.html

编写使用方法
Markdown 格式 · Ctrl+Enter 确定
新建笔记
预览
数据表格
点击单元格编辑 · Tab 移动
A1fx
Sheet1
BIH1H2≡🔗</>
隐私提醒

取消
编辑工具
取消