geekdoc-python-zh/docs/realpython/interview-dustin-ingram.md

14 KiB
Raw Permalink Blame History

Python 社区采访达斯汀·英格拉姆

原文:https://realpython.com/interview-dustin-ingram/

今天,我邀请到了谷歌的开发者倡导者达斯汀·英格拉姆,他致力于在谷歌云上支持 Python 社区。他还是 Python 软件基金会(PSF)的董事和 PyPI 的维护者。在这次采访中,我们讨论了谷歌对 Python 的使用与你的使用有何不同,维护 PyPI 需要什么,他作为 PSF 总监的目标,他对 PyCons 的热爱等等。

瑞奇: 谢谢你和我一起,达斯汀。我想从我的常见问题开始:你是如何进入编程的,你是什么时候开始使用 Python 的?

Dustin Ingram Headshot

达斯汀:谢谢邀请我!

我喜欢说,我的第一次编程经历是当有人决定允许——如果不是鼓励的话——我在整个高中期间都带着 TI-83 计算器。我在几何课上花了少得多的时间学习几何,而花了多得多的时间用 BASIC 编写基于文本的游戏,以及后来为我做物理作业的程序。

我甚至发布了我的第一个开源程序:一个小动画,让你的计算器屏幕看起来像是《黑客帝国》中流动的乱码(我对此很着迷)将其发布到德州仪器的第三方软件仓库

但是我第一次真正接触编程可能是在我第一次接触到 Logo 的时候,这是一种以海龟为光标的图形化编程语言。我想那是在小学,任务是尝试复制一些简单的形状,但我清楚地记得被无尽的可能性惊呆了。我不像以前玩的那些点击式电脑游戏那样被限制在一个预定的路径上——我可以让那只乌龟做任何事情。

我爸是工具设计师,我上高中的时候,他开了一家机器店。这家商店有许多传统的金属加工工具:主要由手工操作的车床和铣床。但是他们也有一些更新的计算机数字控制(CNC)机器,这些机器用一种叫做 g 代码的语言编程。

如果你以前从未见过 g 代码,我最多只能把它描述为 BASIC 和 Logo 的混搭,但不是一只可爱的小乌龟四处移动,而是一个连接在半吨重机器上的钻头,每分钟旋转几千转。所有习惯于操作经典的手动机器的老人们都不能完全理解这项新技术,但它对我来说完全有意义!

后来在高中,我参加了一些计算机科学课程,这些课程教会了我一些 Java并使我相信这个领域值得追求。上大学学计算机遇到过 SchemeLisps ,也有一些 C 和 C++,但大多更多的是 Java。

大约在那段时间,我开始在大学的一个研究实验室工作,虽然那也全是 Java但那里一些年长的、聪明的研究生真的很喜欢这种叫做 Python 的新语言,并且基本上试图尽可能多地将它融入他们的项目中。一旦我接触到它,我也就着了迷,并开始尝试尽可能多地写它。

后来,当我发现围绕这种语言的更大的开源社区,它所体现的自己动手的精神,以及对可用性、可读性和初学者友好性的不可思议的关注——更不用说其中一些不可思议的人了——我被吸引住了。我非常幸运,因为在我接触到它之后不久,它就开始真正地起飞了。我很难想象如果没有 Python 我会是什么样子。为此,我非常感谢社区。

里基: 白天,你是谷歌的一名开发者拥护者,专注于在谷歌云上支持 Python 开发者。我之前和布雷特·斯拉特金(T4)谈过,他在谷歌讨论了 Python 的历史,谷歌最近成为了 PSF 的一个有远见的赞助商。随着谷歌成为 Python 的大力支持者Python 目前在谷歌的前景是什么样的Python 和谷歌云未来的路线图是什么?

当人们问我 Python 在谷歌内部是什么样的时候,我通常会说它有点像另一个宇宙。谷歌内部的所有软件工程都存在于这个泡泡中,它有自己的习惯用法、工具和模式,有时在更广泛的生态系统中并不存在。因此,尽管我们每天都有数百万行 Python 代码和数千名工程师编写 Python但我们内部使用 Python 的一些经验并不能映射到社区其他人的经验中。

例如,你可能听说过 Google monorepo ,但是 monorepo 的一个副作用是我们并不真正使用 Python 包索引(PyPI)——至少不像大多数 PyPI 用户那样使用 PyPI。因此如果你没有一个完全不同的视角我现在可以告诉你的关于谷歌如何使用 Python 的任何事情可能都没有多大意义。

也就是说,我可能不能告诉你更多了!不是因为这是机密,而是因为我尽可能少花时间呆在那个泡泡里。我支持编写 Python 并希望使用谷歌云的普通开发者。如果我生活在谷歌的泡沫中,我将无法对他们的经历产生共鸣。我们有一整个团队致力于让 Python 为谷歌的工程师工作。我关注其他人,并帮助我们为这些人开发好的工具。

我认为很多人将“开发者关系”解释为公司如何向开发者进行外部营销以及宣传其产品,虽然这在许多地方可能是真的,但在谷歌,情况恰恰相反:这是一个非常技术性的角色,将开发者的反馈以及对这些用户的理解和同情带给我们的工程和产品团队。

虽然你可能偶尔会在视频中或博客文章的署名上看到我,但这真的是一个更大的冰山的一角,你不能直接归因于我,我一直主张改变我们的产品,报告错误,产品因此变得更好。

我仍然认为自己是一名工程师,有时会为我们的产品做出贡献,但通常是开源部分。例如,使用云函数,我创作了 Python 函数框架,它让你可以在任何地方将单个 Python 函数作为服务提供,并为运行时提供了构建包。这些都是以对 Python 社区有意义的方式构建的,而不是怪异的 Google alternate universe任何人都可以做出贡献。

我工作的另一部分是利用我在 Python 社区的经验和联系来帮助 Google 管理与它的关系。这包括很多事情,包括确保我们成为良好的软件公民,发布惯用工具,在正确的地方发挥我们的杠杆作用(不要太多),管理我们的存在和会议以及我们对生态系统的财务支持,等等。

谷歌成为了一个有远见的赞助商,不仅仅是因为我们希望 PSF 继续运营(当然,我们也希望如此),还因为我们希望帮助确保 PSF 的一些具体目标能够实现,比如雇佣了一名 CPython 常驻开发人员,他将是第一个由 PSF 支付一年的全职开发 CPython 的开发人员。

你戴的一顶帽子是 PyPI 维护者的帽子。所有 Python 开发人员在 pip 安装包时都曾使用过 PyPI。但是许多读者可能不知道构建和维护像 PyPI 这样的东西需要做些什么。事实上,你最近在推特上提到了 PyPI 的巨大增长。我想知道你是否能解释是什么让 PyPI 持续运行Python 的发展对 PyPI 有什么影响。

达斯汀:这是一个很好的问题,而且时机恰到好处!我刚刚发表了Python 包索引需要什么动力?,这是对五年前一篇类似帖子的更新,详细介绍了我们的增长情况,从技术角度来看需要做些什么,以及我们如何支持这种增长。我认为这是任何想使用 PyPI 的人的必读书目。

TL我想让人们从这篇文章中得到的是:PyPI作为 PSF 的一个项目,是一个 a)非盈利性的b)几乎完全由志愿者管理c)依赖于很多捐赠的基础设施。

我认为来自其他语言生态系统的人们可能会对此感到惊讶,在这些语言生态系统中,包索引背后有风险投资基金或数十亿美元的公司,但我认为这一事实确实证明了 Python 社区的力量。但是,当出现问题或者某个特性的开发速度不如预期时,记住这一点很重要。

里基: 你戴的另一顶帽子是作为 Python 软件基金会的董事之一。你已经在董事会一年了。目前进展如何?当你开始的时候,你设定了什么目标?在过去的一年里,这些目标发生了怎样的变化?

达斯汀:其实有点讽刺。当我在 2019 年竞选董事会并失败时,我的目标之一是使 PSF 的资金多元化。当时PSF 从 PyCon US 获得了惊人的收入——将近 90%。

这让我对 PSF 继续运行的能力有点担心,但我认为大多数人当时并没有真正把这看作一个重要的问题,或者甚至没有意识到 PSF 对这个单点故障有如此大的依赖性。

因此,当我在 2020 年带着同样的目标再次竞选时,我们正处于全球疫情之中,刚刚取消了本来会成为我们主要收入来源的活动。。。我认为这对人们来说更有意义。显然 PSF 没有破产,但这不是因为我现在是董事会成员。

我认为我们在很多方面都非常幸运:PSF 的工作人员在准备像这样的灾难性事件时在财务上非常保守,我们的大多数赞助商和与会者都慷慨地捐出了当年的门票退款,工作人员能够非常努力地为今年的会议制作一个可行的,令人满意的虚拟活动。

我的第二个目标是在员工和基础设施方面进行更大的投资,特别是雇佣更多的专业角色,以帮助 PSF 以面向未来的方式发展,并帮助 PSF 运行和资助有利于社区的项目,如新的 PyPI 功能、改进文档、UX、可访问性、教育等。我们现在已经看到了一些进展各种 PyPI 改进项目和 PSF 填补了一些新的角色,如资源开发总监和包装生态系统项目经理。

我的最终目标基本上是“倾听社区想要什么,并在 PSF 中倡导什么”——这基本上是我的日常工作。这是一个很大的通配符声明,也是故意这样做的,但在选举后不久,我们就听到了响亮而清晰的声音,即需要进行改进,理事会可以更好地代表投票成员,成员可以更好地代表更广泛的群体。

因此,去年我一直在为此而努力:我们成立了一个新的多元化和包容性工作组,我们已经为即将到来的选举提出了一些章程变更,为董事职位增加了一些限制,我们还会有更多的举措。

不言而喻,我不是这些变化的唯一负责人。所有这些都是多人共同努力的一部分,但这是我作为董事会董事的首要任务之一,也是我特别关注的事情。

Ricky: 你对 Python 大会并不陌生。你的 2020 PyCon talk 有一个复活节彩蛋,上面有来自地区 Python 活动的三十多种不同的 t 恤,你还帮助组织了像 PyTexas 这样的会议。所以我很好奇你的第一个 PyCon 是什么样的。你有最喜欢的发布会吗?在你看来,什么是好的 Python 大会?

Dustin: 我的第一次 Python 大会是在蒙特利尔的PyCon 2015。我最记得的是对这个社区的巨大和友好感到敬畏。我还记得抬头看全会大厅的巨型投影仪屏幕,看到所有的 PSF 赞助商标志,心想:“好吧,这些是值得为之工作的公司”:)我最大的遗憾是,我不知道有大会 t 恤,从来没有得到一件!

我很幸运能够参加很多很多的会议,现在可能已经记不清了。我最美好的回忆包括在 PyCon Taiwan 的弦乐四重奏,在联合国大楼 PyGotham 的演讲,以及在 PyLatam 的泳池边流浪乐队。但是有太多我还没有去过的地方,我希望有一天能去参加,像 PyCon AfricaPyCon India 以及南美的任何地方!

在过去的一年里,当我们局限于虚拟活动时,我学到的一件事是,我低估了这些会议上发生的社交方面和面对面关系的重要性。我参加过一些非常好的虚拟会议,与面对面的会议相比,它们永远处于劣势,在面对面的会议中,所有的互动都是默认发生的,我们认为这是理所当然的。网上真的很难做到!

也就是说,虚拟会议也有许多强大的好处。受众可以更广泛,会议也更容易参加——不需要旅行,成本通常也更低。我希望,一旦我们回到面对面的活动中,我们仍能保留一些。

我认为有很多特性使 Python 会议看起来像 Python 会议,但以我的经验,真正好的会议是志愿者和/或帮助举办会议的工作人员的纯粹努力。我想参加过 PyCon US 的人可能没有意识到工作人员已经为这个活动工作了多长时间(场地已经提前很多年预订了!)或者需要多少无偿志愿者来提供会议并保持低成本。

里基: 现在只剩下最后几个问题了。你在业余时间还做些什么?除了 Python 和编程,你还有什么其他的爱好和兴趣?

Dustin: 在我的业余时间,我为 PSF 做志愿者,为一些我关心的开源项目做贡献,并帮助维护像 PyPI 这样的东西:)人们通常认为这些事情是我日常工作的一部分,但它们不是。

除此之外,当我有时间的时候,我通常会做饭,在我的车库或木材店修修补补,播放音乐,骑自行车,在森林里露营,或者只是和我的狗在一起。

里奇 : 谢谢你参加我的采访,达斯汀。聊天很愉快。


如果你想就我们今天谈论的任何事情联系达斯汀,那么你可以通过 Twitter 联系他。

如果你想让我采访 Python 社区中的某个人,请在下面留下评论或在 Twitter 上联系我。