《代码英雄》第三季（1）：Python 的故事
Python

> 
> 代码英雄讲述了开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。
> 
> 
> 



> 
> **什么是《代码英雄》**
> 
> 
> <ruby> 代码英雄 <rt>  Command Line Heroes </rt></ruby>是世界领先的企业开源软件解决方案供应商红帽（Red Hat）精心制作的原创音频播客，讲述开发人员、程序员、黑客、极客和开源反叛者如何彻底改变技术前景的真实史诗。该音频博客邀请到了谷歌、NASA 等重量级企业的众多技术大牛共同讲述开源、操作系统、容器、DevOps、混合云等发展过程中的动人故事。
> 
> 
> 


![](/data/attachment/album/202011/06/011850mh1vdq41gh1b4q43.jpg)


本文是《[代码英雄](https://www.redhat.com/en/command-line-heroes)》系列播客[第三季（1）：Python 的故事](https://www.redhat.com/en/command-line-heroes/season-3/pythons-tale)的[音频](https://dts.podtrac.com/redirect.mp3/cdn.simplecast.com/audio/a88fbe/a88fbe81-5614-4834-8a78-24c287debbe6/b16fc81d-60c7-4991-9773-e9fce88ca3ba/CLH_S3E1_Pythons_Tale_vFINAL_tc.mp3)脚本。




> 
> 导语：一位“<ruby> 仁慈的终身独裁者 <rt>  benevolent dictator for life </rt></ruby>（BDFL）”的辞职，永久改变了 Python 语言的命运，Guido van Rossum 那个名为《移交权利》的备忘录，让大家的注意力集中到了语言发展这件事情上。
> 
> 
> 在这一期里，Emily Morehouse 将 Python 技术层面的拓展性和它的包容性社区联系在了一起。Michael Kennedy 解释了 Python 是如何做到在简单易学的同时，又强大到足以担当的起像 Youtube 和 Instagram 这样的大项目。而 Diane Mueller 则强调了 Python 社区是如何率先在科技领域传播了许多包容性的实践 —— 包括社区主导的决策的兴起。
> 
> 
> 有时候，一位仁慈的终身独裁者可以让一个语言开始发展，但 Python 证明了，是社区让语言兴旺起来的。
> 
> 
> 


**00:00:06 - Saron Yitbarek**：


在 2018 年 7 月 12 日的早晨，世界各地的 Python 社区成员起床之后，他们拿起一杯咖啡，打开了自己的电脑。随后一个接着一个地，看见了一条来自他们仁慈的独裁者的消息。


**00:00:24**：


Guido van Rossum，世界上最伟大的编程语言之一 Python 的创造者，也许没有之一。他面向 Python 社区的全体成员写下这条消息，我们不难想象出 Python 的粉丝们阅读这条消息时的画面。


**00:00:38 - 多个配音演员**：


我没想到在我已经如此努力的情况下，仍有这么多人对我的决策不满。我想把自己从决策过程中完全抽离出来，给自己一个永久的假期，让自己一辈子都不做仁慈的独裁者。你们都要靠自己了，我不会指定继任者。那么你们接下来要如何做呢，创立民主制度吗？或者保持无政府状态？


**00:01:00 - Saron Yitbarek**：


在这条简短却惊人的消息发布之后，Guido van Rossum，这个被 Python 社区追随了几十年的人……好吧，他基本上就这样退出了。这条消息被命名为《<ruby> 移交权利 <rt>  Transfer of Power </rt></ruby>》，它将永久的改变 Python 的格局。


**00:01:19**：


不过除此之外，它又引出一个问题，那就是不光是 Python，所有的这些编程语言在未来要怎样衍变与壮大呢？是否应该由一个仁慈的独裁者把控，赋予它们形状和一致性？又或者，在开源世界里，编程语言的发展与变化是否应该更像口语，取决于所有语言使用者的行为？Python 社区，这个成长速度远超其他语言的社区，需要找到这个问题的答案。


**00:01:56**：


我是 Saron Yitbarek ，这里是《代码英雄》第三季，一个来自红帽的原创播客。在上一季的《代码英雄》里，我们探索了广袤天地，从[游戏主题](/article-12578-1.html)出发，到[失败的艺术](/article-12625-1.html)，再到[无服务器开发](/article-12717-1.html)，最后我们甚至追踪了一台在火星表面，来自 NASA 的[火星车](/article-12744-1.html)。但是真正抓住每个人想象力的一集，似乎是 [Grace Hopper 的故事](/article-12595-1.html)。她参与开发的编译器创造出了世上第一个高级编程语言，COBOL。我们随后意识到，Grace Hopper 的故事不过是万千个塑造了软件开发与运维的世界的故事之一。新的编程语言使得我们可以连通人类与机器，它们为我们打开了一扇通往无限可能的大门。


**00:02:51**：


因此，第三季将全部围绕这些语言展开。我们会谈论 JavaScript、BASIC、Go 以及 Perl，当然，还有 Python。我们的旅程将从 Python 开始，顺着 Python 的故事，我们会学到一个与所有编程语言未来相关的至关重要的事实。


**00:03:16**：


在 Python 的仁慈的独裁者放弃王座之后，整个 Python 社区……呃，有些迷茫。你要如何在独裁者退位之后组织工作呢？有人提议采用<ruby> 长老会 <rt>  Presbyterian church </rt></ruby>结构，不过没能奏效。要弄清楚 Python 是如何重新找到领导方式的，并了解这对其它语言的未来有什么意义，我们必须要回到 Python 故事的源头。


**00:03:46 - Guido van Rossum**：


好吧，让我用 C 来完成全部代码，这事情变得有些枯燥。


**00:03:51 - Saron Yitbarek**：


本尊驾到，Guido van Rossum，Python 的仁慈的独裁者。Van Rossum 曾在为阿姆斯特丹著名的 Centrum Wiskunde & Informatica 工作数年，在那里他协助开发了 ABC 编程语言。现在，他将描述他使用 C 工作时，发现对一个全新编程语言产生需求的时刻。


**00:04:13 - Guido van Rossum**：


仍然感觉还是有着很多 bug，并且开发速度缓慢。我在想，呃，如果这里支持 ABC 语言，我可以在十五分钟内写出整个登录程序，然后我可以接着开发账户管理之类的功能，但是用 C 进行开发，却要花掉我一整个星期。我开始设想，要提出一种可以在 Amoeba 环境中使用 ABC 语言特性的方法。


**00:04:47 - Saron Yitbarek**：


在研究编程语言的历史时我们发现，没有什么东西是全新的。它们全都是为了拼凑出解决方案而从旧语言借鉴来的。语言会不断的变化、发展、开枝散叶。当 van Rossum 被种种可能性弄得迷茫时，他设想出一个可以弥合 C 与 Shell 编程两者间隙的编程语言。一些场景下使用 C 语言往往是牛刀杀鸡，与此同时，用 Shell 脚本又常常让人感到繁琐，二者之间的最佳结合点，正是 Python 的栖身之处。当 van Rossum 在 1991 年首次发布 Python 时，它给大家都带来了启发，尤其是对系统管理员而言。这是一种前无来者，功能全面的脚本语言。


**00:05:35 - Emily Morehouse**：


第一次使用 Python 时，我立即就爱上了它。


**00:05:39 - Saron Yitbarek**：


这是 Emily Morehouse，目前 Python 担任核心开发者的五位女性之一。


**00:05:44 - Emily Morehouse**：


我认为当你从接触到的像 C++ 这样的第一门语言跨越到 Python 时，发现二者之间如此显著的差异，会真的会意识到语言与其设计的优美之处。你不必去应付内存管理的毛糙的底层实现细节，它可以既快又好的构建一些项目，更不必说它还有着如此广泛的应用领域。


**00:06:18 - Saron Yitbarek**：


Python 吸引力的关键之处，就在于它的可扩展性。举个例子，像 ABC 这样的语言，在设计上是固化单一的，无法形成一个能够真正帮助改善它的社区。反观 Python，van Rossum 在设计之初就希望 Python 是开放的、易于扩展的。


**00:06:37 - Emily Morehouse**：


进行软件设计时，你往往需要用到一些现有的软件或系统，并且要让它们能够协同工作，其实软件设计的核心价值之一就在于确保它的可扩展性。


**00:06:58 - Saron Yitbarek**：


听起来不怎么费脑子，但并非每一个语言都像 Python 这样，有着与生俱来的强可扩展性。事实上，一门不具备可扩展性的语言，大概率会随着自身的发展而崩溃。


**00:07:16 - Emily Morehouse**：


Python 有一个非常有趣的设计，它允许在其内核上进行扩展。实际上，你可以在运行时环境上对系统的不同片段打补丁，假如你想要改变模块导入的方式，或者你想改变你的字符串类型或整数类型，Python 允许你用相当容易的方式去实现这些事。


**00:07:44**：


Python 可扩展性的核心是所谓的 C 扩展，或者说是 C 模块。因此，Python 实际上被设计出来的意图，是为你提供对其它语言的切入点。本质上来讲，如果你可以写出 C 扩展或 C 模块，可以用它去桥接其它数百种语言，那么你在某种角度上算是破解了 Python 的设计，再造了一个它。


**00:08:16 - Saron Yitbarek**：


这完全取决于用户根据自身需求调整语言的能力。所以说 Python，按照 Guido van Rossum 的设想，绝不会局限于独裁者的个人视野。他的《移交权利》备忘录由来已久。Van Rossum 明白社区影响力所能产生的力量，这是一种能够使所有人都聚集于同一顶“大帐篷”之下的力量。没错，他最终被冠以独裁者称号，但却是一名仁慈的独裁者。


**00:08:44 - Emily Morehouse**：


我认为 Python 社区变得如此多元化，原因之一就是 Guido。Python 现在能够拥有女性核心开发者，正是因为 Guido 希望有这样的改变，并一手推动其实现。


**00:09:01 - Saron Yitbarek**：


Python 软件基金会的主席 Naomi Ceder 曾在一次演讲中说：“Python，因语言而来，为社区而留。”这可能正是 Guido van Rossum 留下的最棒的礼物。不仅仅是 Python 语言，他更是为整个 Python 社区都创造了空间。他不仅在语法意义上为 Python 提供了可扩展性，某种角度来讲，他也在社会意义上提供了扩展性。永远都为新来者留有位置。


**00:09:29 - Emily Morehouse**：


Python 有着大量不同的应用领域，而社区又如此多元化。。所以它真的、真的扩展了社区的边界。


**00:09:51**：


Emily Morehouse 是 Python 核心开发者与 Cuttlesoft 的工程总监。


**00:09:59**：


Python 降世之后，它就开始了前所未有的增长。我看到一个 Stack Overflow 上的图表，统计了每门语言被提及的次数，对应着 Python 的那条线仿佛坐上了火箭。2018 年，在 Google 搜索 Python 的人数比搜索金-卡戴珊的还多。另一个令人振奋的消息是，Python 开始和 Java、C 以及 C++ 之类的语言争夺最常用语言的头衔。


**00:10:26**：


那么，这些人们对 Python 的偏爱究竟来源何处呢？为了找到答案，我找到 Michael Kennedy，他活跃在 Python 时代的中心。他主持着两个专注于 Python 的播客：Talk Python to Me 和 Python Bytes。我们会在展示内容里放上对应的链接以便大家查看。Michael 将要和我一起讨论 Python 是如何真正迈出大步的。


**00:10:52 - Michael Kennedy**：


如果你看过分析报告或总结报告一类的东西，会发现 2012 年是一个重要拐点，而发生在 2012 年左右最具意义的事情莫过于，数据科学社区换掉了 R 之类的东西，开始真正专注于 Python。这件事发生以后，Pyton 社区就有了更充足的劲头，也有了更多的机器学习库。像许多流行的机器学习库，都会首先考虑使用 Python 来实现，此后才会考虑其他语言。


**00:11:22 - Saron Yitbarek**：


嗯，我也这么认为。当我想到 Python 时，我知道它可以被用作 Web 开发，我也认识许多仍然在使用 Python 来写 Web 应用的人。但我感到 Python 如今真正的核心更多是在数据科学领域。你认为是什么导致了这件事情发生？为什么数据科学社区抛弃了那些，或者我不应该叫抛弃，而是远离了 R 之类的工具。


**00:11:44 - Michael Kennedy**：


对，正是如此。


**00:11:45 - Saron Yitbarek**：


从何而来呢？


**00:11:46 - Michael Kennedy**：


我认为这种转变中是有两件事在起作用。其中之一就是 Python 作为一种“真正的” —— 引号引起来的 —— 编程语言，它既可以写一些简单的东西，例如构建图形或数据分析工具等等，但是，它也可以用来构建 Instagram 和 YouTube 以及其他类似的复杂应用……


**00:12:08 - Saron Yitbarek**：


是的，显而易见。


**00:12:09 - Michael Kennedy**：


相对于 R …… 之类的东西而言。对，这很显而易见。很多应用都是由 Python 来编写的。所以他们之前在使用一些其它的编程语言时，例如 R，这门专精数据科学工作的，科学统计类的编程语言，如果他们想要写一个 Web 应用来展示他们的结果，那么，他们要用什么来实现呢？Node 或者 Python 还是……这导致他们没办法一直使用那些语言。


**00:12:31 - Saron Yitbarek**：


对，说的很好。


**00:12:31 - Michael Kennedy**：


所以说 Python 拥有相当棒的能力 …… 基本上，它是一种真正的编程语言，这是其一。第二点是，Python 十分独特，被我称为……全频谱语言。我所谓的全频谱的意思是指，假如我是一名生物学家、天文学家或别的什么，当我想要处理一些数据，想要加载一个 CSV 文件并运行一些指令得到图像时，我无需理解什么是类、静态方法、主函数、编译或者链接。你不需要像一些编程语言那样，为了入门而去学会这些。我只用写几行代码，键入指令，程序就可以运行。


**00:13:14**：


但是，你也可以用它去搭建像 Instagram 之类的软件。它可以成长为绝对专业的系统，你能使用，但是你不会在一开始就被逼迫着，去理解大型应用的一切深层抽象，你可以根据自身需要来使用它。这有意义吗？


**00:13:30 - Saron Yitbarek**：


对，对。说的非常贴切。刚才我们谈论到 2012 年的拐点时，我搜索了一些关于 Python 的资料，Python 的确是世界上被 Google 次数最多的编程语言。


**00:13:42 - Michael Kennedy**：


哇。


**00:13:43 - Saron Yitbarek**：


你感觉它现在确实被大家青睐，并且仍在成长之中吗？


**00:13:47 - Michael Kennedy**：


我认为它真的被青睐并处于成长之中。在我们谈论到的过去几年里，有相当多的企业集团都选择使用 Python。而他们曾经的选择是 .NET、Java，甚至是 C 。这就是回答，并且现在 Python 开始走出属于自己的路，我认为它在某些场景下被格外倚重，关于这个，我指的是那些数据科学家们。就像，显然我们用到的 Jupyter Lab 那类炫酷笔记本应用，这些的东西，全都是 Python 造就的。


**00:14:17**：


数据科学没有祖传代码的负担。如果我想开发一个新的项目，用来探索广告活动或科学结果，就不会对一堆陈旧的东西，保持着庞大的依赖关系。模型和数据都会过时，因此对于数据科学世界而言，切换技术栈或保持最新状态要容易得多。


**00:14:37 - Saron Yitbarek**：


说的不错。


**00:14:39 - Michael Kennedy**：


嗯，谢谢。


**00:14:42 - Saron Yitbarek**：


嗯，听上去 Python 不会很快停止成长，而是保持增长的趋势，甚至这种增长的势头仍在向前发展。你认为对这种增长与前进的势头影响最大的事情是什么呢？


**00:14:52 - Michael Kennedy**：


我感觉这就像滚雪球。Python 有如此多我们可以使用的库和软件包。现在更是多到难以置信。一两年前，这个数字大概只有 10 万。而现在我们已经有了 17 万个包或项目。


**00:15:10 - Saron Yitbarek**：


哇。


**00:15:10 - Michael Kennedy**：


你可以仅仅写几行代码，然后说，噢，我要做机器学习。有人在会议上向我们展示了一个例子，她们训练一个机器学习系统，给它提供大量人脸的图像，并告诉系统他们拥有什么类型的眼睛。是圆眼睛？或者椭圆形眼睛之类的东西。似乎这会帮助你决定妆容之类的。


**00:15:30 - Saron Yitbarek**：


噢，哇。


**00:15:31 - Michael Kennedy**：


这位女士的演讲十分精彩，然后她说，这是训练模型的代码，让大家提问。而代码从头到尾只有十五行。


**00:15:40 - Saron Yitbarek**：


哇。


**00:15:40 - Michael Kennedy**：


接着你看，就像她说的那样，你提供一张照片，模型就会知道你的眼睛像什么。


**00:15:44 - Saron Yitbarek**：


噢，天哪。


**00:15:45 - Michael Kennedy**：


这种类型的项目势头十足。这些简洁，却又极具能量的东西，你可以直接通过一些包来导入，这真是厉害极了。


**00:15:53 - Saron Yitbarek**：


哇，这好酷。


**00:15:54 - Michael Kennedy**：


是不是很疯狂。


**00:15:56 - Saron Yitbarek**：


好吧。让我们暂停一下对话。我们会在稍后听到更多 Michael 的观点，但我现在想要回头来强调一些事情。使 Python 这些令人惊叹的特质成为可能的源头，Python 社区。Python 成功的一个决定性因素就是这个庞大的、反应迅速的社区。


**00:16:21**：


此时此刻，正如我们在 van Rossum 离开时看到的那样，社区的规模已经庞大到让人难以接受。想象一下你不得不背着整个语言包袱的样子。某种角度来说，吸引了如此庞大的社区，让保有一个终生独裁者的主意变得站不住脚。Van Rossum 未曾设想他的语言会收到如此巨大的反响，但是，几乎完全自发的，社区成员将 Python 的邮箱列表、新闻组、网站，以及最终通过 PEP 讨论语言变化的流程汇集在一起。PEP 是 <ruby> Python 增强建议 <rt>  Python Enhancement Proposals </rt></ruby> 的缩写。


**00:17:05**：


所以，尽管有着独裁者的名号，van Rossum 仍致力于搭建一个用户可以真正传达意见，参与构建的语言。我敢打赌，尽管他在离开的那一刻感到沮丧，但 van Rossum 明白，一个活跃的社区给他的语言带去的好处，要远胜他离去而折损的。


**00:17:25 - Diane Mueller**：


我叫 Diane Mueller。


**00:17:27 - Saron Yitbarek**：


Diane 是红帽云平台的社区开发总监。在过去的 30 年里，她目睹了开源社区的强劲发展，尤其是 Python 社区，给她留下了极为深刻的印象。


**00:17:42 - Diane Mueller**：


Python 社区做的太棒了……他们带来了大量行为准则的概念，关于会议、多样性奖金，所有这类东西。通过引入不同的声音以及不同的观点，我们得到了一个更好、更具创新性的项目，它必定能够留存得更久，并有望为更多的人带去更好的体验。


**00:18:03**：


即便他们犯错了，也会开诚布公的进行处理。在看到这种精神弥漫进硅谷和初创公司的兄弟文化中之后，通过与社区的合作，Python 就像带我回到了我创业的地方，围绕着它的社区也像是回到了往日。它真的相当鼓舞人心，非常惊艳。


**00:18:33 - Saron Yitbarek**：


能够鼓舞如此多的人，缘由是 Python 在最初就重新定义了成为社区一员的含义。我讲过 Guido van Rossum 即使是在引退之际，仍倡导了在社区里对女性的拥护。此外他也在更宽泛的意义上帮助了社区的拓展。


**00:18:50 - Diane Mueller**：


个人为集体带来的远远不止是代码贡献。绝大多数社区管理者或是项目主管，都把精力集中在如何促进大家为他们的项目做出贡献。而在 Python 社区里，大家会鼓励你参与文档工作，或是帮助会议的举办，以及对多样性的促进。这里有许多不同类型的事让你参与，都可以使你成为 Python 社区的一份子。


**00:19:19**：


所以这个想法，即社区贡献不仅仅局限于代码，像参与活动、相互学习和教育，以及大量的文档工作，这些对大多数人而言都是融入 Python 社区的方法。


**00:19:35 - Saron Yitbarek**：


当然，我们还有许多路要走。


**00:19:37 - Diane Mueller**：


精英阶层仍然注重于技术。没人会怀疑这个。但我想你也看见社区管理和社区管理者的理念了……我们都是社区重要的一份子，而不是被雇佣来干事的。


**00:19:55**：


对 Diane 而言，van Rossum 正式放弃他独裁者角色的决定，是全局变化的一部分。这代表着编程语言的建设开始摆脱陈旧与单一。


**00:20:07**：


我想我们可能已经摆脱了这种模式，尽管在一段时间里，我经常听见人说：“是的，我终生都是这个项目的仁慈独裁者。”但我并不认同。


**00:20:21**：


Diane Mueller 是红帽社区发展总监。


**00:20:28**：


在 Guido van Rossum 发出那份令人瞠目结舌的《移交权利》之后，Python 社区自身便成为了权力中心。随着项目的成熟发展，出现新的治理模式是正常的，并且正如我们所见，这些人已经做好准备，要来管理自己的语言了。但我仍然好奇，整件事最终是如何收场的？van Rossum 退场之后究竟发生了什么。让我们回到与 Michael Kennedy 的对话中来寻找一些答案吧。


**00:20:59**：


……他离开了 Python，社区在没有他的情况下过得怎么样呢？


**00:21:05 - Michael Kennedy**：


嗯，社区的状态其实还不错，但我们陷在一个……制高点，有点像是卡住了。运行时和语言基本上陷停滞不前。有一些有趣的提案，有些比较麻烦，有些又挺简单。比如，嘿，要不然我们每一年发布一次 Python，而不是每 18 个月，这样跟年度会议绑在一起，语言变化会变得更有可预测性。诸如此类的事情。


**00:21:33 - Saron Yitbarek**：


噢，嗯。


**00:21:33 - Michael Kennedy**：


这些都是无法做出定夺的。因为在他引退之后，还没有方法去做决策。他基本上只留下一句，我去度假了，全靠你们了，你们必须得弄清楚怎么才能继续运行下去。我不会告诉你们怎样去做决策或怎么去运营。麻烦现在是你们的了。


**00:21:48 - Saron Yitbarek**：


哇。这听起来非常有戏剧性，但仔细一想。还记得那些<ruby> Python 增强建议 <rt>  Python Enhancement Proposals </rt></ruby>（PEP）吗，那些用于接受社区反馈的 PEP？它们可以拯救大伙。


**00:22:02 - Michael Kennedy**：


有一系列他们试图为 Python 社区确立的新治理模型。好吧，最大的新闻是他们最终决定选择其中之一，叫做<ruby> 指导委员会 <rt>  Steering Council </rt></ruby>，委员会由五人组成 —— 我相信他们都有着平等的投票权 —— 他们最近选举出了五个人。。所以，这不是一个人的责任，而是所有的人的责任。


**00:22:23**：


我感到十分高兴的一件事是， Guido van Rossum 也是他们的一员。他引退后说，我不能作为……所有这些人们想要改变和反馈的压力的唯一的发泄口。但是他还在，他没有完全抛弃这门语言。他仍然是一个核心开发者，并且加入了指导委员会。因此他仍然保留了发言权，但无需再独自承受一切，这真是非常棒。


**00:22:47 - Saron Yitbarek**：


我很好奇，这一切在现实世界里是怎么奏效的？我感觉如果我是指导委员会的一员，和语言的创造者坐在一起，我可能会倾向于赞同他所说的任何意见。


**00:22:58 - Michael Kennedy**：


对，确实如此。在平局的情况下，最终取决于 Guido。


**00:23:03 - Saron Yitbarek**：


嗯，的确。


**00:23:03 - Michael Kennedy**：


我不确定。但我认识指导委员会的一些人，他们一直以来都是社区的贡献者和开发者，可能超过了……在代码水平上，比 Guido 还多十五年。他们也都是非常深入的参与者，并且相当有主见，所以……


**00:23:23 - Saron Yitbarek**：


……而且相当投入。


**00:23:25 - Michael Kennedy**：


对，投入巨大。所以我认为这是行之有效的。另外，我觉得 Guido 的态度是，我仍然想参与其中，但不愿把自己的意志强加于人，否则一切都和原先没什么两样……我认为他可能倾向于选择一个更轻松的立场。


**00:23:43 - Saron Yitbarek**：


好的。我想知道，你是否认为在语言的初创阶段，为了项目能够启动运行，以便语言可以变得激进，从而得到那些突破性的好处，拥有一个<ruby> 终生仁慈独裁者 <rt>  benevolent dictator for life </rt></ruby>（BDFL）的管理模型是必要的？


**00:24:00 - Michael Kennedy**：


我认同。我有考虑过，大多数由委员会进行的设计，并不惊艳。在早期，有太多决策需要进行，语言如何工作？要不要用分号？怎么做这，怎么做那？所有这些内容都很难由委员会来决定，但是 Python 至今已经有 25 年的历史了。它有这么多人参与其中。我认为现在，它执行的是一个非常好的模型。


**00:24:29 - Michael Kennedy**：


他们还有过辩论，是否应该换上一个替补的 BDFL ，这次我们又要选出谁来做我们的领袖呢？好在他们最后决定反对这个提议。


**00:24:37 - Saron Yitbarek**：


好。如果 BDFL 的位置是极其重要的，我想知道，社区需要依赖他多久呢？听上去 Guido 是自行做出决定：嘿，太过分了，这不是一个可以延续的状态，我不干了。但是，假如他没有做出这样的决策，我想知道，是否有一个最佳的时机让这个人退出，让大家走向一个更民主的状态呢？


**00:25:01 - Michael Kennedy**：


嗯，一定会有的，对吧？我认为这个时机应该存在。一个人难以与社区、技术的脉搏以及新的趋势一直保持紧密联系，说个数，大概 40 年。这是件极其困难的事，因此一定要有这个转换。我不能确切的说究竟在什么时候，但我认为必须得等到其他人相比 BDFL 做出了更多的贡献。随着核心贡献者和开发者越来越多，然后你就，嗯，我在度假，看看这些新的事情发生了，它还能活下来。类似这样的事情。


**00:25:39 - Saron Yitbarek**：


嗯。就好像是社区在准备好后会自己告诉你。


**00:25:42 - Michael Kennedy**：


对，正是如此。


**00:25:48 - Saron Yitbarek**：


由于 Python 社区仍在自己的生命历程中，因此这里就是我们暂时告一段落的地方。Michael Kennedy 的两个播客会持续追踪 Python 之后的历程。欢迎订阅 Talk Python to Me 和 Python Bytes。


**00:26:07 - Saron Yitbarek**：


你听说过被称为古代雅典立法者的<ruby> 梭伦 <rt>  Solon </rt></ruby>的故事吗？ 他是个很酷的家伙。 在梭伦为<ruby> 民主雅典 <rt>  Athenian democracy </rt></ruby>建立宪法之后，他选择了自行流放。因为他清楚，继续执政只会增加他成为暴君的风险。我觉得 Guido van Rossum 就像是当代梭伦，为我们提供了数十年的标准实践，有点像是一部宪法。他建立起一个出色的编程语言，一个真正由开源社区自己创作的语言。然后他给予他们一个权力转移的时刻，他在那时告诉他们，你们由自己掌控，我不再是你们的独裁者了。


**00:26:54 - Saron Yitbarek**：


他确保了一定是由社区，而非他本人，来推动 Python 前行。某种意义上，Guido van Rossum 的“移交权利”是开源世界中所有编程语言的共同宣言，因为任何语言随着其社区的发展，终将面临唯有社区才可以解决的挑战。


**00:27:19 - Saron Yitbarek**：


在《代码英雄》的第三季中，我们会对编程语言的世界进行深入的挖掘。语言影响力的来源，正是它们如何通过强力的新方法去解决新的问题。在本季的剩余时间里，我们会探索 JavaScript、Perl、COBOL、Go，以及更多语言所具备的超能力。在下一集，我们会学习 BASIC 的故事，此外还会谈论到母语究竟教会了我们什么。


**00:27:47 - Saron Yitbarek**：


如果你想更深入地研究 Python 或你在本集里听到的任何内容，请转至 [redhat.com/commandlineheroes。最后，我是](http://redhat.com/commandlineheroes%E3%80%82%E6%9C%80%E5%90%8E%EF%BC%8C%E6%88%91%E6%98%AF) Saron Yitbarek。直到下期，请坚持编程。



> 
> **什么是 LCTT SIG 和 LCTT LCRH SIG**
> 
> 
> LCTT SIG 是 LCTT <ruby> 特别兴趣小组 <rt>  Special Interest Group </rt></ruby>，LCTT SIG 是针对特定领域、特定内容的翻译小组，翻译组成员将遵循 LCTT 流程和规范，参与翻译，并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽（Red Hat）发起的 SIG，当前专注任务是《代码英雄》系列播客的脚本汉化，已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。
> 
> 
> 欢迎[加入 LCRH SIG](/article-12436-1.html) 一同参与贡献，并领取红帽（Red Hat）和我们联合颁发的专属贡献者证书。
> 
> 
> 




---


via: <https://www.redhat.com/en/command-line-heroes/season-3/pythons-tale>


作者：[Red Hat](https://www.redhat.com/en/command-line-heroes) 选题：[bestony](https://github.com/bestony) 译者：[caiichenr](https://github.com/caiichenr) 校对：[acyanbird](https://github.com/acyanbird), [wxy](https://github.com/wxy)


本文由 [LCRH](https://github.com/LCTT/LCRH) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出


OK
![](/rhdc/managed-files/img-clh-s3e1-hero.gif)

A benevolent dictator for life steps down and changes the course of the Python language forever. Guido van Rossum's "Transfer of Power" memo brings attention to the way programming languages evolve.

In this episode, Emily Morehouse makes the connection between Python's technical extensibility and its inclusive community. Michael Kennedy explains how Python is both easy to learn and powerful enough to build YouTube and Instagram. And Diane Mueller highlights how the Python community took the lead on so many inclusive practices that are spreading in tech—including the rise of community-led decision-making.

Sometimes, a benevolent dictator can get a language started. But Python shows it's communities that make languages thrive.

**00:06** - *Saron Yitbarek*

On the morning of July 12, 2018, members of the Python community all around the globe woke up, grabbed a cup of coffee and popped open their laptops. Then one by one, they discovered a message from their benevolent dictator.

**00:24** - *Saron Yitbarek*

Guido van Rossum, the man who invented Python, one of the world's greatest programming languages, maybe the greatest programming language, had written to them all. So imagine all those Python fans reading these words.

**00:38** - *Multiple voice actors*

I don't ever want to have to fight so hard and find that so many people despise my decisions. I would like to remove myself entirely from the decision process by giving myself a permanent vacation from being benevolent dictator for life. You will all be on your own. I am not going to appoint a successor. What are you going to do. Create a democracy? Anarchy?

**01:00** - *Saron Yitbarek*

With that simple but earth-shattering note, Guido van Rossum, the man that the Python community had been following for decades ... Well, he basically just bowed out. His message was titled "Transfer of Power," and it would change the landscape of the Python language forever.

**01:19** - *Saron Yitbarek*

But more than that, it called into question how all our programing languages were going to evolve and thrive in the future. Were languages supposed to be run by one Benevolent Dictator, giving them shape and coherence? Or, in our open source world, were languages more like spoken languages, things that grow and react according to the behavior of a whole bunch of different speakers? The Python community, the fastest growing community of any language out there, was about to find out.

**01:56** - *Saron Yitbarek*

I'm Saron Yitbarek, and this is season 3 of Command Line Heroes, an original podcast from Red Hat. Last season on Command Line Heroes, we explored a huge stretch of territory, from gaming, to the art of the fail, to serverless development. We even ended up tracking one of NASA's rovers across the surface of Mars. But there is one episode that seemed to really capture everyone's imagination, the story of Grace Hopper. Her work on compilers led to the first high-level programming language, COBOL. We realized afterward that Grace Hopper's story was just one of so many stories of languages shaping the world of development and ops. New programming languages allow us to bridge humans and machines. They open gateways toward amazing new possibilities.

**02:51** - *Saron Yitbarek*

So, season 3 is all about those languages. We're talking JavaScript, we're talking BASIC, Go, Perl. And yes, we're talking Python. Python is where our journey begins because by following the tale of Python, we learn a crucial truth about the future of all our programming languages.

**03:16** - *Saron Yitbarek*

After Python's benevolent dictator abandoned his throne, the Python community was ... yeah, a bit lost. How do you organize things after a dictator steps down? Somebody suggested they can model their structure after the Presbyterian church. That idea didn't stick. To understand how Python did reorganize and what it means for the future of languages in general, we have to go back to the origin of the Python tale.

**03:46** - *Guido van Rossum*

Well, I'm writing all this code in C and it's getting kind of tedious.

**03:51** - *Saron Yitbarek*

That's the man himself, Guido van Rossum, Python's Benevolent Dictator. Van Rossum had worked for years at Amsterdam's famous Centrum Wiskunde & Informatica, where he helped develop the ABC programming language. Here, he's describing the moment he was working in C and saw a need for a brand new language.

**04:13** - *Guido van Rossum*

It still felt like there were lots of bugs and it was just slow going. I was thinking, hmm, if we had an ABC implementation here, I would just write a whole login program in 15 minutes, and then I would move onto the account management program or something, and in C, it takes me a week each. I somehow started thinking about coming up with a way to use some of ABC's features in the Amoeba environment.

**04:47** - *Saron Yitbarek*

Here's something we discovered in studying the history of programming languages. There's no such thing as brand new. They all borrow from old languages in order to cobble together solutions. Languages morph, they evolve, they branch. When van Rossum was getting frustrated with the possibilities out there, he imagined a language that could bridge the gap between C and shell programming. C was often overkill, but at the same time, shell scripts felt too cumbersome. There was a sweet spot between the two, and that was a spot that Python filled. When van Rossum first released Python in 1991, it was a revelation, for sysadmins especially. Here was a full-featured scripting language unlike anything that had come before.

**05:35** - *Emily Morehouse*

The first time that I used Python, I absolutely fell in love with it.

**05:39** - *Saron Yitbarek*

That's Emily Morehouse, one of five women currently working as a core developer on Python.

**05:44** - *Emily Morehouse*

I think seeing such a stark difference between a first language like C++ and then moving into something like Python, you are really able to see the elegance of the language and the language design itself. You're not necessarily having to deal with any of the hairy implementation details of memory management, and it was such a great way to build things so much faster, and build things for a much wider variety of applications.

**06:18** - *Saron Yitbarek*

Key to Python's attractiveness was its extensibility. A language like ABC, for example, is monolithic in design. There's no way for a real community to help define how the language will work. By contrast, van Rossum wanted Python to be open and extensible from the beginning.

**06:37** - *Emily Morehouse*

When approaching software design, you often will have to take either existing software or other software systems, and get them all to work together, and one of the very true values of how you can design software is making sure that it's extensible.

**06:58** - *Saron Yitbarek*

It sounds like a no-brainer, but not every language has achieved the level of extensibility that Python had right from the start. The truth is, if a language doesn't have extensibility baked into it, there's a good chance it will end up collapsing under its own weight as it grows.

**07:16** - *Emily Morehouse*

Python has been designed in a very interesting way that allows it to be extensible at its core. You can actually patch different pieces of the system at runtime, so if you want to switch out how modules are imported, or you want to switch out your string types or your integer types, Python allows you to do all these things fairly easily.

**07:44** - *Emily Morehouse*

At the heart of Python's extensibility is something called C extensions, or C modules. So Python has actually been designed to give you an entry point to other languages, and essentially, if you can write a C extension or a C module that can then bridge to hundreds of other languages, you can kind of hack Python.

**08:16** - *Saron Yitbarek*

It's all about the user's ability to adapt the language to their own needs. So Python, as Guido van Rossum envisioned it, was never going to be limited to one dictator's vision. His “Transfer of Power” memo was a long-time coming. Van Rossum understood the power of community influence, the power of bringing everyone under a big tent. Yes, he ended up getting called a dictator, but it was benevolent dictator.

**08:44** - *Emily Morehouse*

I think one of the reasons why Python has become such a diverse community is because of Guido. Python has female core developers now because Guido wanted that change to be made, and made it happen himself.

**09:01** - *Saron Yitbarek*

Naomi Ceder, the chair of the Python Software Foundation, once gave a keynote where she said, "Python. Come for the language, and stay for the community." And that may be Guido van Rossum's greatest legacy. Not just Python, but the Python community he made room for. He made Python seriously extensible, but it was, in a way, socially extensible, too. It always had room for human additions.

**09:29** - *Emily Morehouse*

You have so many different applications of Python that your community is then, by definition, and by construct, very diverse. So it's really, really broadened the community reach.

**09:51** - *Saron Yitbarek*

Emily Morehouse is a core Python developer and Director of Engineering at Cuttlesoft.

**09:59** - *Saron Yitbarek*

Once Python hatched, it started to grow like nothing before. I'm looking at a Stack Overflow chart that shows the amount of chatter they get on each language, and Python's line is rocketing. In 2018, more people did Google searches for Python than for Kim Kardashian. All that excitement has it jostling for the title of most-used language against options like Java, C, and C++.

**10:26** - *Saron Yitbarek*

So, what's with all that love, anyway? To find out, I caught up with developer Michael Kennedy, who lives at the center of the Python zeitgeist. Michael hosts not one, but two podcasts devoted to Python. Talk Python to Me, and Python Bytes. We'll throw some links in the show notes so you can check them out. Michael and I got chatting about how Python really hit its stride.

**10:52** - *Michael Kennedy*

If you look at the analytics and the surveys and stuff like that, it really seems to be that 2012 is a strong inflection point, and the most significant thing that happened around 2012 is the data science community switched away from things like R, some other stuff, to really focus on Python. Ever since that's happened, there's been even more momentum there, more machine learning libraries. A lot of the popular machine learning libraries, for example, are Python first, and then they'll consider other languages.

**11:22** - *Saron Yitbarek*

Yeah, that's been my understanding, too. When I think about Python, I know it can be used for web development; I know a lot of people who still use it to build web apps. But I feel like the heart of it nowadays is more in the data science part of things. What do you think led to that happening? Why did the data science community leave things, or I can't say leave, but move away from things like R?

**11:44** - *Michael Kennedy*

Right, exactly.

**11:45** - *Saron Yitbarek*

Where'd that come from?

**11:46** - *Michael Kennedy*

I think there's two things at play in that transition. One of those things certainly has to do with Python being a real, in quotes, "real" programming language, in the sense that you can build simple things. You can build graphs and data analysis tools and whatnot. But you can also build Instagram and YouTube and all these other ...

**12:08** - *Saron Yitbarek*

Yeah, literally.

**12:09** - *Michael Kennedy*

Whereas things like R ... Yeah, literally, quite literally. Those are written in Python. So there are other languages they were using, like R at the time, was sort of scientific, statistics type programming language that did data sciencey stuff. But if you wanted to go build a web app to show off your results, well, what are you going to use? Node or Python or ... You couldn't stick with it.

**12:31** - *Saron Yitbarek*

Yeah, that's a good point.

**12:31** - *Michael Kennedy*

So Python has this really nice ability that it ... Basically, it's a real programming language. So that's number one. Number two is, Python is pretty unique in this, what I call ... It's a full-spectrum language. What I mean by full spectrum is, I can be a biologist or astrophysicist or something, and I want to explore a little bit of data, I want to load up a CSV file and run some commands and get a picture. I don't need to understand classes, static methods, static main void, compilation, linking. You don't have to go through all the stuff that some programming languages do just to get started. You can do just a couple lines of code, type a command, and it runs.

**13:14** - *Michael Kennedy*

Yet, you can build things like Instagram and so on. It can grow into this absolutely professional system that you can use, but you're not forced to understand all these deep abstractions that are meant for large applications right away. You can adopt them as you need it. Does that make sense?

**13:30** - *Saron Yitbarek*

Yeah, yeah. That makes a lot of sense. So we talked about that inflection point around 2012, and when I was looking and doing some research about Python, Python is actually one of the world's most Googled, Google searched, coding languages.

**13:42** - *Michael Kennedy*

Wow.

**13:43** - *Saron Yitbarek*

Do you feel like it's really picking up and growing at this point?

**13:47** - *Michael Kennedy*

I do think it's picking up and that it's growing. In those last number of years we talked about, there's certainly more enterprise groups that are using Python. It used to be .NET, Java, maybe some C. That was the answer, and now Python is starting to make its way in, and I think it's getting sideloaded into those environments somewhat, and by that, I mean the data science folks. It's like, well, obviously we're going to use Jupyter Lab and all the cool notebook stuff. That's Python.

**14:17** - *Michael Kennedy*

Data science doesn't have such a legacy code base story. If I'm going to start a new project where we're exploring some ad campaign or some science results, that doesn't have a huge dependency on old stuff. Models and data expire, so it's more easy for the data science world to switch technologies or stay more current.

**14:37** - *Saron Yitbarek*

That's a good point.

**14:39** - *Michael Kennedy*

Yeah, thanks.

**14:42** - *Saron Yitbarek*

Yeah. And it sounds like it's not going to stop growing anytime soon. It sounds like it's going to keep growing, and the momentum is still going to carry it forward. What do you think is going to influence that growth the most, moving forward?

**14:52** - *Michael Kennedy*

I feel like it's this ball rolling downhill. We have all the libraries and packages you can use with Python. It's a ridiculous number that we have now. A year or two ago, it was 100,000. Now it's 170,000 packages or projects.

**15:10** - *Saron Yitbarek*

Wow.

**15:10** - *Michael Kennedy*

You can just, in a couple lines of code, oh, I'd like to do machine learning. Someone at the conference showed us an example of, here's how we're going to train a machine learning system to be given a bunch of faces of people, choose what type of eyes they have. Do they have round eyes, do they have oval eyes, things like that. Apparently this drives the kind of makeup you have or something.

**15:30** - *Saron Yitbarek*

Oh, wow.

**15:31** - *Michael Kennedy*

This woman did a great presentation, and she said, here's the code to train this model, and then to ask it questions. And it was 15 lines of code from beginning to end.

**15:40** - *Saron Yitbarek*

Wow.

**15:40** - *Michael Kennedy*

And then you have, here's your thing that tells you, given a picture, what your eyes are like.

**15:44** - *Saron Yitbarek*

Oh my goodness.

**15:45** - *Michael Kennedy*

The momentum of those types of things, these little, super powerful things, you can just bring in through these packages is ridiculous.

**15:53** - *Saron Yitbarek*

Wow, that's so cool.

**15:54** - *Michael Kennedy*

Isn't that crazy?

**15:56** - *Saron Yitbarek*

Okay. Let's pause that conversation for a sec. We're going to hear more from Michael later on, but I want to go back and underline something. It's what makes all those amazing Python qualities possible in the first place. The Python community. A defining part of Python's success is that huge, responsive community.

**16:21** - *Saron Yitbarek*

At the same time, as we saw with van Rossum's departure, the size of that community can be overwhelming. Imagine having to carry the hangups of an entire language around with you. In a way, attracting such a massive community made the idea of a single dictator for life just untenable. Van Rossum wasn't necessarily prepared for how huge a response his language was going to receive, but, almost organically, community members pulled together Python's mailing list, its newsgroup, its website, and eventually, the process for discussing language changes via PEPs. That stands for Python Enhancement Proposals.

**17:05** - *Saron Yitbarek*

So, despite the dictator title, van Rossum was building a language that you could really talk back to, a language that users could help build. I'm betting that despite his frustration at that moment of departure, van Rossum knew that a dynamic community would give more to his language than it could ever take away.

**17:25** - *Diane Mueller*

My name is Diane Mueller.

**17:27** - *Saron Yitbarek*

Diane's the Director of Community Development at Red Hat for the cloud platform. Over the past 30 years, she's witnessed a powerful evolution in the strength of open source communities, and she's been impressed by Python's community in particular.

**17:42** - *Diane Mueller*

The Python community has done amazing ... They brought in the concept of codes of conduct for conferences, diversity scholarships, all of that sort of stuff. By bringing in the different voices and the different perspectives, we get a better and more innovative project that will live on longer, and hopefully work better for more people.

**18:03** - *Diane Mueller*

Even the mistakes they made, they handled openly and transparently and through collaboration with the community after seeing that sort of spirit wither away into a bro culture from Silicon Valley and startups, Python felt like coming back home to the roots of where I got started, and the community that had been around back in the day. So it was pretty inspiring and pretty awesome.

**18:33** - *Saron Yitbarek*

Inspiring largely because Python redefined what it means to be part of the community in the first place. I mentioned that Guido van Rossum started championing women in the community, even as he stepped down. But he also helped widen the tent in a more general way.

**18:50** - *Diane Mueller*

Individuals bring a lot more to the table than just code contributions. Mostly community managers and project leads focus on trying to get people to contribute to their project, and in the Python community, people were really highly encouraging you to work on documentation, to help run the conferences, to help promote diversity. There were all sorts of other things you could do to be part of the Python community.

**19:19** - *Diane Mueller*

So that idea, that contribution isn't just about code, it's about participation, it's about learning and education, and it's a lot about documentation, was the way into community for a lot of people.

**19:35** - *Saron Yitbarek*

Of course, we've still got a ways to go.

**19:37** - *Diane Mueller*

Meritocracy is still very technically focused. No one's going to doubt that. But I think you also see the belief that community management and community managers ... We're skilled parts of a community, as opposed to just the person we hired to create our events for us.

**19:55** - *Saron Yitbarek*

For Diane, van Rossum's decision to officially abdicate his dictator role is part of a global shift. It's moving away from older, monolithic kinds of language-building.

**20:07** - *Saron Yitbarek*

I think we might have moved on from that model, though every once in a while, I hear someone say, yeah, I'm the benevolent dictator for life of this project, and I'm like, yeah, I don't think so.

**20:21** - *Saron Yitbarek*

Diane Mueller is a Director of Community Development at Red Hat.

**20:28** - *Saron Yitbarek*

By the time Guido van Rossum sent that jaw-dropping “Transfer of Power” memo, the Python community was a powerhouse unto itself. It's common for projects to adopt new governance models as they grow, and in many ways, as we've seen, these folks were ready to take charge of their own language. But I still want to know, how exactly did that pan out? What happened after van Rossum stepped away. Let's go back to our conversation with Michael Kennedy to get some answers.

**20:59** - *Saron Yitbarek*

... back and away from Python, how has the community been doing without him?

**21:05** - *Michael Kennedy*

Well, the community has been okay, but we've been in ... at the highest level, kind of a stasis. The runtime and the language just basically had to go into a coma. There were proposals for interesting things, and they were sometimes complicated, but sometimes really simple. Like, hey, wouldn't it be great if we could ship Python yearly instead of every 18 months, so it's a little more predictable, tied around the yearly conference, things like that.

**21:33** - *Saron Yitbarek*

Sure, yeah.

**21:33** - *Michael Kennedy*

That couldn't be decided, because there was no way to make decisions after he stepped down. He basically said, I'm going to go on vacation. This is up to you guys, you have to figure out how to keep running this. I'm not even going to tell you how to decide how to keep running it. This is your problem now.

**21:48** - *Saron Yitbarek*

Wow. That sounds dramatic, but check this out. Remember those Python Enhancement Proposals, the PEPs that allowed the community to give feedback? Well, PEPs to the rescue.

**22:02** - *Michael Kennedy*

There was a series of them trying to determine new governance models for the Python community. Well, the big news is they've decided on one of those, called the Steering Council, which is five people—I believe they all have equal votes—and they've recently elected those five. So instead of it being on one person's shoulders, it's on all of them.

**22:23** - *Michael Kennedy*

One thing that I think is really nice is that we have Guido van Rossum as one of those members. He stepped away and said, I cannot be the single source of ... all the pressure of people wanting changes and feedback. But he still, he didn't completely run away from the language. He's still a core developer, and he's on the Steering Council. So he still has some say, but he doesn't have to take it on entirely, which is pretty cool.

**22:47** - *Saron Yitbarek*

I'm wondering how that works out in reality, because I feel like if I'm on the Steering Council and I'm sitting next to the creator of the language, I'd probably tend to agree with whatever he says.

**22:58** - *Michael Kennedy*

Right, exactly. All things being equal, ties go to Guido.

**23:03** - *Saron Yitbarek*

Yeah, exactly.

**23:03** - *Michael Kennedy*

I don't know. I do know some of the people on the Steering Council, and they've been constant contributors and developers, maybe even to ... at a code level, more so than Guido for 15 years. So they're also pretty deeply involved and pretty opinionated, so-

**23:23** - *Saron Yitbarek*

And invested.

**23:25** - *Michael Kennedy*

Yeah, certainly invested. So I feel like it's going to be okay. Also, I feel like Guido's probably like, I still want to be involved, but he's probably done trying to impose his will on people, because that will just put him right back into the same ... I think he's probably going to take a more relaxed position.

**23:43** - *Saron Yitbarek*

Okay. I'm wondering, do you feel like this model of having a benevolent dictator for life (BDFL), is that model almost required at the beginning of a language, in order to get it up and running, in order for it to be radical and have these breakthrough advances?

**24:00** - *Michael Kennedy*

I do. I think stuff, mostly design by committee, is not super. So in the early days, so many decisions about, how does the language work? Does it use semicolons? How does it do this, does it do that? All that stuff is really hard to committee decide, but Python is over 25 years old now. It's got so many people involved in it. I think now, that this is a pretty good model.

**24:29** - *Michael Kennedy*

They also debated whether or not there should just be a replacement BDFL, who do we elect now to be our king? They decided against that, though.

**24:37** - *Saron Yitbarek*

Okay. If that BDFL position is so important, I'm wondering, how long does a community need one? It sounds like Guido decided on his own, hey, this is too much. This is not sustainable anymore, I'm not doing this anymore. But if it wasn't his decision, I'm wondering, is there an optimal time where that person should step down and we should move to something a little bit more democratic?

**25:01** - *Michael Kennedy*

Yeah, there has to be, right? I think that there probably is. It's hard for one person to still be completely connected with the pulse of the community and technology and the new trends, let's say, 40 years out. That would be super difficult, so there's got to be this switchover. I don't really know where it is, but I feel like it's got to be after you have other people doing more work than the BDFL is doing. More core contributors and developers, and you're just like, well, I was on vacation, and look at all these new things that happened, and it survived. Something to that effect.

**25:39** - *Saron Yitbarek*

Yeah. It's almost like the community will tell you when it's ready.

**25:42** - *Michael Kennedy*

Right, exactly.

**25:48** - *Saron Yitbarek*

The Python community is still taking on a life of its own, so that's where we'll leave them for now. Michael Kennedy is the host of two podcasts that'll keep on tracking their progression in the meantime. You can check out Talk Python to Me and Python Bytes.

**26:07** - *Saron Yitbarek*

Have you ever heard the story of Solon, the guy known as the lawgiver of ancient Athens? Pretty cool guy. After Solon established a constitution for Athenian democracy, he went off into a state of voluntary exile. That's because he knew there was a danger he'd become a tyrant if he stayed in power. I guess Guido van Rossum is a latter day Solon, giving us decades of standard practice, which is a bit like a constitution. Here's a guy who set up a brilliant programming language, a language where an open source community could really make it their own. Then, he also gave them that transfer of power moment, where he told them, you're on your own. I'm no longer your dictator.

**26:54** - *Saron Yitbarek*

He made sure that it had to be the community, not himself, that carried the Python mantle forward. In a way, Guido van Rossum's “Transfer of Power” memo is a manifesto for all programming languages in an open source world, because as any language grows its community, it ends up taking on challenges that only the community can solve.

**27:19** - *Saron Yitbarek*

In season 3 of Command Line Heroes, we're doing a deep dive into the world of programming languages. Languages gain influence because they solve a new problem in some powerful new way, and for the rest of the season, we're uncovering the superpowers baked into JavaScript, Perl, COBOL, Go, and so much more. Next episode, we'll learn the story of BASIC, and what it teaches us about everybody's first language.

**27:47** - *Saron Yitbarek*

If you want to dive deeper into Python or anything else you've heard on this episode, head over to redhat.com/commandlineheroes. Until then, I'm Saron Yitbarek. Keep on coding.

### Keep going

### Python's Past, Present, and Future

On opensource.com, Matthew Broberg takes a closer look at Python's potential and how its community has been pushing for change long before van Rossum stepped down.

### Red Hat Software Collections: Python

Check out this step by step guide to get Python running on Red Hat Enterprise Linux.

### Enjoy this episode's artwork on your device

Download the Command Line Heroes artwork and set it as your background.