Python 正在吞噬世界:一个开发人员的业余项目如何成为地球上最热门的编程语言

1994 年底,一群来自美国各地的程序员聚集在一起讨论他们的新秘密武器。

巴里·华沙 (Barry Warsaw) 是这 20 名左右的人之一出席首届新创建的 Python 编程语言研讨会,并回忆起早期用户的兴奋之情。

“我记得特别记得一个人说过,‘你不能告诉任何人我在这里,因为我们使用 Python 是一种竞争优势。’”这是他们的秘密武器吧?”

即使在当时位于马里兰州的美国国家标准局的早期会议上,Warsaw 也表示,很明显 Python 提供了一些新的东西,因为编写代码和简单地完成工作是多么容易。

“当我第一次接触 Python 时,我知道它有一些特别之处。它是可读性的结合,而且编写 Python 代码是一种乐趣,”他回忆道。

如今,人们对 Python 的热情已经远远超出了最初的开发者圈子,一些人预测它将很快成为最流行的语言。世界上最流行的编程语言,随着它继续添加。每天有数百万人使用 Python,用户呈指数级增长,几乎没有减弱的迹象。

下载本文的 PDF 版本(需要免费注册)。

Python 被专业和业余开发人员用来完成大大小小的任务,并且在网络开发人员、数据科学家和系统管理员中特别受欢迎。今年早些时候是 Python帮助将大约 5 亿万亿公里外的黑洞的第一张图像拼凑在一起,就像 Python 为全球桌面 PC 上无数被黑客攻击的脚本提供支持一样。

Python 在一些世界上最知名的组织中发挥着举足轻重的作用,,为照片分享现象 Instagram 提供动力,并帮助 NASA 进行太空探索。

在某些方面,Python 的崛起就像它以它命名的英国喜剧团体一样超现实和令人惊讶,并且在其自己的利基市场中,这种编码语言也变得同样著名和有影响力。

该编程语言是由荷兰程序员 Guido van Rossum 作为一个业余项目启动的。 20 世纪 80 年代末,van Rossum 在荷兰国家数学和计算机科学研究中心 Centrum Wiskunde & Informatica (CWI) 从事分布式系统的研究。由于对现有编程语言的不足感到沮丧,他决定创建一种新的语言——一种既易于使用又功能强大的语言。

Guido van Rossum,2001 年,Python 软件基金会成立的那一年。
图片:吉多·范·罗森

对于局外人来说,创建自己的编程语言可能类似于说“我将建造自己的飞机”,但当时三十多岁的范罗苏姆已经领先了一步。他与 CWI 的一个团队一起工作了三年,该团队创建了 ABC(一种解释性编程语言),因此他已经深入了解如何构建执行程序员指令的解释器,以及新语言所需的语法构建块。

同样重要的是要认识到,使用当时范罗苏姆可用的有限编程语言来完成任何事情是多么困难。他正在开发的 Amoeba 分布式计算系统要求他在 C 或 Unix shell 中工作,这两种语言都有很大的局限性。 C 语言不仅要求开发人员努力应对手动管理内存的复杂性并导航潜在错误的雷区,而且还缺乏用于日常开发任务的可重用代码库,要求开发人员在每个新项目中重新发明轮子。与此同时,Unix shell 也有不同的问题——它提供了一套用于常见任务的实用程序,但运行速度太慢,无法处理复杂的逻辑。

这些语言对开发人员的限制如此之大,对于 van Rossum 来说,创建自己的解释语言(一种借用 ABC 语言的最佳功能)似乎确实是最佳选择。

“我基本上想‘好吧,为什么我不创建自己的语言’,从 ABC 窃取我的想法,但将项目规模从需要三年才能完成的项目缩小到我自己可以完成的项目,就像三个月内完成的一个臭鼬项目一样,于是 Python 诞生了,”他说。

Van Rossum 于 1989 年底开始认真工作,借用了他最喜欢的喜剧团 Monty Python's Flying Circus 的名字——后来才出现了与蛇和缠绕在一起的 Python 标志的联系——并尽可能地致力于这个项目。

“当时我的社交生活不是很丰富。所以,我不只是看电视,而是编码,或者有时同时做这两件事,”他承认。

虽然 Python 名义上是为了帮助他工作而创建的,但 van Rossum 认为更多的推动力可能是创建自己的语言的挑战。

“我不知道我有多认真地相信这真的会让我更有效率。我认为,在某种程度上,我真的很喜欢自己启动一个大项目的想法,按照我想要的方式布置和设计我想要的代码。编程对我来说很有趣,”他说。

对于个人来说创建自己的编程语言听起来很不寻常,但 van Rossum 的同伴很好。在 20 世纪 80 年代末,由于个人对当时开发人员可用的工具感到沮丧,各种主要语言应运而生。Larry Wall 曾说过一句名言,他之所以创建 Perl,是因为在编码时解决问题是多么困难。以及大量的“懒惰、急躁和傲慢”。相似地John Ousterhout 寻找一种更好的语言来创建用于构建集成电路的交互式工具,这促使他设计了 Tcl

在短短三个月内,van Rossum 就为 Python 作为一种解释性语言创建了一个工作原型,他说这种语言缺少现代功能,但仍然可以被认为是当今使用的语言。

“当今的 Python 有许多当时不存在的重要抽象,但该语言看起来非常相似,”他说。

看:更多必读的 Python 报道(Flipboard 上的科技共和国)

“那时,解释器和语言的所有基本组件都可以工作。来自第一个工作 Python 解释器的简单 Python 程序今天可能仍然可以工作,”他说,并补充说,函数的定义方式相同,缩进工作方式相同,字典和元组使用相同的语法创建,并且有熟悉的交互式提示,您可以在其中键入 Python 立即执行计算。

Karen Roby 采访 Nick Heath,了解他关于 Python 编程语言演变的封面故事。

然而,虽然他的两位同事喜欢上了这种语言并立即开始使用它,但范罗苏姆并没有对其更广泛的采用抱有太大的期望,因为他已经体验到了在前互联网时代让一种编程语言起步是多么困难。

虽然今天与世界共享软件只需点击几下,但在 20 世纪 80 年代,这是一件更加费力的事情,van Rossum 回忆起尝试分发 Python 前身 ABC 的困难。

“我记得 85 年左右,去美国度假,这是我第一次访问美国,行李中放着一盘磁带,”van Rossum 说道。

他掌握了通过当时简陋的电子邮件系统(该系统不适合处理像源代码这样大的东西)对 ABC 感兴趣的人的地址和电话号码,于是他挨家挨户地发布了这些磁带。尽管做出了这些努力,ABC 并没有真正起飞。

“因此,难怪我们在 ABC 的发行方面并没有取得多大进展,尽管它有很多出色的特性,”他说。但随着互联网革命的兴起,分发 Python 会变得更加容易,而无需装满磁带的手提箱。

Van Rossum 于 1991 年通过 alt.sources 新闻组向全世界发布了 Python,这在很大程度上是一种开源许可,比该术语首次被创造的六年还要早。虽然 Python 解释器仍然需要将 21 个独立部分组合成一个压缩文件,并连夜在 Usenet 网络上下载,但它仍然是比几年前的手工交付高效得多的交付机制。

“我希望能取得某种成功,但我至少做了另一件事,我已经发布了,基本上最终以失败告终,”他说。

考虑到他过去的经验,van Rossum 表示,他花了很长时间才对 Python 不断增长的用户群有了任何了解。渐渐地,他意识到势头正在增强,经过一段时间与 Python 社区的定期互动后,他意识到自己已经创造了一些可能成功的东西。

“我认为这种认识来得非常非常缓慢。在我们发布第一个开源版本之后,我建立了一种制作新版本并与刚刚出现的 Python 社区互动的节奏。这感觉就像一件大事。”

为什么 Python 获胜

正是这种感觉,Python 是一门时代已经到来的语言,这一点也让 van Rossum 感到震惊,因为该语言在 20 世纪 90 年代初到中期开始受到关注。

Van Rossum 认为,开发人员被 Python 吸引的原因与他最初创建 Python 的感觉相同。他们想要一种高级脚本语言,在易于使用和功能强大之间取得平衡,在处理复杂逻辑时不受 Unix shell 的限制。他们希望结束 C 语言对开发人员在内存管理方面的争论以及在每个项目开始时必须为相同的基本任务重新实现代码的坚持。

Warsaw 表示,Python 在可用性和功能之间取得了平衡——这种平衡在 20 世纪 90 年代初期的任何主要编程语言中都没有真正实现过。 “我一直在编写大量 Perl、Tcl 和 C 代码,但感觉并不是很有趣。Python 出现了,我当时想,‘哇,这让编程又变得有趣了’,”他说。

Python 提供的、并且仍然提供的是清晰且明确的语法,其中缩进将代码分组为块,使代码更易于开发人员理解。

看:(科技共和国)

分析公司 Gartner 应用平台策略团队的研究总监 Fintan Ryan 表示,无论是现在还是 20 世纪 90 年代,清晰度在赢得开发人员的支持方面发挥了重要作用,尽管事实证明,将缩进的重要性归结为分歧。 “它提供了非常干净的语法。你可以在其他语言中强制执行它,但 Python 会自动执行它。有些程序员喜欢它,有些程序员讨厌它,”他说。

Barry Warsaw 在 1994 年的第一届 Python 研讨会上。
图片:巴里·华沙

Python 优先考虑干净且可读的代码这一事实并非偶然,van Rossum 是据记录,编程语言不仅是在告诉计算机做什么,也是在开发人员之间交流想法

Ryan 表示,除了这种可读性之外,Python 从一开始就提供了一定程度的内置功能,这使得它从其他语言中脱颖而出。 “从一开始你就拥有了类和异常处理等功能。Python 还提供了对 lambda、map 和 filter 等函数的支持,这在很多情况下都证明非常有用,”他说。

如果 80 年代末流行的编程语言变得更好的话,Python 可能根本就不会存在,van Rossum 创建 Python 的动机之一是 Perl 脚本语言与他在 CWI 开发的 Amoeba 分布式计算系统不兼容。 “Python 的幸运在于 Perl 无法移植到 Amoeba,”他说。 “如果能够将 Perl 移植到 Amoeba,我就永远不会想到开始自己的语言。”

尽管 Python 在发布后吸引了一批铁杆粉丝的用户群,但在 20 世纪 90 年代,Python 在很大程度上仍然是一种处于劣势的编程语言。 Van Rossum 表示,该语言的竞争对手是 Tcl/Tk 和 Perl,两者都拥有 Python 的简单易用和相对强大的目标。

“在 90 年代,排名前三的语言中,Perl 绝对是第一——800 磅重的大猩猩——Tcl/Tk 是第二,而 Python 则排名第三,”他说。

根据年度报告,就活跃开发人员而言,如今 Python 是增长最快的编程语言Stack Overflow 开发者调查,这是可用的编程语言使用的最全面的快照之一,而 Perl 的规模已经缩小到在最新的 Stack Overflow 报告中没有被提及的程度。

下图体现了这种爆炸性增长,显示了近年来 Stack Overflow 上与 Python 相关的问题的浏览量增长速度远远快于与其他语言相关的问题的浏览量。

相对于其他编程语言,Stack Overflow 上 Python 问题浏览量的增长反映了 Python 用户的巨大增长。
图片:堆栈溢出

那么 Python 是如何超越它以前的竞争对手的,以及如何解释这两种语言截然不同的命运呢? Van Rossum 认为,这与一旦代码库增长超过一定规模后维护代码库的容易程度有关。 “人们的经验是,对于 10 行脚本,Perl 是完美的,”他说。 “但是,如果您有 500 行主线代码和几千行库,则需要大量的纪律才能使代码在 Perl 中可维护。而在 Python 中,即使您没有那么多的纪律,代码仍然具有相当的可读性和可维护性。”

van Rossum 认为 Python 是一种易于上手且足够强大的编程语言,可用于编写大型应用程序,这正是 Python 在 20 世纪 90 年代取得初步成功的原因。

“有一些互联网开发人员(其中很多是早期的互联网工作)想要编写越来越大的应用程序,并且他们意识到用 Python 编写应用程序比用 C、C++ 或 Java 编写应用程序要省力得多。”

随着 Python 的使用在 20 世纪 90 年代普及,仍在 CWI 工作的 van Rossum 发现他的创作越来越多地让他与来自世界各地的人们接触。

“我做了一些事情,它与世界各地的人们联系在一起——澳大利亚的人们、美国的人们、欧洲其他国家的人们。我正在享受我一生中的时光,”他说。

看:编程语言:Python 预计将在未来 4 年内超越 C 和 Java(ZD网)

Python 和网络

到 20 世纪 90 年代中期,Python 开始以新的方式使用,从音频录制和播放脚本到首次涉足 Web 开发,后者将继续成为 Python 的中流砥柱。

“其中一件大事是 Web 开发,这对我来说也是一件非常有趣的事情,”van Rossum 说,他说 Python 开始与 Perl 和 Shell 脚本一起用于 Web 服务器上的后端脚本编写。 “你可以创建动态网页,这成为我最喜欢的 Python 应用程序之一。”

Gartner 的 Ryan 表示,Python 在 20 世纪 90 年代深受开发人员欢迎的原因在于它成为快速创建强大脚本的首选。 “作为一种功能非常强大的脚本语言,降低了许多用户的进入门槛,”他说。

然而,瑞安表示,更重要的是,该语言具有足够的通用性,并且很容易掌握,因此吸引了许多具有各种技术专业知识的不同类型的用户。 “系统管理员和其他人将语言用于系统自动化和编程,开发人员则将语言用于函数式编程和具有可用继承的类等功能,例如 Perl 在这方面的功能要少得多,”他说。 “一旦人们熟悉了这门语言,而且它的入门曲线相当低,他们很快就会变得非常高效。”

到 1994 年,Python 引起了 Michael McLay 的注意,他在美国国家标准局 (NBS)(现为美国国家标准与技术研究所 (NIST))担任高级职务。 McLay 预示着 Python 将如何因其易用性而受到研究人员和科学家的青睐,他对 NBS 的科学家如何使用 Python 很感兴趣,van Rossum 称这些科学家“有大量数据需要处理,但并不是很好的程序员”。

为了帮助向局内其他人推销 Python,McLay 邀请当时仍在荷兰 CWI 工作的 van Rossum 作为客座研究员在 NIST 工作了两个月。事实证明,这个位置既是 Python 未来发展的催化剂,也是 van Rossum 生活发生重大变化的催化剂。

照片中,van Rossum 在第一届 Python 研讨会上与 Warsaw 和当时在 CNRI 与 Warsaw 一起工作的 Roger Masse 进行讨论。
图片来源:巴里·华沙

正是在这次实习期间,第一届 Python 研讨会将在 NBS 办公室举行,van Rossum、Barry Warsaw 和其他早期 Python 爱好者齐聚一堂,讨论他们使用 Python 所做的事情以及对该语言未来发展的希望。

在国家统计局办公室期间,范罗森遇到了鲍勃·卡恩 (Bob Kahn),后者因帮助开发互联网基础技术之一:TCP/IP 协议而闻名。

那次会议带来了与卡恩一起在国家研究计划公司 (CNRI) 工作的机会,该公司是一家位于弗吉尼亚州的非营利性研究组织,专注于网络技术的战略发展。

正如 Python 满足了对新型编程语言的需求一样,van Rossum 表示,当他开始质疑自己在 CWI 的未来时,这份工作机会就来了。

“CWI 更像是一个学术机构,他们对我施加了温和的压力,要么获得博士学位,要么面临不得不在其他地方找到工作的前景,”他说。

看:(科技共和国)

“在我 35 岁左右的年纪,必须转向攻读博士学位的前景对我来说并没有真正的吸引力。早些时候,由于 Python,其他一些前景也出现在我的面前,经过一系列电话和思考后,我决定不去读它。但在这里,我喜欢这里的人,我喜欢他们为我提供的东西和项目,所以我就去了。”

在 CNRI,van Rossum 在 Python 爱好者团队的帮助下整合了许多用于管理 Python 语言的结构。 1995 年 4 月加入 CNRI 后,van Rossum 领导了一个小型开发团队,致力于构建 Knowbot 程序,称为移动代理的软件,设计用于在互联网等分布式计算机系统上运行。

该团队使用 Python 工作,Jeremy Hylton、Roger Masse、Barry Warsaw、Ken Manheimer 和 Fred Drake 也加入了 van Rossum,他们都将继续在 Python 社区中发挥重要作用。

“我们最终得到了 4 到 10 人的团队,其中大多数人在 CNRI 工作,他们是 Python 开发的核​​心,”van Rossum 说。

当范罗苏姆在 CNRI 工作时,这个团队帮助他创建了python.org 网站、用于管理核心代码库更改的 CVS 服务器以及邮件列表Python 特别兴趣小组,致力于改进和维护 Python 语言。

自 1991 年公开发布以来,Python 用户社区已显着增长,到本世纪下半叶,该语言吸引了相当大的全球用户群。在此期间,随着语言的前身的建立,语言的管理开始正规化。Python软件基础(PSF),该组织于 2001 年成立。随着社区的发展,自 1994 年开始的两年一度的 Python 研讨会演变成规模更大的年度活动,并最终发展成为 PSF 的年度 PyCon,至今仍然势头强劲。

到了 21 世纪之交,这门语言的规模已经超过了任何人的规模,有相当大的社区在其发展中发挥了积极的作用,距离 1994 年夏天已经很远了,当时早期的 Python 用户还在担心这门语言会发生什么事情。如果吉多被公共汽车撞了'。

然而,Van Rossum 继续发挥着核心作用,他作为该语言核心的想法从未消失,他被昵称为该语言的“终身仁慈的独裁者”(BDFL) 就证明了这一点,这个半开玩笑的头衔多年来一直存在。

“在很大程度上,在很长一段时间里,我能够很好地承受压力,而且我通常还培养了项目管理技能,使我能够委派很多事情,让人们掌控自己的命运,”范罗苏姆说。

Gartner 的 Ryan 表示,一种语言的创建者充当该语言的管理者并不特别罕见,他引用了 Perl 的 Larry Wall 和 JavaScript 运行时 Node.js 的 Ryan Dahl 的例子,但他表示,van Rossum 因在管理 Python 方面的公平性而受到认可。

“人们普遍认为,他对项目方向和整体管理工作非常平衡,”他说。

事实上,van Rossum 认为,Python 开发的开放性(通过核心开发人员社区之间的公开辩论)是 Python 成功的决定性因素。

看:(科技共和国高级版)

Python的演变

在随后的几年里,Python 取得了重大飞跃,2008 年 Python 3.0 的引入使该语言实现了现代化,最近该语言的管理方式也发生了重大变化。

这些变化是在去年引发的,当时 van Rossum 辞去了 BDFL 的领导职务,因为公众对在该语言中引入赋值表达式存在分歧。Python 增强提案 PEP572

虽然它们的引入旨在使编写更高效的代码成为可能,但范罗苏姆在网上面临着反对这一变化的人的严厉批评,一些人认为它们的使用会降低代码的可读性和维护难度。

范罗苏姆说,他习惯于就新功能进行辩论,但正是一些批评者的顽固态度以及某些攻击的个人性质使他决定辞职。

“我对那些在技术上持不同意见的人在社交媒体上开始抱怨决策过程被破坏,或者我犯了一个严重的错误感到非常失望。我感到在背后受到了攻击,”他说。

看:Python 与 R 以及最高薪水:数据科学工作的热门趋势(ZD网)

“过去,一直很明显的是,如果要做出关于更改语言或改进功能的决定,一大群核心开发人员会讨论该事情的利弊。要么会出现明确的共识,要么如果不那么明确,我会在脑海中仔细考虑并以某种方式做出决定。对于 PEP572,尽管它显然存在争议,但我选择了‘是的,我想这样做’,人们不同意不同意。

“这并不完全是一种反抗,但我觉得我没有得到足够多的核心开发者社区的信任来继续前进。”

他认为有关该语言的争议发生方式的变化部分是由于当今有多少人使用 Python。

“这也可能是因为 Python 社区规模太大了。当然,达成任何形式的共识都比较困难,因为无论你决定采取哪种方式,总会有一些持不同意见的人。”

Python 核心开发人员 Mariatta Wijaya 对 Python 指导委员会的选举来监督该语言的开发表示欢迎。
图片:A. Jesse Jiryu Davis

今年早些时候,Python 核心开发人员(那些致力于维护和更新 Python 参考 CPython 解释器的人)选举了一个指导委员会来监督该语言的未来。 Van Rossum 与 Warsaw 以及其他核心开发人员 Brett Cannon、Carol Willing 和 Nick Coghlan 一起当选。

华沙表示,为了管理用户群快速增长的语言,这一改变是必要的。

“我认为吉多真的感觉整个世界都压在他的肩上,而且只有他一个人,”他说。

“这在 25 年前可能还好,当时 Python 的社区和语言都小得多,但一个人承担的任务确实太多了,你知道吗?我认为,为了他自己的个人健康和对社区的参与,能够将这个负担分摊到五个人身上真是太好了,”Warsaw 说。

指导委员会的新选举将在每个新的 Python 功能发布后进行,Warsaw 表示这将为该语言的下一代领导层的就位铺平道路。

“如果 Python 在 25 年后仍能健康发展,就不会再由 Guido 和我来管理了,你知道吗?”他说。

指导委员会的成立也受到了更广泛的 Python 核心开发者社区的欢迎,核心开发者 Mariatta Wijaya 表示,此举感觉像是朝着正确方向迈出了一步。 “对我来说,指导委员会比由一个人来决定一切要好——这责任和负担太大了,”她说。 “这是一个好兆头,它使得社区能够有更多的投入。”

Python 的未来

虽然 Python 继续以惊人的速度吸引新用户,但社区中的一些人看到了未来的挑战,如果 Python 想要保持相关性,就需要不断发展。

在今年的 Python 语言峰会上,BeeWare 联合创始人 Russell Keith-Magee 警告称,如果对移动和新 Web 平台的支持得不到改善,Python 将面临“生存风险”。

手机和平板电脑正在实现台式机和笔记本电脑从未见过的市场渗透率,但作为一个社区,我们还没有关于如何在这些设备上使用 Python 的故事,”他指的是他儿子在学校使用 iPad 的情况。“那么,当笔记本电脑成为小众设备时,Python 会发生什么情况呢?”他问道。

Keith-Magee 的 BeeWare 项目旨在使编写一个 Python 应用程序并使其在任何地方运行成为可能,他列出了 Python 目前在标准 x86 PC 之外的支持平台上遇到的一系列问题。

他指出需要更好地支持为更新的非 x86 硬件平台编译代码; Python 的测试套件在移动和 Web 平台上很容易崩溃; Python 应用程序的安装大小臃肿,无法缩减为依赖项的一小部分;在 Android、Windows 和 Web 上编写 GUI 代码时使 asyncio 库正常工作所需的工作量;标准库中与 CPython 以外的 Python 解释器不兼容的模块数量。

Warsaw 表示 Keith-Magee 提出了很多好的观点,并认为考虑 Python 如何保持与新平台(手机、平板电脑和 WebAssembly 等较新的 Web 技术)的相关性非常重要。

“Python 目前还没有一个伟大的故事,”Warsaw 说道,他谈到了能够为 iPhone 或 Android 手机下载应用程序的雄心,并且“甚至不知道它是用 Python 编写的”。

看:(科技共和国)

随着现代芯片内的处理器核心数量不断增加(英特尔最新服务器产品中的处理器核心数量达到 48 个核心),Warsaw 也希望看到 Python 在跨多个核心分配任务方面做得更好。

他对正在开展的工作的潜力感到兴奋埃里克·斯诺 (Eric Snow) 谈辅助口译员以及它如何扩展 Python 并发运行代码的能力。 “我真正希望看到的是能够利用多核的更多工作,”他说。

雪从事的是长期项目,旨在让 Python 更轻松地在多个处理器核心之间高效地分割任务,斯诺专注于使用 Python 现有子解释器功能的修改版本并改变每个子解释器与语言交互的方式全局解释器锁(GIL)

“它还没有为 Python 3.8 做好准备,也许可以为 3.9 做好准备,”Warsaw 说。 “我认为我们会在未来两年到两年半内看到它。我非常乐观。我真的很高兴埃里克继续致力于这方面的工作,因为我认为这是重要的工作。”

即使是让多线程 Python 应用程序跨多个内核运行的失败项目,例如肠切除术他说,正在产生关于 Python 如何更好地跨内核分配工作负载的有趣教训。

Python 社区还正在采取措施对该语言的内置代码标准库进行现代化改造,最近发布了从库中删除过时模块的提案;这样做是为了解决最近对 Python 标准库现状的一些批评。该库通常被认为是 Python 的优势之一,因为它可用于执行广泛的常见任务,这就是为什么 Python 被描述为“自带电池”。然而,今年 Python 语言峰会上的一次演讲询问是否如果让人们从 PyPI 存储库中选择代码库,Python 将得到更好的服务,而不是将功能与语言捆绑在一起作为标准库。

还有一个问题是,监督该语言开发的机构(Python 核心开发人员和 Python 指导委员会)的组成是否能够更好地反映 2019 年 Python 用户的多样化用户群。

“我希望看到所有不同指标都有更好的代表性,不仅在性别平衡方面,而且在种族和其他方面,”维贾亚说。

“在 PyCon 上,我采访了皮女士成员来自印度和非洲。他们评论道,“当我们听到 Python 或 PyLadies 时,我们会想到北美或加拿大的人们,而实际上,世界其他地区也有庞大的用户群。为什么我们没有看到更多这样的人呢?我认为这很有道理。所以我绝对希望看到这种情况发生,我认为我们都需要尽自己的一份力量。”

Warsaw 表示,最终,尽管有“仁慈的独裁者”管理一切的半开玩笑的概念,但近年来塑造 Python 的想法却是从社区中涌现出来的,来自人们通过打开新用途的大门来推动 Python 的可能性。

“它确实更多地是从社区中冒出来的,而不是自上而下的事情,”他说。

今年早些时候,Python 帮助拼接了第一批黑洞图像,该图像距离约 5 亿万亿公里。
图片来源:事件视界望远镜合作等。

简单的社区项目如何对 Python 产生巨大影响的一个例子是类型提示,这是一项 Python 3.5 功能,其灵感来自于mypy项目由一名博士生于 2012 年发起。这些提示允许进行可选的类型检查,使开发人员能够发现一类可能溜进软件的错误。

当多人在大型代码库上工作时,拥有这一额外的安全层不仅仅是一件好事。对代码应该做什么和不应该做什么的额外洞察力可以发挥重要作用。

“对我来说,它允许 Python 扩展到更大的组织——比如基本上在 Python 3 上运行的 Instagram——这一事实是完全无价的,”Warsaw 说。异步这是社区衍生想法的另一个例子,它对语言的功能产生了巨大影响。

随着指导委员会的到位和比以往任何时候都更大的用户群,范罗苏姆乐观地认为“社区驱动的语言发展”将继续“取得令人难以置信的成功”。

“现在有一个非常坚实的核心开发人员社区,现在有了新的治理系统,因此我认为我们已经为 Python 作为一种语言的发展提出了更好的要求,”他说道,并赞扬了社区中对 Python 特定方面的深刻理解。

Warsaw 表示,如果有人怀疑 Python 社区是否有能力继续为该语言寻找令人惊讶的新用途,那么您只需看看 Python 在帮助捕获第一张黑洞图像方面所扮演的角色即可。

“这让我大吃一惊。Python 社区中有一些人,我认为他们是 Python 的疯狂科学家。他们总是在关注,嗯,这就是我今天能做的——我能把它推到多远?”

英雄形象的照片来源:丹·斯特劳德 (Dan Stroud)知识共享许可