标签 代码英雄 下的文章

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客《代码英雄》第三季(5):基础设施的影响音频脚本。

导语:用在 IT 基础设施中的语言是没有有效期的。COBOL 已经存在了 60 年 —— 而且不会很快消失。我们为大型机维护了数十亿行经典代码。但我们也在用 Go 等语言为云构建新的基础设施。

COBOL 是计算机的一次巨大飞跃,让各行各业变得更加高效。Chris Short 介绍了学习 COBOL 是如何被视为安全的长期投注的。60 年后的今天,还有数十亿行并不容易被替换掉的 COBOL 代码 —— 懂这门语言的专家也很少。Ritika Trikha 解释说,有些事情必须改变。要么更多的人必须学习 COBOL,要么依赖 COBOL 的行业必须更新他们的代码库。这两个选择都很困难。但未来并不是用 COBOL 编写的。今天的 IT 基础架构是在云端构建的,其中很多是用 Go 编写的。Carmen Hernández Andoh 分享了 Go 的设计者是如何想要设计一种更适合云计算的语言。Kelsey Hightower 指出,语言通常都是超专注于一种任务。但它们正变得越来越开放和灵活。

00:00:00 - Saron Yitbarek

1904 年,纽约市地铁首次开始运营时,它被惊叹为现代的一个奇迹。但是……当今天的通勤者仍依赖一个多世纪前设计的基础设施时,会发生什么?列车挤满了人,而且常常晚点。纽约每年有 20 亿人次地铁出行,再也没有人为此感到惊叹了。我们还在依赖昨日的过时基础设施,我们必须找到新的好办法,让它发挥作用。

00:00:44

过去,基础设施项目通常是些可见的大而具体的事物,例如地铁。而且由于这种物理可见性,它们损坏时也显而易见。高速公路开裂、电线杆倒下,我们很清楚这些东西何时需要维修。为了使我们的生活与老化的基础设施保持协调,大量的工作是必不可少的。

00:01:12

但是事物并不总是那么一是一、二是二。如今,我们还拥有 IT 基础设施,在偏僻地区嗡嗡作响的服务器农场,跨越海洋的光纤电缆,还有软件基础设施。而像遗留的操作系统或没人敢替换的 shell 脚本,这些 IT 基础设施变得陈旧和破旧时,我们是无法看出的。但是,造就了今日发展的基础设施却正在老化,就像旧的地铁轨道一样。这可能会扰乱我们的现代生活。如今命令行英雄们正努力确保我们不会被过去束缚,因此出现了大量新的挑战。

00:02:02

这是我们第三季进入编程语言世界探索的第 5 期。我们将研究两种编程语言,它们与最初设计的目标基础设施密切相关。COBOL 是一种大型机的原生语言,而 Go 是云计算的原生语言。它们都深受其起源的影响。理解这一点可能会让明天的开发者不至于像纽约人一样被塞进宾夕法尼亚州的车站。

00:02:33

我是 Saron Yitbarek,这里是红帽的原创播客,《命令行英雄》的第三季。

00:02:43 - 格蕾丝·赫柏 Grace Hopper

我们面前有很多事情需要去做,但是我们首先需要大量相关的且易于访问的信息。我们才刚刚开始。

00:02:53 - Saron Yitbarek

海军上将 格蕾丝·赫柏 Grace Hopper 在 20 世纪 40、50 年代率先开发了高级编程语言。而她之所以能够实现这种巨大的飞跃,是因为当时的基础设施,大型计算机。

00:03:08 - Chris Short

嗨,我叫 Chris Short。

00:03:10 - Saron Yitbarek

Chris 是红帽的首席产品营销经理,而且他也是一位历史爱好者。

00:03:17 - Chris Short

上世纪 40 年代的赫柏上将创造了 FLOW-MATIC,这在当时是革命性的,她被广泛认为是 COBOL 的祖母。因此,她能够坐在那里说:“嘿,只需将其放在大型机上”,或“嘿,只需将其存储在大型机上”即可。

00:03:31 - Saron Yitbarek

这是一个重大的游戏规则改变。突然,你有了这种机器无关的语言,即 COBOL,它是大型机环境特有的。可能性开始逐步打开。

00:03:42 - Chris Short

大型机和 COBOL 真正使得每个组织能够说,它们不再需要充满了带着铅笔、纸、计算器和滑尺的人的办公室,他们可能只需要半个办公室来安装大型机。然后,他们可以雇人用 COBOL 来编写一些应用程序来完成整个财务团队做的所有的数学、逻辑运算以及账目。因此,你需要的财务团队人数少了,仅仅是因为更多的输入可以被数字化,而不是全手动操作。

00:04:17 - Saron Yitbarek

如果你是那些新来的 COBOL 程序员之一,你会觉得你有了一份终身的工作。因为你的工作所基于的基础设施 —— 所有那些大型机 —— 始终会在那里。

00:04:30 - Chris Short

那时侯摩尔定律还未出现,所以你可以整整十年都在同一个大型机上工作,对吧?就像你不用去考虑下一个操作系统,或者下一个类型的容器编排器,又或者下一个出现 AI 之类的东西一样。你可能会整个职业生涯都在从事 COBOL。而且你知道自己的生活将会非常稳定。

00:04:55 - Saron Yitbarek

但是,摩尔定律最终还是来了。新的基础设施也出现了。现如今,程序员不太可能去学习一种半个世纪前的旧语言。但实际上,那些老旧的大型机其实并没有消失。这意味着我们对 COBOL 开发人员的需求也没有消失。

00:05:17 - Chris Short

寻找 COBOL 开发者变得越来越困难。最终会发生的事情是这些大型机可能已经存在了 50 年。这些仍然可以编写出色 COBOL 程序的开发人员将获得巨额收入,以帮助项目运行并完成大型机中的数据重组。而且,该技能肯定会绝迹,并且正在成为一个利润丰厚的职业领域,如果你……现在写 COBOL 绝对可以赚很多钱。

00:05:49 - Saron Yitbarek

尤其是在制造业和金融业。你无法超越几十年前建立的所有基础设施。遗留代码遍及全球。忽略这些老旧的基础设施及其相关的语言,将是一个巨大的错误。

00:06:08 - Chris Short

有两千亿行代码摆在那里,要重构这些代码真的很难。不,我不认为在有生之年我们会看到它消失,真的。

00:06:21 - Saron Yitbarek

Chris Short 是红帽的首席产品营销经理。

00:06:28

我想花一秒钟解释一下 Chris 的观点。你想想看,95% 的 ATM 交易中都有 COBOL 代码,那就是我们与这种语言的联系。但是,COBOL 程序员的平均年龄并不比该语言年轻多少。他们 45 岁,或许 55岁。新人们并不感兴趣这门语言。这就是为什么我想向你介绍一个人。

00:06:56 - Ritika Trikha

嘿,我是 Ritika Trikha。

00:06:59 - Saron Yitbarek

Ritika 是一名技术编辑,曾在 HackerRank 工作。她对 COBOL 的这个问题着迷:人们认为 COBOL 是后大型机时代无意义的残留品。

00:07:12 - Ritika Trikha

如今的开发人员根本不会考虑 COBOL 了,见也没见过,想也没想过。

00:07:17 - Saron Yitbarek

但这可能是灾难的根源。

00:07:21 - Ritika Trikha

如今,仍然有大量的 COBOL 代码在驱动企业的业务。每年至少新增 15 亿行 COBOL 新代码。我认为当你看特定行业时,真的很有意思。就像美国国税局有 5000 万行代码。社会保障局有 6000 万行代码。 因此,这些单位和实体正在处理一些如今最敏感、重要的信息,如果我们不继续为这些大型机提供支持和维护,就会造成很大的破坏。

00:08:04 - Saron Yitbarek

因此,如果我们无法摆脱旧的基础设施,又无法挥舞魔杖来重建整个大型机业务,我们该怎么办?编码人员有时候仅考虑未来,该如何接受过去?我们首先需要直面该问题。

00:08:25 - Ritika Trikha

你知道,年轻一代将不得不重拾这些技能。或者,必须对这些大型机进行某种现代化改造。无论是哪种方式,这个问题都不会消失。这就是为什么 COBOL 还活着的原因。

00:08:35 - Saron Yitbarek

这并不容易。 Ritika 认为我们已经忽略这个问题太长时间了。

00:08:42 - Ritika Trikha

这非常昂贵、艰巨,并且替换数十亿行 COBOL 代码的风险也非常高。它是用于关键任务的代码,比如社会保障和金融信息。COBOL 是专门为此类大量交易而设计的。因此,它由格蕾丝·赫柏在 60 年代为商业交易而设计。自上世纪 60 年代以来,一直存在“如果没坏,为什么要修复它”的说法,现在我们处于这样一个关头,即延续了数十年的大量的高价值数据运行在 COBOL 上。

00:09:22 - Saron Yitbarek

从某种意义上说, Ritika 在呼吁一种文化的转变。改变对 "进 "与 "退 "的态度。由于发展的世界慢慢有了越来越久的历史,我们会更加地接触到自己的历史。你无法摆脱老化的基础设施。这意味着你也不能忽略编程语言的历史。

00:09:47 - Ritika Trikha

有些事情必须得做。当我在 HackerRank 时,我亲眼看到了多少银行和金融机构对 COBOL 开发人员的伤害,几乎是绝望的。这不是一个会被解决的问题,我认为要么必须有某种现代化的系统,要么我们继续培训人员并激励他们。我个人认为将会有 COBOL 再次出现的一天。真的,当所有拥有 COBOL 知识的开发人员退休,并且没有新一代的开发人员学 COBOL 时,将会发生什么?总得做点什么,对吧?所以,当从 COBOL 转向新的基于云的基础设施时,需要有更多的系统化和制度化的改变。

00:10:37 - Saron Yitbarek

Ritika Trikha 是一名旧金山的技术作家。

00:10:49 - Saron Yitbarek

那么 Ritika 提到的那些基于云的基础设施呢?我们今天建立的基础设施是否会将后代绑定到特定的语言,像我们仍绑定找 COBOL 上一样? 亚马逊 Web 服务 Amazon Web Services (AWS)可能是最大的单一云基础设施,于 2006 年推出。 Google 云平台 Google Cloud Platform (GCP)于 2008 年问世,微软 Azure 于 2010 年问世。 Go 语言以并发为重点,定位于在新的云基础设施上蓬勃发展。这是这个时代的语言。

00:11:26 - Carmen Andoh

嗨,我叫 Carmen Andoh, 我是谷歌 Go 团队的项目经理。

00:11:34 - Saron Yitbarek

Carmen 对 Go 语言与今天的基础设施有怎样的联系有深入的理解。这要从 Go 的创作者和编程语言历史的紧密联系说起。

00:11:47 - Carmen Andoh

Robert Pike、Robert Griesemer 和 Ken Thompson。这些名字算是从上世纪 60 年代就开始出现了。Ken Thompson 发明了 B 语言,然后他在夏天的假期继续发明 UNIX 操作系统。Rob Pike 发明了字符串编码 UTF-8,他还发明了 ASCII。他帮助 Ken Thompson 共同编写了 UNIX 编程环境。所以,这两个人是很多、很多年前的同事,他们一直在研究和发明用以前的编程语言编写的操作系统,这些语言包括 Ken Thompson 最终帮助 Dennis Ritchie 一起编写的 C 语言。

00:12:28 - Saron Yitbarek

Pike、Griesemer 和 Thompson 在 Google 工作之后,他们发现了一个严重的问题。并没有出现大规模的并发。人们等待了几个小时编译出来。他们使用的是 C++,并且必须得编写所有这些回调和事件调度器。那是在 2009 年,我们的基础设施再次发生了变化。诸如 C++ 之类的语言越来越不适应这种新的现实。

00:12:59 - Carmen Andoh

多核处理器、网络系统、大规模计算集群和 Web 编程模型等正在引入这些问题。而且,还有这个行业的增长,程序员数量在 2010 年就会达到成千上万。因此,直到那时,所有的编程语言都是在规避问题而不是在正面解决问题。

00:13:24 - Saron Yitbarek

最终,将达到一个临界点,必须开始改变。

00:13:30 - Carmen Andoh

嘿,我们讨厌 C++ ,我说:“好吧,让我们看看我们是否能发明些新的东西。”

00:13:37 - Saron Yitbarek

这种新语言需要完美地适应我们最新的基础设施。

00:13:43 - Carmen Andoh

2005 年云技术到来以后,你不再需要自己的计算机,在某种程度上在其他地方租用它,你就可以得到一个分布式系统。但是在分布式系统中,以及在云计算中,存在并发消息传递问题。你需要确保采用异步对你来说没有问题。Go 缺省就是异步的编程语言。基本上,这意味着你执行的每个操作(例如将所有这些不同的消息发送给系统中的另一个计算机)都无需等待另一个机器对你的响应即可完成。因此,它可以在任何给定时间处理多个消息。

00:14:28 - Carmen Andoh

就是说,云计算是分布式的。因此 Go 的开发就是来满足这一确切需求。Go 早就成为进行这种分布式计算的标准方法之一。这就是为什么我认为它立即引起了开发人员的广泛关注。Go 绝对是云基础设施的语言,无论是其设计,还是所有云基础设施工具,以及在过去十年中如雨后春笋般出现的模块的生态。

00:15:06 - Saron Yitbarek

很快,诸如 Kubernetes 之类的关键应用都用 Go 编写了。谷歌还创建了 Go Cloud,这是一个开源库和一系列工具,使得 Go 更具吸引力。很显然,它是新生态系统的语言。它是云的语言。而且,它的创造者们因开发生命力持久的语言而享有声誉,这绝对没有坏处。

00:15:33 - Carmen Andoh

我认为业界的其他人会说:“嘿,我认为这不会很快消失。”这种语言的发明者恰巧也发明了语言有 50 、60 年了。

00:15:47 - Saron Yitbarek

Carmen Andoh 是谷歌 Go 团队的项目经理。

00:15:54

因此,我们有了一种新的语言 Go ,旨在提供云基础设施必需的并发性。听起来不错。Go 的设计师倾向于创造可以持续半个世纪的语言。这也很棒。但是我的问题是,从现在起,50 年后,当 Go 更像是 COBOL 时,这到底意味着什么?当世界上充满了只有老开发人员才能理解的旧版 Go 代码时,这又意味着什么?在当今的云基础设施老化的时候,我们是否会做好准备?我们是否从 COBOL 和大型机领域吸取了教训,可以帮助我们为 Go 和云设计更美好的未来?

00:16:40

幸运的是,我找到了问所有这些问题的合适人选。这就是下面这位。

00:16:51

我们如何使我们的语言能面向未来?我们知道他们与当今的基础设施息息相关。我们也知道,随着数十年的发展,新的基础设施必将取代旧的基础设施。那么,我们今天做些什么以确保将来能平滑演进?

00:17:10 - Kelsey Hightower

我是 Kelsey Hightower ,我在谷歌,是一名开发人员推广大使,我致力于引入开放性技术并将它们应用于谷歌云上的产品。

00:17:19 - Saron Yitbarek

Kelsey 花了大量时间思考编程的未来。我很好奇,是否有一天我们将陷于握有 Go 语言技能的是另一批老龄化的程序员的问题,就像我们现在缺少 COBOL 的引导一样。我们是否在为这个长远的未来做计划?因此,我和 Kelsey 坐下来进行讨论。

00:17:42 - Kelsey Hightower

...等等。但是,如果你考虑到今天面临的一些新的挑战,如应对互联网,这种网络,你将面临许多用户,成千上万的并发用户,以及不同的机器和架构类型的组合。考虑到这些新的场景,因此你通常希望有一种新的语言来解决。例如, JavaScript 是用于 Web 的,你不会想改造 COBOL 以便可以用它来进行 Web 编程。最终,我们今天已经有了数百种相当完善的语言,而且它们都非常专注于他们的优势。

00:18:15 - Saron Yitbarek

那么,在那种情况下,我们是否需要积极推动人们走向 COBOL ?如果我们正在为这些新问题开发新语言,并且它们是高度定制化的,而 COBOL 仍在坚持不谢幕,我们是否需要鼓励人们选择它,以便我们可以维护我们的旧代码?

00:18:32 - Kelsey Hightower

好吧,我认为这将对企业是个挑战吧?所以,你已经在 COBOL 上投入了 10 到 20 年,没有人会主动想学习一些新的 COBOL。或者你不会像刚从大学毕业那么“我要加倍努力……”。

00:18:45 - Saron Yitbarek

没错。

00:18:46 - Kelsey Hightower

“...这种语言比我父母的年龄都大。” 因此,在那个领域,你必须问自己,继续使用 COBOL 的风险是什么?未来是否仍然有意义?我认为它仍然有益于某些类型的工作任务,但是我们必须问自己一个问题,是时候推进了吗?是时候进化一点了吗?因此,如果你仍然有数十亿行的 COBOL 代码,那么你将必须寻找所有剩余的 COBOL 人才,并将其招进来,但也许我们该开始考虑其他语言能从 COBOL 学习些什么,并将某些功能和库加入到其他语言中。

00:19:26 - Saron Yitbarek

COBOL 终止以后的日子,将会是一个巨大的基础设施项目。用我对纽约地铁的比喻,就像是要替换每条地下隧道。因此,展望未来,我想知道我们是否可以预见到这些问题,甚至将来对自己也能有所帮助。

00:19:48

如果我们将今天的云计算与大型机进行比较,我们是否会在最终到达同一条船上,有着这些旧代码库,使用着旧的但非常稳定的语言,而且我们也到了必须做出选择的时候,我们应该继续前进还是保持不变?

00:20:05 - Kelsey Hightower

云有点不同的是它不是来自一个制造商,对吗?许多云提供商通常提供了一系列技术集合,你就可以选择编程语言、编程范式,无论你是要事件驱动还是基于 HTTP 的全 Web 服务。这意味着你可以选择编程的方式,然后只需专注于要解决的问题。因此,数据进进出出,但是你来选择处理数据的方式。

00:20:36

大型机通常只有一个主界面,对吗?就像你编写一份任务一样,这就是你提交任务的方式,这就是你监控任务的方式,这就是结果。这本身就是一个限制。如果你考虑一些较新的大型机,它们也会支持些较新的技术,因此即使在大型机领域,你也会开始看到可用于运行任务的编程语言扩展。

00:20:58

那么我们开始问自己,好吧,既然我有了新的选项,该什么时候离开这种特定的编程范式继续前进呢?我认为我们不会陷入困境。

00:21:08 - Saron Yitbarek

正确。

00:21:08 - Kelsey Hightower

我认为新的分布式机器很不错,可能起步成本更低,你不必购买整个大型机即可开工。但是我们仍然希望易用性和之前一样:给你我的工作,你为我运行它,完成后告诉我。

00:21:24 - Saron Yitbarek

绝对是这样,你觉得发生的事情,或者说 COBOL 所发生的事情,会发生在今天的任何一种语言上吗? 以 Go 语言做例子,你看到我们在努力地改进 Go 从而吸引人们在 30 年后还想用 Go ?

00:21:38 - Kelsey Hightower

我认为所有语言都会遭受这种命运吧?如果你仔细想一下,其实 Python 已经存在很长时间了。我想差不多 20 年了,甚至更久。因此,我认为会 …… Python 重新流行起来了,它现在是机器学习的基础语言。

00:21:53 - Saron Yitbarek

是的。

00:21:54 - Kelsey Hightower

对于 Tensorflow 之类的库,如果我们仅用时间来衡量,我认为这可能不是看待它的正确方式。还应该有社区是否活跃?语言的适配意愿是否活跃?我认为 Python 做得确实非常出色……社区看到了使其他语言更易于使用的能力。例如,Tensorflow 底层有很多 C++ ,使用这种语言编程可能没有 Python 这样的用户友好性。你可以用 Python,并用它来生成人们正在使用的一些东西,例如 Tensorflow 。现在机器学习非常热门,人们将 Python 引入了这个新领域,那么你猜怎么着? Python 仍然是活跃的,并且在未来的一段时间内都是活跃的。对于 Go 来说,这同样适用。如果 Go 能够继续保持活跃度,那么,它就像许多基础设施工具和许多云库的基层一样,它也将保持活跃。因此,我认为都是这些社区确保了它们将来占有一席之地,并且当未来出现时,确保那里仍有它们的位置。

00:22:58 - Saron Yitbarek

是的。那么,我们如何让我们的语言面向未来呢?就是说,我们如何有意地设计一种语言,使其能持续存在,并在 20、30 年内都保持活跃呢?

00:23:10 - Kelsey Hightower

使用语言的人,我认为这在开源世界中确实是独一无二的。现在,我们已经不再使用商业语言了,对吧,过去曾经来自微软的语言或太阳微系统的如 Java™ ,那时侯,每个人都依赖于供应商来尽心尽力来对语言能干什么以及对运行时环境进行新的改进。现在,我们看到的诸如 Go、Node.js、Ruby 之类的东西,所有这些都是社区支持的,并且社区专注于运行时环境和语言。这样任何人都可以添加新库,对吧?有一个新的 HTTP 规范,对,HTTP/2 几年前问世了,每个社区都有贡献者添加了那些特定的库,猜猜现在怎么样?所有现在这些语言,都兼容于大部分的未来网站。

00:24:01

我认为现在是个人真正地拥有了更多的控制权,如果他们想让语言适用于新的用例,只需要自己贡献即可。因此,我们不再受限于一两家公司。如果公司倒闭,那么运行时环境可能会因此而消亡。我们不再有这个问题了。

00:24:23 - Saron Yitbarek

我们之前在这个播客上已经说过了。未来是开放的。但是,令人着迷的是考虑怎样能做到再过几十年,过去也将是开放的。它们将继承能够变形和演进的基础设施和语言。

00:24:39 - Kelsey Hightower

太棒了,感谢你的加入,我期待人们的工作,而且大型机仍然有意义。它们是经典技术,因此我们不称其为遗产。

00:24:47 - Saron Yitbarek

哦,我喜欢,经典,非常好。

00:24:51

Kelsey Hightower 是 Google 的开发者推广大使。

00:24:57

我正在想象一个充满经典编程语言以及尚未诞生的新语言的未来。那是我为之兴奋的未来。

00:25:07 - 演讲者

请离关着的门远一点。

00:25:12 - Saron Yitbarek

要知道,2017 年 Andrew Cuomo 州长宣布纽约市地铁进入紧急状态。他的政府拨出 90 亿美元投资于老化的基础设施。这应该提醒我们,迟早我们得注意遗留的系统。你不仅需要继续前进,面向未来。你还背着历史包袱。

00:25:37

在开发的世界中,我们倾向于偏向未来。我们认为我们的语言仅在它们流行时才有用。但是,随着信息基础架构的不断老化,开发的历史变得越来越真实。事实证明,过去根本没有过去。记住这一点是我们的工作。

00:26:05

你可以前往 redhat.com/commandlineheroes ,以了解有关 COBOL 或 Go 或本季我们要介绍的其他语言的更多信息。那里有很多很棒的材料在等你。

00:26:19 - Saron Yitbarek

下一集是关于 Bash 的。我们将探索 shell 脚本的起源以及自动化的关键。

00:26:30 - Saron Yitbarek

《命令行英雄》是红帽的原创播客。我是 Saron Yitbarek 。下期之前,编码不止。

什么是 LCTT SIG 和 LCTT LCRH SIG

LCTT SIG 是 LCTT 特别兴趣小组 Special Interest Group ,LCTT SIG 是针对特定领域、特定内容的翻译小组,翻译组成员将遵循 LCTT 流程和规范,参与翻译,并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽(Red Hat)发起的 SIG,当前专注任务是《代码英雄》系列播客的脚本汉化,已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。

欢迎加入 LCRH SIG 一同参与贡献,并领取红帽(Red Hat)和我们联合颁发的专属贡献者证书。


via: https://www.redhat.com/en/command-line-heroes/season-3/the-infrastructure-effect

作者:Red Hat 选题:bestony 译者:messon007 校对:wxy

本文由 LCRH 原创编译,Linux中国 荣誉推出

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客《代码英雄》第三季(4):深入 Perl 语言的世界音频脚本。

导语:语言来了又走。只有少数几种语言具备了登峰造极的能力,而能留在那里的则更少。Perl 有过一次惊人的崛起,也有过一次平静的低迷,现在已经在编程世界中找到了自己的位置。

Perl似乎注定要统治网络。Michael Stevenson 和 Mike Bursell 描述了 Perl 的设计如何使它成为早期 web 的理想选择。我们从 Conor Myhrvold 那里听到了它的座右铭:“ 实现它的方法不止一种 There is more than one way to do it. ”。Elizabeth Mattijsen 分享了,尽管 Perl 有优势,但漫长的开发周期如何减缓了 Perl 的发展。虽然它不再是最顶级的网络语言,但 John Siracusa 指出,Perl 作为一种小众工具仍然存在。

00:00:02 - Saron Yitbarek

想象一下 Perl 语言的创建者 Larry Wall 在 1999 年的一次会议上站在麦克风前,留着他标志性的浓密胡子和梳理过的刘海,感觉相当好,因为他所发明的语言正在越来越受欢迎。

00:00:19 - 配音演员

声音测试。

00:00:19 - Saron Yitbarek

Perl 语言轻而易举地超越了 COBOL、Visual Basic,而 Python 呢? Python 仍然是一个不入流的竞争者,是Larry Wall 的几个玩笑素材。Wall 展示了 dice.com 报告中的人群数据,在那时来看,Perl 语言的未来是非常、非常光明的。然而之后 Perl 的未来就不再如此了。20 年之后,dice.com 在 2018 年夏天将 Perl 列为最可能灭绝的语言之一。短短 20 年之间发生了什么?

**00:00:59 **:

我是 Saron Yitbarek,这里是《代码英雄》,一档红帽公司的原创播客。这一季是关于我们编程语言的力量和前景的。在上一集我们追踪了搭上了互联网顺风车的 JavaScript 的疯狂崛起。

00:01:19

并不是每一种语言都有一个不停地成长和成功的故事。大多数语言的出现,在当时非常特殊的生态系统中发挥了它们的作用,然后当我们的编程生活里需要其他类型的工具时它们就开始消退。

00:01:37

本集我们将深入了解 Perl 世界。是什么造就了它早期的成功,为什么它的成功突然就被颠覆了?我们所处的环境,我们的基础设施,我们的硬件,各种因素都会决定哪些语言会繁荣,哪些会开始萎缩。这就是 Perl 语言的故事的魅力所在。

00:02:08

我们知道 Perl 并没有统治世界,但是退回到上世纪 90 年代的时候,却看不到这一点。Tim Berners-Lee 在 1991 年发明了 万维网 World Wide Web (WWW),它迅速创造了一个全新的基于 Web 的开发领域。谁也说不准会是哪种编程语言在这个新领域取得成功。

00:02:31 - Michael Stevenson

在 Web 出现的时候,所有人都等待着会有什么事情发生。那个时候整个世界都是令人兴奋的。

00:02:39 - Saron Yitbarek

Michael Stevenson 是 阿姆斯特丹大学 University of Amsterdam 媒体研究的副教授。他为我们描述了早期的 Web。人们见过 Usenet,也见过 ARPANET。他们看到了 美国在线 America Online ,还有一些其它的东西。但是直到 Web 出现,互联网的全部发展潜力才真正得到体现。突然之间,你就可以通过鼠标和点击进入了这个巨大的互联世界。这是一个出乎意料的事情。

00:03:09 - Michael Stevenson

你要是记得 1993 年,也就是 Web 开始崭露头角的那一年,也是《 连线杂志 Wired Magazine 》开始出版的那年。在那之前类似《Mondo 2000》这类的杂志真的让电脑看起来像神秘知识的来源,让电脑看起来很酷。

00:03:32

因此从这个意义上说,Web 也到达了一个相当特定的时期,人们已经准备好以这样的方式迎接技术的兴起。

00:03:43 - Saron Yitbarek

故事在这个时候开始了:Larry Wall 在 1987 年创建了 Perl,4 年后万维网才开始兴起。Larry Wall 给世界带来的 Perl 最初只是一种通用的 Unix 脚本语言。当然,它确实很有用,但同时 Perl 还有一些秘密元素,这些元素使它成为即将到来的 Web 开发世界的理想语言。

00:04:14 - Michael Stevenson

比较有名的是 Perl 是 Larry Wall 在参与的一个美国国家安全局(NSA)的秘密项目中发明的,基本上他所做的就是创建一个类似黑客版的新闻栏目,运行在 Usenet 上,因此 Perl 语言从一开始就是操作文本和将数据从一个地方移动到另一个地方,这完全符合 Web 的需求。而 Perl 作为一种易于使用的脚本语言,更加接近于自然语言。它可以用来快速开发东西,所有这些都让 Perl 成为了一个完美的契机,不仅适合专业用户,也适合新加入的业余爱好者。

00:05:09 - Saron Yitbarek

很偶然的是,当 Web 出现时,Perl 已经为 Web 做好了准备。Larry Wall 不可能知道 Web 即将出现。但当它出现时正好相互吻合。但我认为还有一点很关键:Perl 是一种自由语言。Larry Wall 在 自由软件基金会 Free Software Foundation 开发的 GPL( 通用公共许可证 General Public License )下发布了它。

00:05:37

Larry Wall 让他的语言自由开源的决定,这完全符合刚刚开始出现的基于 Web 的新思维方式,同时 Perl 在其他方面也很有前瞻性。

00:05:50 - Michael Stevenson

Perl 的开放性令人难以置信,在某种意义上,它总是愿意整合一些其他的东西,新的东西。这和 Larry Wall 的身份很相配。他是个很开放谦虚的人,总是仔细考虑别人的想法,并试着设身处地为别人着想。对我来说 Perl 作为一种语言,以及作为一个社区的性格,在很长一段时间里,真的很符合这一点。

00:06:27 - Saron Yitbarek

同样 Perl 非常适合 Web 早期的、狂野的西部阶段,也就是黑客时代。实际上 Perl 的座右铭之一就是“ 实现它的方法不止一种 There is more than one way to do it. ”。

00:06:39 - Michael Stevenson

在 Perl 的鼎盛时期和这个试验性的开放 Web 的鼎盛时期之间,存在着一种近乎浪漫的联系,在它变得如此被几个平台所控制之前。

00:06:56 - Saron Yitbarek

记得上世纪 90 年代是互联网历史上的一段启蒙时期,那时人们还在争先恐后地想知道还有哪些是可能的。那时对编程的需求是巨大的,每个人都需要有一个网页,这意味着一群全新的开发人员,他们都对新的做事方法持开放态度。问题变成了“好吧,我们有了一个全新的领域,但用什么语言来完成这项工作呢?”

00:07:26

Perl 虽然并不是这个问题的最终答案,但对于很多人来说 Perl 是他们首选的答案。

00:07:34 - Michael Stevenson

我并不是说我更愿意看到加载速度超慢的网页、也没有谷歌搜索引擎的时代,但我确实认为那个时代有一些特别的东西,当时有一些人,在他们的宿舍里,创建了一个类似 slashdot 的东西。而现在随着 Web 已经变得如此主流、专业化和被集中在几个大公司中,我们确实怀念那个时代。对我来说,Perl 比其他任何早期的故事都更能象征这一点。

00:08:15 - Saron Yitbarek

Michael Stevenson 是阿姆斯特丹大学媒体研究的副教授。

00:08:24 - Saron Yitbarek

之后,随着 90 年代的到来,Perl 作为一种能适应早期互联网发展潜力的语言出现了,它是一个时代的语言。Larry Wall 和他所创造的 Perl 正好明白了 Web 的本质。

00:08:40 - Mike Bursell

在网上你可以随意搜索,也可以随时创建网页,这是互联网的美丽新世界,你可以随时做这些事情。

00:08:52 - Saron Yitbarek

这位是 Mike Bursell,红帽公司的首席安全架构师。Mike 是 90 年代中期发现和使用 Perl 的黑客之一。

00:09:00 - Mike Bursell

对于 Web 来说,Perl 是许多人的起点。Java™ 语言还处于早期阶段,它在文本输入输出方面并不是很出色。如果你想进行查询和生成页面,Perl 是人们都在使用的工具。

00:09:22

Perl 非常适合,因为它擅长获取文本,并使用文本做其他事情,而这正是 Web 所需要的。

00:09:31 - Saron Yitbarek

顺便需要说一下的是,Larry Wall 有语言学背景,这就解释了为什么 Perl 有强大的文本解析能力。正如 Mike Bursell 提到的,这是一笔巨大的好处,因为在早期,Web 主要是一种基于文本的媒介,因为那时候人们没有足够的带宽来处理图像。

00:09:51 - Mike Bursell

它很容易使用,也很容易复制。人们在分享方面非常开放,而且它的输出速度很快,这些都是好东西。

00:10:02

哦,当然还有一点,就是你可以用管道使用它。所以,这是非常多的人所习惯的,而且非常容易测试,甚至离线测试,这都是非常有用的。

00:10:13 - Saron Yitbarek

尤其对那些在 Web 的世界中重新规划自己生活的系统管理员来说非常有用。

00:10:21 - Mike Bursell

Perl 是给系统管理员们的真正礼物。即使在那个年代,如果你做一些事情,你会得到很多日志。管理这些日志,分解它们,搜索它们,并能够以不同的方式显示它们,或获取任何其他大型文本语料库(主要就是日志),甚至可以对它们进行调试。除非你要在命令行里用管道方式传输 orcsed 之类的东西,以及 ed 命令,那样的话你很快就会变得非常痛苦,而 Perl 正好适合让你去处理这些事情。

00:10:55 - Saron Yitbarek

到上世纪 90 年代后期,Perl 5 已经聚集了一个强大的用户群体。像 Fortran 和 C 这样的旧语言依赖于庞大而昂贵的硬件,而 Perl 更有生命力,也更容易移植。在那样一个硬件成本急剧下降的世界里,Perl 的设计使得它得到了蓬勃发展,Perl 让所有的新程序员快速、轻松地工作。这是因为 Larry Wall 以牺牲 CPU 和内存的需求为代价,使 Perl 语法更人性化。所有这些元素组合在一起,使 Perl 成为一种很受新开发社区欢迎的语言。

00:11:36 - Mike Bursell

在一个正在壮大的社区里,你可以去和他们聊聊社区里的事情,然后 PerlMonks 论坛出现了,那里是一个讨论的好地方,能在论坛里知道正在发生的事情。

00:11:50 - Saron Yitbarek

这个社区确实拥有 Web 所能提供的最好的东西。他们发现了一个巨大的软件模块库,一个叫做 CPAN 的存储库,这些系统管理员都很喜欢它。它给 Perl 提供了更多的灵活性,许多人都可以部署由少数几个编程大师编写的代码。

00:12:15 - Mike Bursell

它有很多库可以做你想做的任何事情,如果你找不到你想要的库,你可以去问一下,然后就会有好心人写出你想要的库。

00:12:21 - Saron Yitbarek

Mike Bursell 是红帽公司的首席安全架构师。

00:12:28 - Saron Yitbarek

正是由于 Perl 是免费的,它受到不断增长的模块库的支持,它是可移植的,而且它有一个蓬勃发展的社区。一切看起来都很好。Perl 可以在上世纪 90 年代 Web 开发新天地中发挥所有优势,但就在 90 年代即将结束的时候,互联网的发展前景又一次发生了变化,时代来了一个大的转变。

00:12:57 - Alan Greenspan

但我们又能如何知道非理性繁荣何时已过度推高了资产价值,进而导致了意料之外的长期经济收缩?

00:13:12 - Saron Yitbarek

“非理性繁荣”是时任美联储主席 Alan Greenspan 在 1996 年对 美国企业协会 American Enterprise Institute 所说的话。他那句“非理性繁荣”是对 90 年代人人都经历过的网络泡沫的警告。所有早期使用 Perl 的 Web 开发人员都在那个泡沫中乘风破浪,但正如 Greenspan 预测的那样,泡沫在 2000 年破裂了。

00:14:11 - Conor Myhrvold:

大家好,我是 Conor Myhrvold 。在过去的五六年里我一直从事编程,现在在技术领域为 Uber 工作。

00:14:20 - Saron Yitbarek

2000 年代初,当 Conor 还在高中的时候,Perl 仍然是一个非常重要的东西。但他越来越意识到一种与之竞争的语言,叫做 Python。

00:14:31 - Conor Myhrvold

Python 所追求的是一种更结构化的语言,做很多不同的事情都有一种更显然的方式,它就是那样设计的。而 Perl 则喜欢做某件事有不止一种方法,但这让很多初学者感到困惑。

00:14:49 - Saron Yitbarek

Perl 有这样一句座右铭“ 实现它的方法不止一种 There is more than one way to do it. ”。而 Python 的理念实际上是相反的,Python 为每个问题都提供了一个明显的解决方案,这意味着查看别人的 Python 代码很容易;而另一方面查看其他人的 Perl 代码可能会令人困惑。Perl 作为一个程序员的第三或第四种语言是有意义的,而正是因为它是一种脚本语言,而脚本是互联网连结的基础。

00:15:23

但是 Python 是一种你可以真正深入研究的语言,即使你是一个新手。Perl 有一套特定的优势,比如在搜索文本和生物信息学上。但是 Python 就是这样一种简单通用的语言。Python 获得了越来越多的信任,成为人们首先想学的语言,这是一件大事。

00:15:47 - Conor Myhrvold

越来越多的人开始上网,越来越多的人开始学习如何编程。尤其是相对于 Perl 而言,Python 受益于它本身相对容易学习,因为它更结构化。而这样结果是,在一个快速增长的世界里,如果你能得到更多增长的份额,那将最终意味着有更多的教程和更多的东西可供你使用。

00:16:10 - Saron Yitbarek

在之前提到过的 CPAN,它是 Perl 用户可以使用的强大的中央存储库。这在 90 年代是一大亮点,但 CPAN 的价值也在变化。

00:16:24 - Conor Myhrvold

这也不能真正帮助你学习一门语言,因为你是在“复制粘贴”,只是用最少的方式替换你需要的东西。从长远来看这是一个劣势,因为如果你让人们通过自己进行原始开发来学习如何使用一种编程语言,即使这需要花费更长的时间,他们也会觉得自己对它投入了更多,而且他们也了解在这中间发生了什么。

00:16:48 - Saron Yitbarek

Python 没有像 CPAN 那样的集中式存储库,但是对于那些在新千年时代来到这里的开发人员来说,在一个互联网搜索功能如此强大的世界里,存储库并没有那么大的价值。

00:17:05 - Saron Yitbarek

最终 Python 有了大量的教程,当然现在也有了像 GitHub 这样的平台。

00:17:13 - Conor Myhrvold

最终发生的事情是 Perl 拥有的许多优势,是来自一个已经过时的时代的网络效应。

00:17:24 - Saron Yitbarek

Conor Myhrvold 是 Uber 的一名工程师。

00:17:30 - Saron Yitbarek

然而语言的兴衰很少是由外部力量单独决定的,而 Perl 的内部问题是,在它的发展过程中它似乎遇到了障碍。Python 正在以一种相当有序的方式发布新的迭代,而正如我们在本季度第一集中所了解到的,Perl 在 2000 年互联网泡沫破裂之时,Python 开始获得更多新开发人员的青睐。

00:17:59 - Saron Yitbarek

每个人都期待着 Perl 6 的发布,人们都很兴奋。他们等啊,等啊,等啊……他们等了 14 年。

00:18:15 - Elizabeth Mattijsen

人们提出了大约 300 多件 Perl 6 应该能够完成的事情,当然其中很多事情基本上都是相互排斥的。

00:18:26 - Saron Yitbarek

这是 Elizabeth Mattijsen,她是 Perl 6 的核心开发人员。2000 年,Elizabeth 参加了在 蒙特雷 Monterey 举办的 Perl 会议。那时开发者认为他们已经停滞不前了,所以 Perl 6 是必要的。Larry Wall 同意了,但是如果说 Perl 5 是他对 Perl 的重写,那么他希望 Perl 6 是由社区来对 Perl 进行重写。由于团队合作可能需要更长时间,甚至用了 14 年,对于那些开发者来说,这是一条漫长而艰难的道路。

00:19:01 - Elizabeth Mattijsen

我们可以说当前实施的 Perl 6 项目实际上是实现它的第三次尝试。

00:19:07 - Saron Yitbarek

按照 Elizabeth 的说法,在这 14 年里有过多次尝试。中间经历了漫长而痛苦的深度的尝试。开发者们心力交瘁;人们陷入了死胡同。到 2015 年圣诞节那天 Perl 6 终于问世时,世界上的许多地方已经开始了新的发展。而需要注意的是 Perl 6 并没有给予成为某种革命性的新事物,从而实现对 Python 的反击。Perl 6 是对原版进行了深思熟虑的重新设计。

00:19:43 - Elizabeth Mattijsen

我认为 Larry Wall 在他的“ 洋葱状态 State of the Onion ”演讲中使用了一个很好的比喻。对他来说,Perl 5 就像《 霍比特人 The Hobbit 》,而 Perl 6 就像《 指环王 Lord of the Rings 》。如果你仔细看过《霍比特人》和《指环王》的故事,你会发现它们基本上是同一个故事。只是《霍比特人》比《指环王》小得多,情节漏洞也更多,没有《指环王》那么宏大的背景。我认为这很好地描述了 Perl 5 和 Perl 6 之间的区别。它基本上是同样的想法,同样的思路,同样的环境,只是对它的重新构想。

00:20:26 - Saron Yitbarek

Elizabeth Mattijsen 是 Perl 6 的核心贡献者。

00:20:32

如今,Perl 甚至可能不在前 20 种语言之列。在外部竞争和内部拖延之间,它还没有向大多数新开发人员证明自己。但这提出了一个大问题,我们真的应该根据一种语言的流行度来判断我们的编程语言吗?或者说我们应该根据其他方面来判断一种编程语言的价值?当昔日的超级巨星成为陪衬时,这到底意味着什么呢?

00:21:06

在世纪之交时互联网泡沫破裂时,Perl 的统治地位开始衰退时,Larry Wall 发表了一个有趣的声明。他认为尽管 Perl 永远不会再成为世界上最流行的编程语言,但它可以成为较小类别中的领先者。Larry Wall 说那才是真正的目标。成为同类中最好的,而不是世界上最好的。正如他所说的,SUV 永远不会和赛车竞争。

00:21:38 - Saron Yitbarek

我想深入研究这个想法,我想了解在细分类别中做到最好对编程语言的真正含义。

00:21:48 - John Siracusa

我是 John Siracusa,我是一个程序员,也是一个播客主。

00:21:53 - Saron Yitbarek

John 实际上共同主持了三个播客:《Accidental Tech Podcast》、《Reconcilable Differences》和《Robot or Not?》。我们刚刚聊到了 Perl 在当今世界的地位。

00:22:06

Perl 在当今世界排名如何?它仍然是最好的计算机语言吗?

00:22:10 - John Siracusa

Perl 6 具有其他语言没有的、其他语言应该具有的东西,我一直在等待其他语言偷学它。例如语法是将常见任务概念化的一种好方法,而在我看来,使用语法来解决解析问题比使用现有的工具更令人愉快、更干净、更好。

00:22:31

在 Perl 中,对象系统的许多部分看起来很琐碎而无关紧要,但我完全期待其他语言最终会采用它,就像许多语言最终采纳了 Perl 5 中的许多思想一样。因此我认为 Perl 6 在许多方面都是最好的。遗憾的是,很少有人有机会使用它。

00:22:52 - Saron Yitbarek

你认为 Perl 6 社区的发展需要做些什么?想让人们更多地参与到 Perl 6 中,需要做些什么?

00:23:00 - John Siracusa

这有点像 Perl 6 的故事,就像它一直在寻找一个真正奇妙的实现一样。这是第二系统问题的一部分…… 第二系统综合症 second-system syndrome ,我想他们是这样称呼……

00:23:11 - Saron Yitbarek

哦。

00:23:12 - John Siracusa

Perl 6 的,人们希望修复世界上的所有问题。他们想要解决的问题之一是运行时环境。是什么在运行我们的代码?运行 Perl 5 和之前的 Perl 4 的东西是一个巨大的 C 程序,这是由具有独特编码风格的开发者编写的。还有大量的宏,它是一种相当难以理解的东西。

00:23:33

Perl 6 的想法是让我们不要再那样做了,让我们不要制造大量的 C 代码。相反,让我们使用一个虚拟机,这在当时是一种时尚,有很多关于如何实现它的伟大想法。最终我们得到了几个中规中矩的虚拟机实现版本,有时这些还会相互竞争,但没有一个达到真正交付语言使用时需要的性能、稳定性和特性。

00:24:01 - Saron Yitbarek

现如今 Perl 到底发生了什么?你对此有什么看法?

00:24:06 - John Siracusa

Perl 5 绝对像是在走下坡路,因为与 Perl 5 同时代的所有其他语言都采纳了它的大部分最佳思想,并获得了更多的支持。也就是说,因为它在很长一段时间内都是王者,所以有很多 Perl 5 代码在运行一些大型的、重要的站点,人们需要维护和扩展这些代码。

00:24:29

这需要很长时间才能消失。只要看看现今仍然存在的 COBOL,人们怎么还在雇佣人在 COBOL 上做维护吧?

00:24:35 - Saron Yitbarek

嗯。是这样。

00:24:36 - John Siracusa

你刚才问 Perl 是不是一门垂死的语言,我提到了 COBOL,这听起来并不乐观。Perl 6 本身会成为主流语言吗?看起来可能性不大。现在对其他语言有非常多的关注,如果 Perl 6 现在还没有得到开发者的关注,我不知道将会需要发生什么变化来让它流行起来。

00:24:54 - Saron Yitbarek

如果你是这样想的,你对 Perl 有什么期望?你希望在 Perl 5 或 Perl 6 中看到什么,以及希望看到将来发生什么?

00:25:04 - John Siracusa

我对 Perl 5 的希望是人们不要忽视它,因为尽管有其它更流行的语言,但今天许多公司仍然采用 Perl 5 做为解决问题的最佳方案。通常这些都是胶水类型语言的问题。如果你发现自己曾经编写过 shell 脚本,并且可能会说:“好吧,我不会用我的‘真正的编程语言’来做这件事。”不管是 Python,还是 Ruby,还是别的什么。但是 shell 脚本可以让我把一堆东西连接起来(胶水类型语言)。Perl 是完成这项工作的更好工具。编写正确的 Perl 脚本要比编写正确的 shell 脚本更容易。

00:25:40 - Saron Yitbarek

我认为归根结底 Perl 可能不再是一个适合入门的语言,但对于经验更丰富的多语言开发人员来说,它是那个你永远不希望扔掉的工具箱中的小工具,而且特定的工具有时让你提升水平的工具。

00:25:58 - John Siracusa

有时我为 Perl 6 感到难过和沮丧,认为它不会有任何进展,有时我想“好吧,这是个不错的小社区”。每个社区都不需要称霸世界,也不需要成为整个行业的主导语言。也许可以就这样一直走下去,就是,无限期地走下去。这就是开源,和编程语言的伟大之处。没人可以阻止你,你可以像以前一样继续开发 Perl 6。

00:26:27 - Saron Yitbarek

John Siracusa 是一名程序员,也是三个科技播客的联合主持人。

00:26:34

语言都是有生命周期的。当新的语言出现时它们能够精确地适应新的现实,像 Perl 这样的选择可能会占据更小的、更小众的领域,但这并不是一件坏事。我们的语言应该随着我们需求的变化而扩大或缩小它们的群体。在互联网开发的早期历史中,Perl 是一个至关重要的角色,它以各种方式与我们联系在一起,只要看一看它的历史就会发现它的存在。

00:27:11

下次在《代码英雄》中,我们将讨论:是什么将一种语言变成了标准?以及在基于云的开发世界中,新的标准将如何出现?

00:27:26

《代码英雄》是红帽的原创播客。如果你想深入了解 Perl 的故事,或者任何我们在第三季中探索的编程语言,请访问 redhat.com/commandlineheroes 。我们的网站里有许多精彩内容等你去探索。

00:27:49

我是 Saron Yitbarek。下期之前,编码不止。

什么是 LCTT SIG 和 LCTT LCRH SIG

LCTT SIG 是 LCTT 特别兴趣小组 Special Interest Group ,LCTT SIG 是针对特定领域、特定内容的翻译小组,翻译组成员将遵循 LCTT 流程和规范,参与翻译,并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽(Red Hat)发起的 SIG,当前专注任务是《代码英雄》系列播客的脚本汉化,已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。

欢迎加入 LCRH SIG 一同参与贡献,并领取红帽(Red Hat)和我们联合颁发的专属贡献者证书。


via: https://www.redhat.com/en/command-line-heroes/season-3/diving-for-perl

作者:Red Hat 选题:bestony 译者:Mikedkmilk 校对:Northurland, wxy

本文由 LCRH 原创编译,Linux中国 荣誉推出

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客第三季(2):创造 JavaScript音频脚本。

导语:一个在 WWW 初期就确立了它的发展方向的任务,在 10 天内完成,结果呢?它成了一种改变了一切的、不可或缺的语言。

JavaScript 是战胜了一切困难的弱者。Clive Thompson 回顾了浏览器大战,以及这场战争对互联网未来的影响。Charles Severance 解释了 JavaScript 是如何从一个几近不太可能实现的任务变成默认的 Web 开发语言的。Michael Clayton 坦言,他和其他许多人一样,低估了 JavaScript。而 Klint Finley 则描述了一个没有它的阴暗的互联网。

00:00:00 - Saron Yitbarek

嗨,大家好。我们回来了。我们很高兴能推出《代码英雄》第三季。我们要感谢你们中很多人在这个节目中讲述的故事,因为每一季都源于我们与开发人员、SIS 管理员、IT 架构师、工程师以及开源社区的人们讨论你最感兴趣的的主题和技术。现在,我们正在进一步开放这种方式。我们希望大家都能参与进来,帮助塑造《代码英雄》的未来。你可以通过我们的简短调查来做到这一点。你喜欢这个节目的什么地方?你还希望我们多谈论哪些内容?亲爱的听众,我们想进一步了解你。你是开发人员吗?你是在运维部门工作,还是在做一些与技术完全无关的工作?请访问 commandlineheroes.com/survey ,以帮助我们提升第四季及以后的播客内容。现在,让我们进入第三季。

00:01:00

Brendan Eich 34 岁时,在 网景 Netscape 公司总部任职。他正致力于一场为期 10 天的大规模编码冲刺。一种新的语言,一种全新的编程语言,将在在短短 10 天内诞生。那是在 1995 年,编程语言的世界即将永远改变。

00:01:26

我是 Saron Yitbarek,这里是《代码英雄》,一个来自红帽的原创播客。整季节目中,我们都在探索编程语言的威力和前景,探索我们的语言是如何塑造开发世界的,以及它们是如何推动我们的工作的。 这一次,我们将追踪 JavaScript 的创建历程。也许你以前听过 Brendan Eich 的故事,但是像 JavaScript 这种计算机语言是如何真正创造出来的呢?其中肯定是来自 Brendan 的努力,但是这个故事还有更多的内容。

00:02:02

我们的 JavaScript 故事始于一场战争,一场浏览器之战。20 世纪 90 年代的浏览器大战似乎已经成为历史,但它的影响无疑是巨大的。战场的一方,是与 升阳微系统 Sun Microsystems 结成了联盟的网景公司;另一方,你看到的是软件巨头,微软。他们争夺的战利品是什么?赌注已经大得不能再大了,因为这是一场决定谁将成为互联网看门人的对决。

00:02:40

为了真正了解浏览器之战是如何进行的,我找来了我最喜欢的科技史学家之一,作家 Clive Thompson。他的最新著作是 ——

00:02:50 - Clive Thompson

编码者:新部落的形成和世界的重塑 Coders: The Making of a New Tribe and The Remaking of The World 》。

00:02:54 - Saron Yitbarek

Clive 和我谈论的是浏览器之战,让我来为你做个背景铺垫吧。你会看到网景公司意识到浏览器将会是人们用来上网的关键软件。还有微软,他们的整个商业模式就是将东西打包到 Windows 中。直到 20 世纪 90 年代,他们才真正对浏览器感兴趣,微软意识到也许他们一直在打瞌睡。世界正在向网上转移,而微软的 Windows 内没有任何东西可以帮助他们实现这一目标。但是有些人已经在这么做了,一家名为网景的公司,他们正在提供一个通往互联网的入口。突然之间,微软在整个行业的主导地位看起来并不是那么绝对了。浏览器之战始于那一刻,微软意识到了互联网的力量,并开始打量他们新竞争对手。好了,这就是我的铺垫。这里我和 Clive 讨论接下来发生的事情。

00:04:03 - Clive Thompson

这场战争是抢夺谁将成为上网的主要入口。你需要意识到,在 20 世纪 90 年代初期,没有人真正的在线。当 Mosaic 浏览器出现并最终变成网景浏览器时,它们是第一款任何人都可以下载的并让人能够浏览 Web 的浏览器。它们于 1994 年 12 月上线。所以突然之间,成千上万的人能够以这种图形方式使用互联网。他们获得了巨量的下载和大量的新闻报道。基本上每个人都在说:“是的,网景是这种被称之为互联网的事物的未来。”

00:04:40

所以在西雅图,你可以看到微软非常警惕地关注着这件事,因为他们几乎忽略了互联网。他们只专注于销售 Windows,而实际上并没有对这种被称为互联网的疯狂新事物给予任何关注。因此,他们不得不加入到一场急速追赶游戏当中。近一年后,他们才推出自己的浏览器。在 1995 年秋天,他们的浏览器问世了,这实质上是浏览器大战的开始,微软也正在努力成为人们上网的门户。

00:05:13 - Saron Yitbarek

好吧,花费一年的时间才让浏览器面世听起来不算太糟,对吧?时间不算太长,对吧?这似乎是一个合理的时间。

00:05:21 - Clive Thompson

是的,没错。这听起来好像不是很长时间,但那时是发展的是如此之快。而且人们有一种强烈的先发优势意识,那就是第一家能够以自己的品牌形象作为你上网的方式的公司将是多年甚至是永远的赢家。我还记得当时的开发速度有多快。我的意思是,网景公司每两三个月就会推出一款新的浏览器版本。他们会说,“哇。现在,我们已经将电子邮件集成到浏览器中了。现在,我们在顶部有了一个小小的搜索栏。” 它一直在变得越来越好。你可以在某种程度上看到,可以在网上做的所有事情都进入了视线,因为他们可以快速迭代并快速将其推出。

00:06:01

微软习惯于非常缓慢的开发模式。可以是长达四年的开发过程,它是我们能买到的没有 bug 的版本,把它封盒,投放到商店去,然后四年都不发布新版本。现在网景出现了,它是第一家说,“不,我们将推出一款不怎么合格的产品,但它运行得足够好,我们将在三个月、三个月又三个月内推出一个新的版本供你下载。” 这完全破坏了微软的稳定的步骤。

00:06:30 - Saron Yitbarek

好吧。如果我是微软,我可以看着它说,“哦,天哪。这就是未来。我需要迎头赶上。我需要与之竞争。” 或者我可以说,“啊,这只是一时流行而已。” 那么浏览器到底是什么呢?它让微软选择了第一个选项。它让微软说,“哦,天哪。这是个值得的东西。我要与之竞争。”

00:06:51 - Clive Thompson

浏览器本身具有大量的文化传播和积淀作用。你在互联网上可以做的第一件事,一般是获得像文化之类的乐趣。你可以突然进入某个乐队的网页,查看他们的帖子和他们的照片。你可以培养你的爱好,找到佛罗里达州所有的人偶模型。在此之前,关于互联网的一切都看起来很呆板。电子邮件、文件传输、诸如此类。我的意思是,突然之间,浏览器使互联网看起来像一本杂志,像一个有趣的互动对象。报纸、CNN 和杂志前所未有的以这种非常激动人心的方式对此进行了报道。就在这一刻,科技相关的新闻被从《纽约时报》上排在后面的商业版块移动到了报纸的头版。

00:07:41 - Saron Yitbarek

那么,对于开发人员而言,网景浏览器甚至说一般的浏览器能有什么吸引力呢?他们为什么如此着迷呢?

00:07:48 - Clive Thompson

为此我拜访过很多开发人员。突然间,随着浏览器的出现,互联网出现了,有一个 Web 页面,上面写着:“下载我那酷酷的软件吧。” 因此,它开启了我们今天看到的软件打造的整个世界。

00:08:04 - Saron Yitbarek

我在这里应该提一下,起初微软实际上提出要收购网景公司。他们出价很低,网景公司拒绝了他们。因此,微软不得不打造自己的浏览器,他们称自己的浏览器为 探索者 Explorer (IE)。

00:08:21 - Clive Thompson

微软花了一年的时间疯狂地开发浏览器,并于 1995 年秋天将其推出。他们做的事情与网景差不多。他们快速推出了一些东西,并不担心它是否完美,因为它会越来越好。但是,在 20 世纪 90 年代后半叶真正出现的一场战争是谁的浏览器最有趣、最具交互性、最功能复杂。

00:08:53 - Saron Yitbarek

请记住,网景在这方面绝不是占了上风。

00:08:57 - Clive Thompson

微软拥有非常强大的地位。当全球的 80% ~ 90% 的计算机都安装了 Windows 时,很容易就可以把软件设置为默认软件。而这正是他们所做的。所以你可以看到 Internet Explorer (IE)的不断崛起。

00:09:16 - Saron Yitbarek

在某种程度上,可怜的老网景在这场战斗中一直处于劣势。但问题是,在战斗结束之前,他们做了一个 孤注一掷 Hail Mary 的选择,事实证明,这将成为整个编程世界的一个令人难以置信的成绩。

00:09:35 - Clive Thompson

这就是 JavaScript 创建过程中迷人而怪异的故事。

00:09:43 - Saron Yitbarek

所有围绕 Web 的热议,围绕浏览器生活的热议,都非常清楚地表明了一件事。我们需要一种新的编程语言,一种远远超出 HTML 的语言。我们需要一种为所有新的基于 Web 的开发量身定做的语言。我们想要一种不仅能在网上生存,而且在那里蓬勃发展的语言。

00:10:10 - Clive Thompson

如何为浏览器创建编程语言呢?

00:10:15 - Saron Yitbarek

我的朋友,这是一个价值数十亿美元的问题。在网景看到微软与他们竞争的时候,他们开始关注 Java™。Java 会成为 Web 开发的语言吗?Java 是一种丰富的编译语言。它表现得和 C++ 一样好。但它仍然需要编译。开发人员确实想要一些更轻量级的东西,一些可以解释执行而不是编译的东西,一些可以吸引所有涌入 Web 的非专业程序员的东西。毕竟,那些新的程序员想要直接在网页上工作。那是我们的梦想。

00:11:05 - Saron Yitbarek

网景公司需要一种可以在浏览器内部运行的编程语言,让开发人员能够让这些静态网页动起来。他们想,如果他们能在发布 Netscape 2.0 测试版的同时,发布一种新的轻量级语言,为 Web 编程创造奇迹,那不是很棒吗?只是有一个问题,他们只有 10 天的时间来创造一门新的语言。实际上,只给了一个叫 Brendan Eich 的人 10 天的时间。他就是那个负责完成这件事的人。毫无疑问,如果有人能做到这一点,那就是他。在 Brendan 还是伊利诺伊大学的学生时,他常常为了好玩而创造新的语言,只是为了摆弄一下语法。

00:11:57 - Charles Severance

Brendan Eich 的关键在于,在构建 JavaScript 时,Brendan Eich 已经是编程语言狂热分子了。

00:12:05 - Saron Yitbarek

为了了解 Eich 到底取得了什么成果,我们联系了 密歇根大学信息学院 University of Michigan School of Information 的教授 Charles Severance。

00:12:14 - Charles Severance

JavaScript 在某种程度上是在 Java 被视为未来的环境中创建的,在 1994 年,我们认为它(Java)将解决一切问题。一年后,那个真正能解决一切的东西即将出现,但它不能说,“嘿,我已经解决了一切”,因为每个人,包括我自己,就像都相信 1994、1995 年的我们已经看到了未来一样,这个未来就是 Java 编程语言。他们必须建立一种看似无关紧要、看似愚蠢、看似毫无意义,但却是正确的解决方案的语言。

00:12:56 - Saron Yitbarek

但是 Eich 提供的可不仅仅是一种玩具语言。它以隐藏的方式进行了复杂处理,并从以前的语言中汲取了主要灵感。

00:13:07 - Charles Severance

如果你看一下基本语法,很明显它的灵感来自于带有花括号和分号的 C 语言。一些字符串模式取自 Java 编程语言。但面向对象的底层模式取自名为 Modula-2 的编程语言,它有 头等函数 first class functions 的概念,对我来说,这确实是使 JavaScript 成为如此强大以及可扩展语言的最令人惊叹的选择之一,即函数、函数的主体、构成函数本身的代码也是数据。

00:13:41

另一个真正的灵感来源于 HyperCard。JavaScript 总是在浏览器中运行,这意味着它有 文档对象模型 Document Object Model (DOM)的基本数据上下文,文档对象模型是网页的面向对象表示。它不像传统的编程语言。JavaScript 代码不是从一开始就有的,最初它是一个网页,最终演变成了这种面向事件的编程。

00:14:12 - Saron Yitbarek

1995 年 11 月 30 日,当 JavaScript 与网景的 Navigator 2.0 一起发布时,所有的魔力都被植入到一粒强大的语言小种子中。包括 美国在线 America Online (AOL)和 AT&T(美国电话电报公司)在内的 28 家公司同意将其作为一种开放标准的语言使用。当它发布时,有一些老派的专业人士对 JavaScript 嗤之以鼻。他们认为这只是一种新手的语言。他们忽略了它革命性的潜力。

00:14:46 - Charles Severance

这些超级先进的概念来自不太知名但又非常像高级面向对象的语言当中,Brendan 决定将所有这想概念融入其中。所以 JavaScript 就像一只特洛伊木马。它在某种程度上潜入了我们的集体意识,认为它很傻、像个玩笑、简单、轻巧。但是几乎从一开始它就建立了一个功能强大的、深思熟虑的编程语言,它几乎能做计算机科学中的任何事情。

00:15:17 - Saron Yitbarek

其结果是成为了一种浏览器原生语言,可以随着我们在线生活的发展而不断进化。没过多久,JavaScript 就成为了事实上的 Web 开发选择。

00:15:29 - Charles Severance

JavaScript 是一种不二之选的编程语言,我只能学习它,事实上学习 JavaScript 的人通常别无选择,因为他们会说,“我想构建一个浏览器应用程序,我想让它有交互元素。” 答案是你必须学习 JavaScript。如果你想象一下,比如说,你最喜欢的编程语言是什么,那么这个问题的答案几乎就是某某加上 JavaScript,对吧?有人可能会说,“我喜欢 Python 和 JavaScript ”,或者 “我喜欢 Scala 和 JavaScript”,因为它就像是每个人都需要学习的语言。

00:16:05 - Saron Yitbarek

Charles Severance 是 密歇根大学信息学院 University of Michigan School of Information 的教授。他说,网景公司一开始非常强大,他们在浏览器之战中奋力拼搏,但最终……

00:16:22 - Clive Thompson

网景浏览器作为一款严肃的产品就这样消失了。

00:16:27 - Saron Yitbarek

微软在整个行业的主导地位是一股压倒性的力量。尽管在浏览器竞争上晚了一年,但他们还是能够力挽狂澜,赢得了今天的胜利。但你知道,网景公司最后一击,它创造的 JavaScript,是成功的,在战斗结束很久之后,这种从浏览器战争中诞生的语言瑰宝,将有一个改变一切的后世。

00:17:01

如果你是最近才开始编程的,很可能会理所当然地认为,你可以开发可更改和更新的交互式 Web 页面,而无需从服务器拉取页面的全新副本。但是,想像一下,当这样做成为一种全新的选择时会是什么样子的。我们有请红帽公司的软件工程师 Michael Clayton 帮助我们了解那是一个多么巨大的转变。

00:17:28 - Michael Clayton

我想说,在 2004 年 Google Mail 发布了。Gmail,据我所知,它是第一个真正将 JavaScript 带到更高水平的 Web 应用程序,它使用 JavaScript 来动态地切换你正在查看的内容。

00:17:49 - Saron Yitbarek

假设你正在查看收件箱,然后单击了一封电子邮件。在过去,你的电子邮件查看器会在你的浏览器中加载一个全新的页面,仅仅是为了向你显示那封电子邮件。当你关闭该电子邮件时,它会重新加载整个收件箱。

00:18:05 - Michael Clayton

这造成了很多延迟。当你在视图之间来回切换时要等待很多时间,Gmail 改变了这一切。他们使用 JavaScript 在后台获取你想要查看的内容,然后将其展现在你面前,而无需等待全新的页面视图。

00:18:23 - Saron Yitbarek

这节省了大量的时间和精力。但是仔细想想,它改变的不仅仅是速度。它改变了我们工作的本质。

00:18:35 - Michael Clayton

所以,Web 开发者作为一种职业,已经从类似幕后角色的服务端走到了离用户仅薄薄一层之隔的位置,因为他们直接在浏览器中编写代码,而用户也正是通过浏览器查看 Web 页面。

00:18:52 - Saron Yitbarek

它改变了一切。事实上,你完全可以把引领 Web 2.0 革命的功劳都归功于 JavaScript。任何有 Web 浏览器的人都突然之间拥有了一个摆在他们面前的开发环境。但是,正如我之前提到的,老保守派对民主性并不一定感到舒服。

00:19:16 - Michael Clayton

早期反对 JavaScript 的人当中,我也是其中的一员。我有个阻止 JavaScript 运行的浏览器扩展。我认为它是一种无用的玩具语言,每当我访问一个网页,该网页的某些关键功能需要 JavaScript 时,我都会感到愤怒。我想,“你应该在没有 JavaScript 的情况下以正确的方式构建你的网站。”

00:19:43 - Saron Yitbarek

然而,很快,Brendan Eich 仅仅用 10 天创建的语言,它所蕴含的美和潜力对每个人来说都变得显而易见了。现在,它不仅征服了浏览器,也征服了服务器。有了 Node.js,这种小众语言的全新领域已经打开。

00:20:03 - Michael Clayton

当我听说 JavaScript 打算在服务器上运行时,我想,“为什么会有人想这么做?”那时,我已经是一名专业的 JavaScript 开发人员了。我每天都写很多 JS,但我还是不太明白为什么它可以归属到服务器端,事实证明,像很多听众都知道的那样,Node.js 现在是这个行业的一支巨大的力量。我认为这是有充分理由的。

00:20:32

Node.js 如此成功的原因之一,就是它拥有庞大的前端 JavaScript 开发人员和客户端开发人员社区。他们写代码,他们在用 JavaScript 为浏览器编写代码。这么多的开发者,现在又可以用同样的语言来为服务器端编程,这让他们立刻就拥有了大量的可以立即开始为服务器端做贡献的人员。这个工具已经在你的工具包中,你只需将其拿出来,安装上 Node.js,然后就可以加入到编码竞赛中去了。

00:21:11 - Saron Yitbarek

先是在浏览器中,然后又在服务器上。JavaScript 是这种朴实无华、暗自芬芳,有时候也会有点古怪的编程语言。这个浏览器战争中的幸存者,被大家低估了。

00:21:25 - Michael Clayton

JavaScript 算是编程语言中的灰姑娘故事,它始于基本上是在 10 天内拼凑起来的初态。中间经历了来自其他编程社区的许多嘲笑,然而仍以某种方式继续取得成功和增长。最后到现在稳居世界上最流行的编程语言中排名第一、第二的位置。JavaScript 基本上无处不在。在网页内部运行的能力意味着 JavaScript 和 Web 一样普及、非常普遍。

00:22:08 - Saron Yitbarek

Michael Clayton 是红帽公司的工程师。JavaScript 吞噬了世界吗?它是否搭上了 Web 的顺风车,才成了一种主流语言?我想找出 JavaScript 的实际边界在哪里。

00:22:25 - Klint Finley

嗨,我叫 Klint Finley。我是 Wired.com 网站的撰稿人。

00:22:28 - Saron Yitbarek

Klint 对同样的事情也很好奇。他越是关注今天 JavaScript 的运行方式,就越发意识到它已经渗透到他的在线生活的每一个环节。

00:22:40 - Klint Finley

在你还没来得及决定是否要让所有这些不同的应用程序在你的电脑上运行之前,JavaScript 已经成为一种可以增强整个应用程序能力的工具。它们就那么运行了,它们参与了广告或促进广告商使用的跟踪。所以,在你的浏览器中,有很多事情在无形中发生,你甚至可能根本不知道,也不希望发生。

00:23:07 - Saron Yitbarek

因此,Klint 决定做一个小实验。

00:23:10 - Klint Finley

我决定试着在没有 JavaScript 的情况下使用 Web 一段时间。我决定试一试,花一周时间禁用浏览器中的 JavaScript。

00:23:21 - Saron Yitbarek

听起来很简单,但是放弃所有 JavaScript 产生了一些令人惊讶的效果。因为 JavaScript 已经变得如此之大,如此之全,这种以轻量级著称的语言现在实际上占用了大量的空间和能源。当 Klint 屏蔽了那种语言时才发现……

00:23:39 - Klint Finley

总体而言,这在很多方面都是一种更好的 Web 体验,比如页面加载更快,页面更干净,我电脑的电池续航时间更长,并且我对电脑上发生的事情有了更多的控制感,因为没有这些奇怪的、看不见的随机程序在后台运行。

00:24:02 - Saron Yitbarek

想象一下第一次过上没有弹出式广告的生活是多么幸福。

00:24:07 - Klint Finley

很多东西很大程度上依赖于 JavaScript 来加载。所以网页变得简单多了,广告少了,干扰也少了。

00:24:17 - Saron Yitbarek

不过,这种整洁的 Web 体验并不是全部。如果你拔掉 JavaScript 的插头,Web 的某些部分就完全不能工作了。

00:24:26 - Klint Finley

很多内容都不能正常运行了。Gmail 把我重定向到了一个为旧手机设计的不同版本。Facebook 也一样,很多流畅的互动没有了,它变得更像是一系列的网页。因此,Netflix 无法正常工作。YouTube 无法正常运行。是的,任何非常依赖互动的东西都不能运行了。拿掉了 JavaScript,有好处也有坏处,最终我不得不做出抉择,有 JavaScript 总比什么都没有要好。

00:25:05 - Saron Yitbarek

Klint Finley 是 Wired.com 的撰稿人。大多数人预测 JavaScript 只会继续主导移动和桌面应用程序开发。像基于浏览器的游戏、基于浏览器的艺术项目等等,它们的复杂程度正在飞涨。不断增长的 JavaScript 社区正在最大限度地利用这一潜力。

00:25:34

值得回想一下,就在 1995 年,就在几十年前,Brendan Eich 坐在一个房间里,设计出一门新的语言。今天,这种语言渗透到我们所做的每一件事中。也许说一串新的代码会改变世界听起来有点陈词滥调,但它确实发生了。一位代码英雄将他对语言的所有热爱汇聚到 10 天的冲刺中,世界的 DNA 也将永远改变。

00:26:10

我们可以为 Google Docs、YouTube 和 Netflix 而感谢 JavaScript。但是你知道,“能力越大,责任越大”,随着 JavaScript 的影响力在大量开源库的推动下不断增长,责任不再仅仅落在一个人身上了。一个更广泛的社区已经接过了责任。SlashData 最近估计 JavaScript 开发人员的数量为 970 万,在 GitHub 上,JavaScript 有比任何其他语言都多的 PR( 拉取请求 Pull Requests )。 JavaScript 在全世界代码英雄们的力量加持下,正在走向美好未来。

00:26:59

下一期的《代码英雄》,我们将遇到另外一种 Web 语言,我们将探索 Perl 是如何在一个广阔的新领域蓬勃发展的。

00:28:04

最后,有听众在网上分享了我们上一季的 Hello World 那一期,在该期中我们也谈到了 Brendan Eich 和 JavaScript。在那一期,有嘉宾说,在那 10 天里,Brendan 可能没有睡过多少觉,如果有的话,也是很少。好吧,Brendan 在推特上回应说,他确实在那次冲刺过程中睡过觉。想要更多地了解这 10 天发生了什么,请查看 Devchat 对 Brendan 的采访播客。我们会在我们的节目记录里加个链接。我是 Saron Yitbarek。下期之前,编码不止。

什么是 LCTT SIG 和 LCTT LCRH SIG

LCTT SIG 是 LCTT 特别兴趣小组 Special Interest Group ,LCTT SIG 是针对特定领域、特定内容的翻译小组,翻译组成员将遵循 LCTT 流程和规范,参与翻译,并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽(Red Hat)发起的 SIG,当前专注任务是《代码英雄》系列播客的脚本汉化,已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。

欢迎加入 LCRH SIG 一同参与贡献,并领取红帽(Red Hat)和我们联合颁发的专属贡献者证书。


via: https://www.redhat.com/en/command-line-heroes/season-3/creating-javascript

作者:Red Hat 选题:bestony 译者:gxlct008 校对:windgeek, FineFan, wxy

本文由 LCRH 原创编译,Linux中国 荣誉推出

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客第三季(2):学习 BASIC音频脚本。

导语:以前,成为程序员需要博士学位,还要能够接触到像服务器之类有着举足轻重地位的硬件。直到 1965 年,一群工程师有了个激进的想法:让编程变得更易学、亲民。

像 BASIC 这样专为初学者设计的语言为许多人打开了编程世界的大门。Tom Cormen 和 Denise Dumas 回忆了 BASIC 是如何改变一切的。Avi Flombaum 和 Saron 则会向这个软件开发新时代的编程新手们提供关于挑选第一门语言的建议。最后,Femi Owolade-Coombes 和 Robyn Bergeron 会向我们讲述,新一代的程序员们,是如何通过游戏来接触编程的。

这些初学者语言的诞生,让每个人都有机会踏入编程的大门。同时,这也让整个产业欣欣向荣。

00:00:02 - Saron Yitbarek

1965 年是美国历史上发生重大变化的一年。《民权法案》就是在那年签署的。

00:00:09 - 新闻档案

国会通过了史上影响最为广泛的《民权法案》,并将它写进了法律里。

00:00:12 - Saron Yitbarek

作战部队被第一次被派往越南,男人们烧掉了他们的征兵证。

00:00:19 - 新闻档案

征兵名单被放在波士顿法院的台阶上,一群高中男生挥拳抗议。

00:00:25 - Saron Yitbarek

在纽约,披头士乐队举行了世界上第一场体育馆内的音乐会。但在距离这些大新闻很远的地方,一场与众不同的革命正在酝酿。

00:00:39

5 月 1 号,凌晨 4 点。 约翰·凯梅尼 John Kemeny 教授和一名本科生正在 达特茅斯 Dartmouth 的 GE 225 型电脑上忙碌着。他们运行了一个方才写好的程序。电传打字机的三行输出,永远地改变了计算机编程领域。

00:01:04

欢迎来到红帽原创播客《代码英雄》的第三季第 2 集。我是主持人,Saron Yitbarek。在这一集,我们将继续“编程语言的过去与未来”的旅程。在第 1 集中,我们深入研究了 Python,并了解了开源社区如何在其领导阶层的大动荡中生存下来。比起上一期节目,本次节目则会更注重于个人。我会先聊聊我邂逅入门语言时的体验,这种体验我们应该都有。我将带领你们领略我学习的第一门语言 Ruby,以及某些新手语言是如何用游戏的形式,来到我们身边的。

00:01:50

不过,我得先举个例子,好让大家都能明白“新手语言”到底是什么意思。这个例子就是 BASIC,它诞生于之前提到的 达特茅斯 Dartmouth 实验室的三行输出。在 1965 年的那个黎明, 约翰·凯梅尼 John Kemeny 作为创造者之一,见证了 BASIC 的诞生。

00:02:14

BASIC 的意思是“ 初学者的泛用符号指令代码 Beginner's All Purpose Symbolic Instruction Code ”。这里面的第一个词 “初学者” 正是其不凡之处所在。在那时候,即使是少量的编程工作,也需要一名博士来完成。这是一种极高的要求,需要有人接受专业教育,更不用说那些高级的硬件了。但是 凯梅尼 Kemeny 教授和他的团队希望改变现状。他们想知道:如果要编写一种所有人都可以使用的编程语言,那会是什么样的?当美国各地的青年们剧烈地抗议,要求变革时, 达特茅斯 Dartmouth 团队提出了一种另类的革命。

00:02:57

他们的秘密武器是一个房间那么大的大型电脑 —— GE 225。它重达 2000 磅,和这份不得了的重量相匹配的是,它具备某些全新的功能。那就是分时功能(LCTT 译注:也就是时间片,实现了多用户多进程快速切换的技术)。突然间,编程不再需要复杂的打孔卡系统或庞大的开关墙了。分时意味着程序们都可以同时执行,因为系统会根据不同用户的需要来回切换其处理内容。

00:03:31

分时意味着使用者可以用惊人的新方式来访问计算机。这是来自 达特茅斯 Dartmouth 的些许录音,记录了 BASIC 刚诞生的时候,65 班的一位本科生 John McGeachie 学习的实况。

00:03:47 - John McGeachie

我们把这台相当贵的、原本只能一次让一个人用的计算机变成了可以……让超过 30 人使用的东西。30 名本科生可以同时在这上面编程,还能快速得到输出。它是史无前例的简洁直接。

00:04:15 - Saron Yitbarek

约翰·凯梅尼 John Kemeny 联合另一位计算机文化的布道师 托马斯·卡茨 Thomas Kurtz 共同开发了 BASIC 语言。他们发现,分时让计算机使用变得更亲民,因此准入门槛降低了许多。而剩下的工作则是编写一门简单直白的编程语言。 一门像 BASIC 那样的语言。

00:04:39

他们开发了像 HELLOGOODBYE 这样的指令,来代替 LOG ONLOG OFF 命令。事实上,初版 BASIC 只有 14 个简单的指令,比如条件判断 IF,和 GOTO 之类的简单选项。

00:04:54 - Tom Cormen

我是 Tom Cormen。我是 达特茅斯 Dartmouth 大学的一名计算机科学教授。

00:04:59 - Saron Yitbarek

Cormen 教授将与我们谈论所谓“初学者的革命”,以及 BASIC 的出现如何成为时代精神的一部分。它带来了一个新世界,在其中,计算机技术对更多人来说不仅不再遥不可及,甚至还是激动人心的——编程甚至变得有点时髦了。

00:05:14 - Tom Cormen

据说在 1960 年时,男学生会在这里(计算机中心)约会,我真是不能想象如果发生在现在会是什么样子。但在那个时候,计算机中心一度是约会的最佳场所。

00:05:24 - Saron Yitbarek

这种在校园兴起的编程热潮,是“初学者语言”诞生所带来的直接结果。

00:05:31 - Tom Cormen

就如同我们过去说的那样,BASIC 为那些计算机爱好者降低了准入门槛。不想学习 FORTRAN 这类编程语言的社会科学家可以使用 BASIC。从事人文艺术的人们可以用它做文本处理,甚至用来创作艺术作品,这些完全可以用 BASIC 来完成。

00:05:55

没过几年,人们就开始写电脑游戏,也时常在编程中实现 GUI。

00:06:03 - Saron Yitbarek

对于所有那些认为自己不太可能成为程序员的孩子们,编程领域的大门,突然间以一种近乎直观的方式打开了。它使得我想起来 葛丽丝·哈伯 Grace Hopper (LCTT 译注:参见上一季。元祖级程序员,美国海军准将,COBOL 的重要编写者。她也是世界上第一个在计算机领域使用 “bug” 这个词的人。)所追求的那种世界。当我们上一季谈到 哈伯 Hopper 时,我们谈到了她的语言创新如何将编程带到更多人眼前。BASIC 的此时此刻就像是 哈伯 Hopper 梦想的延续。

00:06:29 - Tom Cormen

我非常确信,如果 葛丽丝·哈伯 Grace Hopper 能看到更多人开始写代码,她会非常高兴。她可能会喜欢 BASIC 和 COBOL 的不同之处,因为这种不同为人们提供了更多的选择。他们可以写 COBOL,可以写 FORTRAN,可以写 BASIC,可以写 ALGOL,可以选择当时任何流行的语言。

00:06:54 - Saron Yitbarek

Tom Cormen 是 达特茅斯 Dartmouth 计算机科学系的一名教授。当初,计算机技术中的几大变化催生了新一代的程序员。分时功能使并发工作成为可能,而 BASIC 使入门编程变得简单了。这两个因素结合在一起,创造出了改变游戏规则的星星之火。很快,编程就不仅是大型机构的专利。这一代程序员中有像 比尔·盖茨 Bill Gates 史蒂夫·沃兹尼亚克 Steve Wozniak 这样的特立独行者,也有在个人电脑上每天默默耕耘的开发者。

00:07:32 - Denise Dumas

BASIC 能够在程序出错时立即给使用者以反馈。这让它的使用体验变得不同,它将你吸在一起,使你继续前进;这种交互是有意义的,就因为它是一种交互。

00:07:50 - Saron Yitbarek

这位是 Denise Dumas,她带领“ 红帽企业版操作系统 Red Hat® Enterprise Linux® ”工程师团队。

00:07:55 - Denise Dumas

我认为 BASIC 使编程变得民主了许多,因为 BASIC 把它自身交予学生、大众,当时的其他语言——像是 COBOL、FORTRAN 之类——根本做不到这一点。当 CRT(阴极射线管)流行的时候,BASIC 更为火爆,因为在你输入了信息之后,输出不再是被打印在一张纸上,而是显示在你面前的屏幕上。

00:08:26 - Denise Dumas

我们现在有时候会嘲笑命令行,对吧?一切都图形化了,命令行还是一如往常,但它比命令行之前的时代有了很大的改进。这一重大改进就是,你输入指令能够立即得到回应了。我认为 BASIC 降低了准入门槛,虽然我是那种控制狂,我喜欢汇编,但我还是会这么说的。BASIC 使编程变得更加平易近人。

00:08:59 - Saron Yitbarek

BASIC 在 1980 年代带来的这份激情一直延续到了今日。现在,有许多语言能被初学者用作进入编程世界的光明大道。但如今发生了另一些重要的改变:编程入门不再只有进入大学学习一途。如果将入门的方式比作道路,那么,今日,条条大路通罗马。

00:09:29

尽管 BASIC 很神奇,但 葛丽丝·哈伯 Grace Hopper 的梦想不会止步于此。如今,初学者有上百种方法可以开始编程。就我而言,我是在纽约市一家名为 Flatiron 的编程学校学习的第一门语言。我为那个项目准备了几个月,我阅读了所有可能的编程资源和教程,以确保它们也许能让我在训练营中获得最大收益。我想了解当今人们是如何接触自己的入门语言的。所以,今天我采访了自己当初的那位老师。

00:10:03 - Avi Flombaum

我是 Avi Flombaum。

00:10:04 - Saron Yitbarek

Avi 是 Flatiron 学校的创始人之一。对我来说,探究所有有关入门语言的思想,以及我们对入门语言的方法与 BASIC 的旧时代相比有什么变化,是一种享受。

00:10:26

当你教别人该如何编程时,先从哪里下手呢?我记得当我学习第一门编程语言时,我觉得这一切可真是太奇怪了。我在大学读的是英语专业,在学校里我很喜欢数学,也喜欢有机化学。我喜欢很多不同类型的科目,各种各样的东西,但是没有什么是和编程有关的。因此,我也没办法将编程比作什么。它自成一套,就像一个自己的小世界。所以,作为老师,你会从哪里开始呢?

00:10:49 - Avi Flombaum

我认为生活中你所熟悉的任何事物,曾经都是陌生的。只有经历过,真正花时间去做,才会让你对它感到习惯。这是不断重复练习的问题,只关乎你投入的时间的多少。我认为编程之所以困难,之所以让人感觉如此陌生,是因为它用极其特殊的语法来表达一些东西。没有任何歧义,没有错误的余地。要么成功,要么失败。当我们互相交流的时候,我们一般没有那种要求。一切都必须完全正确。一个逗号丢了,一个括号缺了,就全坏了。

00:11:32

我总是说,计算机是愚蠢的,为了使计算机理解我们的意思,我们必须做到完美。

00:11:37 - Saron Yitbarek

你说的这一点我喜欢。我同意,这很棒。

00:11:43 - Avi Flombaum

是啊。

00:11:44 - Saron Yitbarek

对我来说,我喜欢的入门语言是 Ruby。根据经验,我可以告诉你,这是一种非常可爱的入门语言。当你阅读代码时,感觉就像你在阅读英语。它有很多不错的库;这里插播一则知识补充。Ruby 的创造者 松本行弘 Yukihiro Matsumoto 是通过学习 BASIC 进入编程领域的。

00:12:06

如今,许多新手可能会改用 Python 或 JavaScript,而我想知道,Avi 你是否认为有最理想的入门语言。

00:12:18

我想知道,是否有首选的入门语言?如果某人没有技术背景,没有编程经验,也没有计算机科学学历而进入这个领域,那么他们就是从一开始,甚至说从零开始……随着时间的推移,有没有更好的初始语言冒出来呢?

00:12:39 - Avi Flombaum

好吧,首先,我要说的是每个人都没有背景。没有谁是天生的程序员,因此,无论你是有计算机科学学历,还是在社区中心里学习,抑或读书自学,每个人都是从初学者开始的。然后,就初学者的首选语言而言,我认为你最先看到的语言就是最好的。我对初学者的建议始终是,选择一种语言并学习它,不要改变。我认为,初学者最容易犯错的是,我先学习 Python,然后对它感到沮丧,说 Python 很烂,现在我要去用 JavaScript 了。他们学习 JavaScript,然后对 JavaScript 感到沮丧,然后又换了起来。

00:13:22

如你所知,我个人认为 Ruby 是一种很棒的初学者语言。我认为它的语法真的很漂亮。它的价值,明确地就是要使你(程序员)感到高兴。我不知道是否有其他任何使程序员开心的语言。我知道人们发明了许多语言来使机器开心,但我认为 Ruby 确实很自然。

00:13:44 - Saron Yitbarek

这一点我们可以达成共识。但是同样,这里没有错误的答案。毕竟,入门语言就是这样。它只是开始。我们所有人都有一生的时间用来学习,而且,选择一种语言而不是另一种语言,并不会阻止你成为出色的程序员。

00:14:05

我喜欢画画,但我不会为了一支笔而死去活来。我不会因为我使用的笔而大动干戈,我为我所创造的东西而激动。那么从你的经验来看,为什么会这样呢?在大家面前辩护,让大家相信你对一种编程语言的看法是正确的,这样的一种思潮是从何而来的呢?

00:14:23 - Avi Flombaum

我也不知道。因为我很喜欢你关于笔与作品的比喻,我首先想到的是……在我的设想中,人们死死地抓住工具,恐怕是因为作品并不吸引人。

00:14:41 - Saron Yitbarek

哈哈,那真好笑。

00:14:42 - Avi Flombaum

如果你做的东西就是不厉害,不伟大,对这个世界也没有太大的价值,你还想捍卫你的手艺,你唯一能指出的就是,是啊,看我把那把锤子挥得多好。当然,房子虽然倒了,但那把锤子,那把锤子真的很棒,我知道怎么用。作为一个人……我也觉得建造出的东西比你建造它的方式更重要。

00:15:09 - Saron Yitbarek

说得好。现在,初学者不止可以选择 BASIC 或者 FORTRAN,我们已经拥有一整套的入门语言清单,但总有一种危险,那就是你忘记了这些语言仍然是达到目的的一种手段。语言是工具,不是你要制作的东西。

00:15:27 - Avi Flombaum

我认为技术的价值在于,为人们创造有意义的事物。说到底,如果你确实是一名非常非常好的程序员,但是你做的东西没有人需要,没有人喜欢……它没有为世界增加价值,但是你真的真的非常擅长这门手艺,只是找不到能产生影响的方法,我想你可能会深入研究并讨论所使用的工具。

00:15:56 - Saron Yitbarek

好吧,非常感谢 Avi,感谢你分享你的所有经验以及对编程语言的想法。那我们就谈到这里?

00:16:01 - Avi Flombaum

是的,这非常好玩,很高兴再次跟你交流,我希望大家都找到自己喜欢的语言,每天都能用它来工作。

00:16:10 - Saron Yitbarek

听起来不错。

00:16:13

Avi Flombaum 是 Flatiron 学校的联合创始人之一。

00:16:20 - Saron Yitbarek

编程学校可以将教育和知识获取的精神提升到一个全新的高度。这是我们在 达特茅斯 Dartmouth 看到的一切的延续;但如今,在一个多样化的开发生态系统中,新的、更加自然的入门方式将会不断涌现,初学者们已经有了更理想的手段来开始他们的编程“游戏”;有时,他们甚至会以玩游戏的方式入门。

00:16:45 - CO.LAB 参与者

你试过其他键吗?试试 G 键。

00:16:52 - Saron Yitbarek

现在,在这暂停。这不是一群年轻的程序员在默默地背诵 O'Reilly 的课本,也不是在 Flatiron 学校的讲座。这其实是红帽在伦敦 泰特现代美术馆 Tate Modern 里运行的一个小实验室。那些孩子呢?他们在学习写代码。对于新一代来说,编程的乐趣就是他们首先体会到的。

00:17:13 - Femi Owolade-Coombes

好的。嗨,我叫 Femi,也叫 Hackerfemo。

00:17:17 - Saron Yitbarek

Femi Owolade-Coombes 只有 13 岁,但他已经是新一代程序员中的一名领袖。

00:17:26 - Femi Owolade-Coombes

我八岁的时候第一次接触到编程,那时我去 约克 York 参加一项活动。活动本身其实是数学主题的,不过我在那里看到了个很酷的东西——合法地黑入 Minecraft。作为八岁的孩子,那时候的我认为那真的很酷。所以我就这样喜欢上了编程。

00:17:47 - Saron Yitbarek

他并不孤单。Minecraft 已经将一代人引入了编程领域,而且它做到了没有过去几代人所经历的痛苦和枯燥的学习。游戏的魔力正在消除障碍。 Minecraft 是基于 Java™ 的,它也为该语言注入了新的活力,催生了一大群新的 Java 粉丝。

00:18:11

但不一定是 Java。对于 Femi来 说,Python 是他在 Minecraft 中发现的语言。

00:18:16 - Femi Owolade-Coombes

当你使用 树莓派 Raspberry Pi 版的 Minecraft 时,你可以用 Python,因为树莓派上的 Minecraft 是特殊编写的版本。它很酷,只要导入这个库,你就可以黑进去,到处放置爆炸性的 TNT;你可以在自己身后创建方块,也可以创造建筑物。你可以拿它做各种各样的事。

00:18:42

当我第一次玩它时,我发现可以添加很多类似 mod 的东西(LCTT 译注:一类加载于电子游戏上的插件,玩家可以通过 mod 改变游戏的行为方式),这很酷。mod 这东西本身就有点像黑进游戏一样,但 mod 的存在让我意识到,我们也可以用正规的方法改变游戏,让它以你希望的方式行事。我认为这真的很酷。

00:18:57 - Saron Yitbarek

Femi 打开了一个编程世界,而通往世界的大门是他最喜欢的游戏。然后,他做了一件了不起的事情。他开始向其他孩子分享那扇门。

00:19:10 - Femi Owolade-Coombes

嗯,我想与同伴分享我的知识。因为我觉得,你知道吗?他们会非常喜欢的,我也会因此度过愉快的时光。我想与其他所有人共享这些,这样他们就能了解它,甚至可以参与编程。

00:19:30 - Saron Yitbarek

Femi 将此事贯彻到底,创办了 南伦敦树莓酱 South London Raspberry Jam (LCTT 译注:这个名称典出“树莓派”;jam 也有即兴演奏的意思,常用于一些赛事。),在那里,他已经看到了全新一代的编程者,他们正挑战人们以往对编程初体验的预判。除了那些 Minecraft 黑客,像 Scratch 或 Fruit 这样的可视化语言也让越来越年轻的用户拥有基础知识可以实现编程。

00:19:54 - Femi Owolade-Coombes

我确实喜欢玩游戏这个点子,比起在课堂上学习代码,我最喜欢的是能够控制游戏中发生的事情,而代码是背后的魔法,代码给了你那种非常酷的能力,让游戏做你想要的事情。

00:20:15 - Saron Yitbarek

Femi 的妈妈告诉我们,当她发现玩游戏并非一种弊大于利的追求时,她有多么高兴。我喜欢他的故事,因为这故事是从游戏开始的,却没有结束于游戏。他建立了一个属于年轻程序员的、了不起的社区;Femi 自己的代码生涯也在起飞,不再是围绕着 Minecraft 了。他在 HTML、JavaScript 和 CSS 领域工作,建立网站,做网页设计。他甚至在用 Unity 打造自己的游戏。

00:20:44 - Femi Owolade-Coombes

每个人都应该有权利学习编程,因为这是未来。

00:20:53 - Saron Yitbarek

Minecraft 真的是一所巨型编程大学吗?明日的程序员,是否会通过游戏和玩耍来吸收新的语言呢?只通过环境渗透能否真正地学习语言?

00:21:06 - Robyn Bergeron

嗨,我叫 Robyn Bergeron。

00:21:08 - Saron Yitbarek

Robyn 是 Red Hat 的 Ansible® 社区架构师 community architect ,她有几个孩子,这些孩子们偶然间接触到了编程。

00:21:18 - Robyn Bergeron

那是晚饭时刻。我在做饭,每个人对这件事情都印象深刻。我的女儿来到厨房,她说:“妈妈,我在 Minecraft 中提交了一个错误!”我从事软件工作,我看到过很多很多错误报告,而且我真的很好奇,在那个宇宙中,这意味着什么。是说我在 Twitter 上和别人聊了聊,说它坏了,还是什么?我让她给我看看,于是她打开了电脑,她已经在 Mojang 的系统中创建了一个 JIRA 帐户。

00:21:53 - Saron Yitbarek

我们应该注意到,罗宾的女儿在当时只有 11 岁。

00:21:57 - Robyn Bergeron

她把表格填得像模像样。我见过很多内容不完整的错误报告,也见过很多口吻过于尖锐的错误报告。但这是一个完美的报告……这份报告里有说“发生了什么事”,“我预期会发生什么事”,以及“如何重现错误”。对于很多人来说,这是他们与项目的第一次互动,无论是商业的、专有的软件项目,比如一个电子游戏,还是一个开源软件项目。我很自豪,我告诉她,之后我们完全可以去参加 Minecraft 大会,因为他们一直很想去。

00:22:33 - Saron Yitbarek

Robyn 意识到,当我们其他人从事日常工作时,孩子们却开始了一场革命。以下是在那场 Minecraft 大会上发生的事情。

00:22:43 - Robyn Bergeron

我们去参加主题演讲,我说,就算我们在最后一刻去也会没事的,会在第二排找到位置。但我的设想完全错了,我们坐得就跟房间后面那 10 个大屏幕一样靠后。不过这并没有减少孩子们的热情。大会的其中一天,全体开发人员也在会议上出场了。当工程师们出来的时候,所有在场的孩子都站起来尖叫。如果你看过披头士乐队表演的视频,那这时候就像披头士乐队来美国时一样。我不能相信他们就在我们眼前,这是难以置信的一幕!在会议期间,人们都在试图得到他们的签名,这是……我和我的孩子坐在那里,我在想,我开发操作系统,连接互联网,这样你们才能在一起玩游戏吧?我们做错了什么,才会如此默默无闻呢?

00:23:36 - Robyn Bergeron

但是孩子们就像,我长大后要成为使用 JavaScript 的人!是的,那个活动带来的热烈氛围令人着迷,但……这是一个电子游戏。

00:23:51 - Saron Yitbarek

在 70 年代的某一段时间,每个人的入门语言都是 BASIC;然后可能是 C。近来,人们开始使用 Java 或 Python,但是可视化语言编程和游戏正在催生我们鲜有设想的编程未来。

00:24:10 - Robyn Bergeron

尽管对于已经从事多年编程工作的人来说,这似乎微不足道,但我开始游玩的那一刻,我甚至没有意识到,我其实是在学习一种可以让我受益终生的东西。

00:24:23 - Saron Yitbarek

Robyn Bergeron 是红帽的 Ansible 社区架构师 community architect

00:24:32

BASIC 邀请大学生进入编程世界,而 Minecraft 等游戏则邀请小学生进入当今编程世界。但是从某种意义上说,创造的动力并没有改变。那些大学生在学习 BASIC?是的,他们经常用它来编写游戏。最常见的似乎是足球题材。

00:24:54

创新精神是驱使我们学习编程语言的第一推动力。这种驱动力让我们使世界变得更好,或变得更加有趣。

00:25:08

下次,在第 3 集中,我们会讲述,全新的编程语言究竟从何而来?我们会了解到,巨大挑战是如何推动着开发人员从过去的语言中走出来,并在今天创造出新事物的。

00:25:26

《代码英雄》是 Red Hat 的原创播客。如果你想更深入地了解 BASIC 的起源或在本集中听到的其他内容,请转至 redhat.com/commandlineheroes

00:25:37

我是 Saron Yitbarek。在下期节目到来之前,也请继续编程。

什么是 LCTT SIG 和 LCTT LCRH SIG

LCTT SIG 是 LCTT 特别兴趣小组 Special Interest Group ,LCTT SIG 是针对特定领域、特定内容的翻译小组,翻译组成员将遵循 LCTT 流程和规范,参与翻译,并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽(Red Hat)发起的 SIG,当前专注任务是《代码英雄》系列播客的脚本汉化,已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。

欢迎加入 LCRH SIG 一同参与贡献,并领取红帽(Red Hat)和我们联合颁发的专属贡献者证书。


via: https://www.redhat.com/en/command-line-heroes/season-3/learning-the-basics

作者:Red Hat 选题:bestony 译者:erlinux 校对:acyanbird, Northurland, wxy

本文由 LCRH 原创编译,Linux中国 荣誉推出

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客第二季(9):特别篇 - 开发人员拥护者圆桌会议音频脚本。

导语: 开发者推广大使 developer advocate 在开源社区中起到的作用是举足轻重的。我们邀请了几位这样的推广大使来到本期节目中,以向我们揭示他们的工作方式,并阐述这份工作背后的意义。

来自 Mozilla 的 Sandra Persing、Twilio 的 Ricky Robinett 与 红帽的 Robyn Bergerron 将在此接受 Saron 的采访,分享他们的工作内容、他们支持社区的方式,以及他们对 2019 年的展望。

00:00:06 - Saron Yitbarek

大家好,我是 Saron Yitbarek,这里是红帽的原创播客节目《 代码英雄 Command Line Heroes 》的特别篇。我们的节目在第 2 季去了很多地方。我们探索了编程语言数据大爆炸安全危机以及无服务器时代的到来,我们甚至去了火星

00:00:28

但是在结束了第 2 季之后,我们还有一个地方要去。我们要走进推广大使和思想领袖们的认识当中,他们帮着塑造了开发人员所做的全部工作。有时,他们被称为 开发者推广大使 developer advocate ,或者说他们担任开发者关系的职位,或开发者布道师。

00:00:50

从开发人员的角度来看,无论他们的具体头衔是什么,他们似乎都做着许多相同的事情。你在会议上见过他们发表主题演讲。你在播客上听过他们接受采访,就像在本期节目中一样。你可能还阅读过他们的博文。但是他们是谁呢?他们到底在用自己的声音做了些什么?

00:01:10

为了迎接 2019 年的到来,我们为大家召集了一个优秀人物的圆桌会议。尽管他们的头衔各不相同,但他们的目的是一致的。他们来到这里,是为了帮助开发人员,并确保其声音和需求能被大众听到。这些人都是典型的代码英雄。

00:01:29

来自 湾区 Bay Area 的 Sandra Persing 是 Mozilla 的 全球策略师 Global Strategist ,也是 DevRel 峰会的创始人。

00:01:38 - Sandra Persing

嗨, Saron。

00:01:39 - Saron Yitbarek

你好。还有同样来自旧金山的 Ricky Robinett。他是 Twilio 的开发人员网络总监。

00:01:47 - Ricky Robinett

你好。

00:01:49 - Saron Yitbarek

从凤凰城外和我一起来的是 Robyn Bergeron,Red Hat 的社区架构师。

00:01:55 - Robyn Bergeron

嗨!你好吗?

00:01:56 - Saron Yitbarek

我很好。

00:01:57 - Robyn Bergeron

看到你真高兴。

00:01:57 - Saron Yitbarek

在不同的地方,这份工作的践行者被冠以不同的头衔。有 开发者推广大使 Developer Advocate 开发者布道师 Developer Evangelist 开发者关系 Developer Relations ;对于新事物来说,基本定义非常重要。因此,我认为一个好的起点是来定义这些东西是什么,尤其是定义你可以在这个领域做什么。所以,你能告诉我你的头衔以及这个头衔实质上的含义吗? Ricky,让我们从你开始吧。

00:02:22 - Ricky Robinett

好的,听起来很棒。我的头衔是 开发者网络总监 Director of the Developer Network 。我有幸供职于一个开发者关系专家团队。我们有一个布道师团队、一个教育团队和一个社区团队。因此,这绝对是一个大杂烩,有你听说过的各种不同的头衔,我们将其汇集在这个团队之中。

00:02:43 - Saron Yitbarek

厉害啊。Sandra,你呢?

00:02:45 - Sandra Persing

我在 Mozilla 担任活动和赞助的 全球策略师 Global Strategist ,并与 Mozilla 新兴技术小组的开发者拓展团队合作。我通常会将我的日常活动解释为大量的研究、交流和探索,而这都将最终影响我们评估与决策应当如何投资我们的资源:我们的时间、金钱、纪念品、演说者等等,以回馈开发者社区,同时也从开发者社区得到反馈。这份工作既有布道的一面,也有倡导的一面。

00:03:24 - Saron Yitbarek

很棒。 Robyn,该你了。

00:03:26 - Robyn Bergeron

你好。好吧,我的正式头衔是 社区架构师 Community Architect 。人们就我这个头衔有过很多问题。我曾被称为 社区经理 Community Manager ,也曾被称为 开发者推广大使 Developer Advocate ,甚至还在过去的一份工作中做过 运维推广大使 Operations Advocate 。但是我想我所做的是……嗯,你知道,像是“社区经理”之类头衔所暗示的“你在管理着社区中发自内心为项目做出贡献的人”的这种想法,其实相当愚蠢,因此,我喜欢把我所做的事情看作是构建一个框架,人们可以真正顺利地参与其中,确保过程中没有障碍,并确保他们可以完成所有他们想要做的事情。

00:04:02 - Saron Yitbarek

Ricky,由于你基本上是负责整个开发者网络的总监,你不仅仅是置身于推广大使团队、布道团队,也是社区团队之中,这有点儿像是你在运行着整个项目。你是怎样理解的这个的,是向开发者推广还是推广开发者?

00:04:20 - Ricky Robinett

是的,这是个很棒的问题。 Phil Nash 是我们团队中的一名布道师,他对此有一个很好的认识,而我要将它剽窃过来。我们可以从很多不同的角度来解释这份工作,但说到底,我们的工作其实大体上就是帮助他人。

00:04:33 - Saron Yitbarek

我喜欢这一点。是的。

00:04:35 - Ricky Robinett

我们帮助开发人员,有时候这些帮助看起来就像是在 Stack Overflow 上回答问题,有时看起来像是构建一款新工具,有时看起来像组织一个活动,有时看起来又像是发起一次产品的内部改动。因此,我认为这就是我所听说过的最好的认识 —— 我们的责任是帮助。

00:04:57 - Saron Yitbarek

的确。Sandra,你的职位让我感兴趣的一点是,你不光是策略师,还是全球策略师。让世界各地的开发人员组织起来,并且帮助他们,这是你在 Mozilla 的工作的一部分。在全球范围内的推广倡导会是什么样的呢?在不同的国家、不同的大洲之间,这份工作的含义会有所不同吗?

00:05:20 - Sandra Persing

对,确实存在一些不同。我们今年刚刚在新加坡举办了第三届 DevRel 年度峰会。在过去的两年间,我们在西雅图主办了这项活动,而到了新加坡,我们看到了不同的视角。当我们走出湾区时,就连某些最基本的组织方式都需要做出改变。比如,如何确保一切都能在线下运转,因为连接性是一个大问题;再比如,我们该怎样使一名工作于印尼的开发人员能在峰会过程中与社区充分互动,无论他是在线上参加聚会,还是来到现场。

00:05:59 - Sandra Persing

我们总会发现,所谓的“基础”,一些对我们来说如此寻常的事,比如在湾区举办一次简单的聚会——这再常见不过了,对吧?你高呼一声“我要参会”,就会发现到处都有聚会可以参加。然而对于,比如,越南的开发者来说,此事可以是具有特殊意义,且对他们而言相当重要的。这种聚会很宝贵,丰富了他们的开发者生活。

00:06:27 - Saron Yitbarek

我注意到的一件事是,大家都以某种方式提到了社区。而我自己也运营着一个社区,Code Newbie,而且我经常被一些公司聘用为他们的布道师或社区经理。有一件事我一直都有点儿担心,也许有点畏惧;我在想,在过去的三四年里,我一直在尽我所能,尽心尽力地负责着这个社区。

00:06:55

但如果我为一家公司工作,我就必须要牺牲这些吗?我是不是必须要将公司置于社区的需求之上?我该如何平衡这种关系呢?

00:07:06

所以我在想,Robyn,或许我们可以问问你这个 社区架构师 Community Architect ,你是如何区分这两者的呢?或者说,你是如何平衡这两者的?

00:07:16 - Robyn Bergeron

好吧,这当然是一个有趣的平衡。我的意思是,我以前的一个工作实际上是担任 Fedora 项目负责人。而你知道,Fedora 是 Red Enterprise Linux 的上游,在这里,你角色的一部分确实是某种找寻平衡的行为,对吧?两者之间的平衡是让社区里的人们开心,让公司对社区所做的事情高兴,同时要确保每个人都是快乐大家庭的一员。

00:07:41

而且,你知道,我想当你在这个职位上做得最好的时候,你肯定会时不时地激怒公司决策层的某些人。但是你知道的,最终还是要用结果来证明,对吧?

00:07:59

人们总是问我,你是如何平衡 Ansible 和红帽之间的关系的,你知道,当 Ansible 被红帽收购时,就像是 —— 哦我的天哪,红帽会接管它,然后对它做些糟糕的事情,并摆脱 Ubuntu 的支持吗?

00:08:12

而这就像是,拥有整个项目的全部目的就是为了破坏它,就像是为了不要吸引 4000 名贡献者而故意变得糟糕一样。

00:08:22

确保你的管理层信任你,并始终与人们保持清晰的沟通以了解实际发生的事情,并确保沟通通道的两侧都不会出现意外,这是成功与否的部分原因,也许并不总是会成功,但肯定会让人感到惊讶。

00:08:41 - Saron Yitbarek

嗯嗯。确实。Ricky,你呢?当你在做这么多不同事情的时候,你是如何看待这种关系中的平衡的?

00:08:49 - Ricky Robinett

我认为你必须相信公司和技术。你必须相信,你所带给开发人员的东西将会对他们的生活、职业生涯以及公司产生影响。

00:09:03

另一方面,你必须让高管们相信这种方法。因此,我们非常幸运的一点是我们的 CEO 是一名开发人员,而且在很多方面,他是我们和开发者社区打交道的原动力。我们的布道师们的使命是激励并装备开发人员。因此,有时候我们会说这能激励并装备他们吗?因为如果不能的话,我们就不应该这么做,因为这超出了我们的职权限范围。

00:09:36 - Saron Yitbarek

嗯嗯。Sandra,我觉得你有点儿优势,因为 Mozilla 是一个非营利性组织,对吧?所以我觉得或许 ——

00:09:44 - Sandra Persing

我刚想说。

00:09:46 - Saron Yitbarek

跟我讲讲这个吧。

00:09:47 - Sandra Persing

Mozilla 的历史就是我们是一家叛逆的公司。我们一直在反抗企业家,对吗?出走 Netscape ,并与我们的创始人之一 Mitchell Baker 一起走过的整段历史,确保了 Web ——

00:10:01

—— 乃至互联网是面向所有人的开放而自由的资源。我的意思是,我们仍然,我们每个人,每一个 Mozilla 人,都信奉这一口号,我们对此深信不疑。因此,这绝对是一家令人惊叹的、100% 拥抱了社区的公司。

00:10:22 - Saron Yitbarek

确实。所以,Ricky,我还清楚地记得那件红色的运动夹克,我还记得你亲自出马做的那些很棒的演示,感觉那种联系并帮助开发人员的方式非常新颖。这个想法是怎么在 Twilio 上产生的?

00:10:41 - Ricky Robinett

嗯,你这么说真是太好了。我们确实相信我们是站在巨人的肩膀之上。你会想到 Apple 公司的 Guy Kawasaki,有人在我们之前就采用了这种营销方式。我认为我们很幸运能在正确的时间把它带给开发人员。

00:11:03

而且有这么多的人进来,带着我们如何能够做到这一点以及如何能够不断提高方法水平的想法。但是我实际上不知道是谁发明了红色运动夹克,因此现在我需要去探寻历史 ——

00:11:19 - Saron Yitbarek

你一定得找到答案。

00:11:19 - Ricky Robinett

—— 有关这是何时开始的历史。

00:11:20 - Saron Yitbarek

这是件很棒的夹克。

00:11:21 - Ricky Robinett

知道了,我今天下午就去找。

00:11:25 - Saron Yitbarek

而我想知道的是,布道和推广的想法在 Twilio 是如何随着时间而发生变化的。你知道,曾经你们只是一家小小的初创公司,一家叛逆的初创公司,然后现如今成了一家大公司。随着公司本身的变化,布道的形式又是如何变化的呢?

00:11:46 - Ricky Robinett

是的,开始时,我觉得我本可以一年 365 天都在 黑客马拉松 hackathon 上渡过,而在纽约,每个周末你都要从五到六个黑客马拉松之中抉择一个。我们在布道方面所做的许多事情都是黑客马拉松场景,而现在,场景不同了。确实,最大的变化在于公司外部而不是内部。

00:12:11

因此,我谈到了布道师的激励和装备。所以令人高兴的是,这些年来这个任务并没有发生任何变化,他们激励和装备的方式一直在变化,但任务本身并没有什么改变。

00:12:26 - Saron Yitbarek

那么 Robyn,随着 DevOps 和 DevSecOps 的兴起,推广大使在你和社区架构师看来如何呢?会有运维推广大使吗?

00:12:39 - Robyn Bergeron

嗯,实际上那是 …… 我的意思是说,孩子们,那是我辍学后的第一份工作。我不建议这样做,不要在家做这个事情。

00:12:47 - Saron Yitbarek

留在学校里继续上学。

00:12:48 - Robyn Bergeron

听着。你看,小姑娘,我的第一份工作实际上是在 Motorola 担任 系统管理员 SysAdmin 多年,而当我从担任 Fedora 负责人跳槽时,我在 Elastic Search 工作了一段时间,你知道,那个头衔是开发者推广大使,因此我花了几个学期在大学里攻读 C。但是我的心一直都在运维这边。我开始对自己真的是一名开发者推广大使感到疑惑?我觉得我只是在推广运维人员而已。我开始自称是一名运维推广大使,每个人都为之注目。

00:13:22

每个人都说,嗯,这真的是一个很酷的头衔。我的意思是,你知道,我基本上只是在公司内部倡导其他人在做什么。

00:13:33 - Saron Yitbarek

所以,Sandra,我们谈到了推广大使和布道师在世界不同地区看起来如何不同,但是我想知道,随着我们变得越来越全球化,联系越来越紧密,更大范围和形式的布道对你来说是不是也在随着时间流逝而变化?

00:13:52 - Sandra Persing

你知道什么是开发者关系吗?我们是在推销我们的产品吗?你知道,而我注意到的是,即使是大公司也正在远离这种策略。要明白的是,做一个真实的人,真正留心倾听并回应开发人员的需求是最为重要的,而不是去推销产品。

00:14:17

我总是回过头来和我在 Mozilla 的团队分享一个理念,开发者们实际上是我们所合作过的最聪明、最具有创造力的客户群体之一。他们可以大老远就闻到商业销售的气味。因此,我们必须对于如何共享信息保持精明,就像它必须是一群有着才华和智慧的人聚集在一起,成为我们与开发者社区进行沟通的创新方式。

00:14:48 - Saron Yitbarek

嗯,真的,我很喜欢这样的想法,需要将不同的技能,我想,还有不同的背景,集合在一起,才能很好地服务于开发者,也能帮助开发者自助。

00:15:01

当我想到开发者推广大使的兴起时,在我看来,它与开源的兴起息息相关。这感觉几乎就像是开源贡献者越多,开源就变得越重要,重视它的大公司也越多,他们几乎必须与这些开源贡献者、这些开发人员建立起更好的关系,并且我感觉这二者真的是紧密相关的。

00:15:27

因此我很好奇你的想法。那么 Robyn,让我们从你开始吧。是这样的吗?推广大使的这个想法与开源的兴起有所联系吗?

00:15:37 - Robyn Bergeron

如果你是一家销售软件或是销售许可证和长期支持的公司,你知道,无论你的开源公司的业务模型是什么,如果你没有这种反馈回路,或者你没有真正关注人们在说什么,那你最终会犯下一个众所周知的错误。我认为,真正能在全世界范围内每天都做到这一点,就是成功和失败之间的区别,没有人愿意花时间去做错误的事情。那是个坏主意。

00:16:10 - Saron Yitbarek

是的,这通常是个坏主意。很好。因此,我想知道你们每个人各自都在关注什么,都真正在思考什么。因此,Ricky,让我们从你开始吧。在你的 Twilio 角色中,你试图为开发者文化带来什么样的改进呢?

00:16:27 - Ricky Robinett

如果我要说的我与开发者交谈时听到过最多的一个短语,那就是“我不是开发者,但是 …… ”,而这可能是一直萦绕在我脑海中的最大的事情之一 —— 开发者定义的扩大化。

00:16:45:

对我们很多人来说,“冒牌综合症”是一个非常真实的现象。令人惊讶的是,即使是你所认识的一些最好的开发者也在为此努力。而对我来说,我们所有人能在我们的文化中做的最重要的事情之一,就是让人们说,“你知道吗?我是一名开发者。我用代码解决问题。”

00:17:08

因此,我最喜欢的故事之一是,我们社区有一个名为 Doug McKenziethat 的成员,他是个魔术师。他自学了 PHP,以便在魔术中使用技术。

00:17:23 - Saron Yitbarek

噢,很棒。

00:17:23 - Ricky Robinett

Doug 之所以如此之酷,是因为他超级谦虚,就像是:“哦,我不是一名开发者。”而突然之间你发现,他正在编写比许多人所见过的更为复杂的代码,可以完成令人震惊的事情。因此,我感觉世界上有许多 Doug McKenzies 这样的人,他们都在用代码做着伟大的事情,我们有机会让他们成为社区的一份子,并且在这项工作中拥有自己的身份。

00:17:51 - Saron Yitbarek

我喜欢这个故事,因为它让我想起了我曾经为 Code Newbie 播客采访过的一个人,她是一名作家而且有很多写作任务,必须学习 Git 才能撰写有关 Git 的文章,她写了很多这方面的文章,又逐渐转向了其他的编程主题,最终,你知道,几年过去之后,她实际上已经成为了一名开发者却不自知。

00:18:13

在我采访她的时候,我说:“嘿,你知道自己是一名开发者吗?”她说:“不,我是个作家。”而我说:“你可以二者兼备。它们并不互相排斥。”但是,是的,这种说法换个角度说,“嘿,我实际上是在编程和创造,因此现在我可以自称为一名码农了”,这种认识对人们来说很难,要做到这样需要一段时间。

00:18:32 - Ricky Robinett

是的,当然是这样。

00:18:33 - Saron Yitbarek

是的。因此,Robyn,对你来说,最近几年来你一直在努力推动的最积极的变化是什么?

00:18:41 - Robyn Bergeron

只是确保在我们的成长过程中,我们不会失去对大局观的把握。我们的主要目标是使人们易于使用、易于贡献、易于实际完成生活中的事情,确保我们不会偏离这个目标,或者在实际项目的某些结构层面获得更多的工程帮助,并确保我们保持所有这些东西都井井有条。我们在这方面做得很好,我不知道是不是,但我认为这很重要。我不知道自己会不会因此而获得诺贝尔和平奖,但我知道这对许多贡献者都非常重要。

00:19:19 - Saron Yitbarek

这对我来说很有用。Sandra,你呢?作为全球策略师,你近些年来所推动的最积极的变化是什么?

00:19:26 - Sandra Persing

在我脑海中真正突出的两件事是扩展开发者角色这个定义,这一点非常重要。我们想要发展我们的社区,对吗?那么为什么要限制开发者的定义和描述呢?

00:19:43

当我们在 Sundance 与 Reggie Watts 和 Chris Milk 等著名人物进行座谈时,我们给电影制作人、制片人、决策者一个机会,让他们说:“哦,我们也能做到。我们不需要受限于作为创意电影制作人能做些什么。”

00:20:00

我们可以采纳技术,也可以成为开发者,而这相当令人耳目一新。我们在 Mozilla 经历的另一个时刻是让一位芝加哥的灯光艺术家 Ian Brill 与我们合作进行一个项目,我们把这个项目标记为 Arch,我们为今年两个重要的 JavaScript 开发者活动带来了这种巨型的塑料灯,LED 灯,带着七个可编程的树莓派结构。这是为了邀请更多的程序员(无论他们是否自称为开发者)来尝试 Mozilla 今年大力倡导的两种语言: WebAssembly 和 Rust。

00:20:49

因此,我们创建了两个简单的模板,说,“尝试一下吧”,但这不是我们所想要推动的编程。这不是编程,而是“是的,有几行代码。它是编程语言,但你要做的是创建几行代码,现在可以将它们转化为艺术”,而这让许许多多的新人进入到了我们的群体之中,也就是把他们带到我们的桌子旁边,然后他们会编写他们的代码行,在 Arch 之下走过,去查看目前正在结构中循环着的灯光表现。这真是太神奇了。

00:21:22 - Saron Yitbarek

哇。这听上去很美,确实美。因此,我想知道的是,当我们谈论到为开发者做推广大使时,我们谈论了很多有关社区的话题,也谈论了那个最终的想法,无论我们的职业头衔是什么,我们真的只是想要帮助人们,开发者需要什么方面的帮助? Ricky,让我们从你开始吧。开发者们说他们需要从你这里得到什么呢?

00:21:44 - Ricky Robinett

哇。是的,这是个好问题。我认为,我们所发现的其中一件事是,科技变化如此之快,我们被问到的很多问题都是,“我从哪里开始?我首先要做什么?我怎么知道我走的路是正确的呢?”对我们来说,这可能是我们投入最多的领域之一,我们称之为帮助人们发现他们用代码改变世界的能力。

00:22:16 - Saron Yitbarek

噢,这很美妙。我赞成。

00:22:18 - Ricky Robinett

嗯,谢谢你。是的,这令人兴奋。因此我们构建了一款名为 TwilioQuest 的工具,以帮助人们发现这种力量,帮助他们知道从何处开始。但我只是感觉,你知道,人们一直在寻找自己的身份或获得允许使用该身份的方式,而对每个人而言这就已经是写代码,是用代码或软件解决问题。有许多人想这么做,然而却不知道从哪里开始。所以这是我们经常思考的一件事。

00:22:51 - Saron Yitbarek

是的。因此,Robyn,对于你们红帽来说,红帽的开发者所寻求的是什么呢?

00:23:00 - Robyn Bergeron

很多时候,是有人来找你,他们遇到了一些障碍,也许是“不知怎么的,我的公关人员被机器人遗漏了”,但是很多时候,也有人会说,“嘿,我有一个很酷的想法。或许它不太适合这里,但是我认为它可能会改善社区的运行方式,或者可能会是其它我们正在研究的东西的不错的辅助工具。我该怎么办呢?”这就像是,“好吧,我该如何帮你入门呢?”你知道吗?“我能怎么做呢?比如说,你只是需要有人同意吗?因为我在这儿整天都基本上是对任何事情点头,让人们知道,这行得通,你当然有权力这样做”,所以这是我所认为最好的事情是,你可以做。至少在我看来,就是确保人们在自己的前进道路上没有阻碍,或者如果阻碍他们前进的一件事是正等着某人说可以,我一直在重申,你不需要别人的许可,但是如果有人需要,那么看在上帝的份上,请给他们许可。

00:23:58 - Saron Yitbarek

所以,最后一个问题,我们需要总结一下,我将向你们逐一询问。你在 2019 年将要倡导的最重要的事情是什么呢?如果你有魔杖,那么你想要改变的下一件大事是什么呢? Sandra,让我们从你开始吧。

00:24:15 - Sandra Persing

嘿,我就知道你会这么做。好吧,我们将在 2019 年进行的最大挑战和最为激动人心的项目是真正兑现我们的承诺,使 Web 成为最棒、最大、最易于访问的平台之一。我们总是告诉开发者这是你应当为之构建并部署的地方,但是我们知道 Web 本身非常复杂,而且有着多个浏览器供应商,有时候这并不是一个正确的说法,这对我们而言是一个长期的挑战,尤其是在 Mozilla,在这里我们想要保持 Web 开放、自由,并且能被所有人访问。我们想要继续确保能够兑现对开发人员的承诺,确保网络确实是开放的、可访问的,对所有人都开放。

00:25:10 - Saron Yitbarek

嗯,爱了。Ricky,你呢?

00:25:13 - Ricky Robinett

只需要确保我们为开发人员提供服务,使得他们能够在全世界范围内进行线上或是线下的聚会。更容易专注于你所看到的内容,并且无需记得开发人员是在何处,即使你没有看到他们。因此,我会挥舞我的魔杖,并在全世界更多的地方,找出我们如何能够帮助那里的开发人员。

00:25:36 - Sandra Persing

我只想说,我喜欢 Jarod 有关 暗物质开发者 dark matter developer 的演讲。实在是太棒了。

00:25:42 - Ricky Robinett

当你第一次听到它的时候,感觉像是一个了不起的概念,就像是,“哇,真的是一回事儿。”

00:25:50 - Saron Yitbarek

那就给我们讲讲吧,什么是暗物质开发者呢?

00:25:52 - Sandra Persing

本质上,有一些开发者,他们不参与你的聚会,不参与 GitHub 和在线社区,不为 Stack Overflow 做贡献。这些开发者仍在努力工作并作出贡献,但我们不知道。我们知道他们就在那里,但我们看不到他们。我们无法认出他们,而这些人实际上是开发者社区中非常重要的一部分,我们往往会忽略他们,但不能这样。忽略那些不愿发表意见的社区将损害我们与开发者的关系,我们需要更加积极主动地寻找宇宙中那些暗物质开发者。

00:26:34 - Saron Yitbarek

哦,我喜欢。这很酷。是的,Jarod 实际上在 Twilio 工作,对吗?

00:26:38 - Sandra Persing

是的。是的,他负责运营亚太区的 DevRel。

00:26:42 - Robyn Bergeron

我从前在红帽的同事之一 Chris Grams,现在在一家名为 Tidelift 的公司里工作,他曾经有一个名为 暗物质很重要 Dark Matter Matters 的博客,因为它有点儿像是 ——

00:26:52 - Saron Yitbarek

嗯嗯。

00:26:54 - Robyn Bergeron

你知道,你所看不到的东西实际上仍然很重要,所以 ——

00:26:58 - Saron Yitbarek

确实是这样。 Robyn,你呢?你会用你的魔杖做什么呢?

00:27:03 - Robyn Bergeron

哦,用我的魔杖,有很多事情,但是根据这次谈话,我想我会更好地管理彼此之间的依赖关系,而且也许并不令人惊讶,尤其是当我们之中有许多人在 OpenStack、 OPNFV、 Ansible 以及所有这些建立在彼此之上的东西工作时。只是确保我们项目之间的关系比你筋疲力尽时所能看到的关系更加明显。因此,我非常期待来年的事情,因为我们在事物上越来越受关注。现在这非常令人兴奋。

00:27:39 - Saron Yitbarek

吸引力总是那么好。它是如此令人兴奋。好吧,我想感谢你们所有人,非常感谢你们今天加入我们并分享你们的思维、想法和故事。非常感谢大家。那么现在说再见?

00:27:51 - Robyn Bergeron

再见,各位。

00:27:54 - Sandra Persing

很好。非常感谢你, Saron。能上这期节目很荣幸。

00:27:58 - Ricky Robinett

它已经开始了,游戏工作室对于开源的态度已经开始转变。

00:27:59 - Saron Yitbarek

确实。今天的圆桌会议包括红帽的社区架构师 Robyn Bergeron、 Mozilla 的全球策略师 Sandra Persing 以及 Twilio 的开发者网络总监 Ricky Robinet。我认为自己很幸运,能有这样的平台让我分享对于我们社区将何去何从的愿景,无论是这档播客节目还是在其他地方,但我想要指出的是,你无需拥有自己的播客就能够成为推广大使。成为推广大使只是意味着睁大眼睛并代表他人大声疾呼。这确实可以是每个人的工作。因此,我希望 Robyn、 Sandra 和 Ricky 给了你一点儿有关倡导你觉得重要的事情的启发。

00:28:50 - Saron Yitbarek

同时,《代码英雄》第 3 季已经在制作中了。当新剧集在今年春天推出时,你可以成为最早了解新剧集的人之一。如果你尚未注册,请在 Apple Podcasts、 Google Podcasts 或任何你获得播客节目的地方进行订阅。只需点击一下,100% 免费。我是 Saron Yitbarek。非常感谢你的收听,在第 3 季到来之前,继续编程。

什么是 LCTT SIG 和 LCTT LCRH SIG

LCTT SIG 是 LCTT 特别兴趣小组 Special Interest Group ,LCTT SIG 是针对特定领域、特定内容的翻译小组,翻译组成员将遵循 LCTT 流程和规范,参与翻译,并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽(Red Hat)发起的 SIG,当前专注任务是《代码英雄》系列播客的脚本汉化,已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。

欢迎加入 LCRH SIG 一同参与贡献,并领取红帽(Red Hat)和我们联合颁发的专属贡献者证书。


via: https://www.redhat.com/en/command-line-heroes/season-2/developer-advocacy-roundtable

作者:Red Hat 选题:bestony 译者:JonnieWayy 校对:windgeek, Northurland, wxy

本文由 LCRH 原创编译,Linux中国 荣誉推出

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客第二季(8):开源好奇号音频脚本。

导语:那些最棒的、最聪明的人用袖珍计算器的计算能力把我们带到了月球。现在他们要带我们走得更远 —— 而且是用我们整季播客都在谈论的技术来实现。开源将带我们去火星。

第二季的结局是将我们带到美国宇航局(NASA)的 喷气推进实验室 Jet Propulsion Laboratory (JPL)。Tom Soderstrom 分享了 JPL 通过拥抱开源获得了多少好处。Hila Lifshitz-Assaf 解释说,NASA 正在用开源软件和众包解决一些最大的问题。Dan Wachspress 介绍了与 NASA 合作意味着专有商业需要做出一些牺牲 —— 但他们可以参与到世界上最具创新性的项目中。

远疆的探索者们选择在开放的环境中工作 —— 火星是他们的目的地。那么下一步呢?

00:00:12 - Saron Yitbarek

2012 年 8 月 6 日,一枚汽车大小的 漫游车 rover 好奇号 Curiosity ,从火星大气的顶层降落到了这颗星球的地表。降落花了 7 分钟,下降的过程仿佛永无止境。漫游车携带着贵重的货物:500,000 行代码,76 台尖端科学仪器,以及另一些工具,用以开展一些前所未有的实验。先是超音速降落伞展开,接着是隔热护盾分离,然后,反冲发动机启动,甚至在半空中部署天车——最终,好奇号平稳着陆。

00:00:59 - NASA 工程师

现在,是时候看看“好奇号”会将我们带向何方了。

00:01:13 - Saron Yitbarek

听见那声音了吗?那就是火星车成功着陆后,满屋子工程师的欢呼声。几天后,他们将收到来自贝拉克·奥巴马总统的贺电。但现在是只属于他们的时刻。这群人一同完成的这件事,是他们中的任何一人永远都无法独自做到的。

00:01:39

我是 Saron Yitbarek,这里是代码英雄,来自红帽的一档播客节目。本季以来,我们见证了开源技术对我们工作方式的重塑,及其对人们能力的拓展。作为线索,社区这个要素贯穿了整季节目。这些故事告诉我们该怎么团队协作,该怎么向行家学习,以及,如何在这同时学会听取新人的意见 —— 一言以蔽之,如何更好地与人交流。

00:02:11

在第二季的终章,我们在记住所有这些道理的同时,我们将探索开源是如何为那些伟大的项目赋能的。你也许在去年的十一月观看了 NASA 的 洞察号 insight 登陆器抵达火星地表。彼时四周皆是欢呼与拥抱。事实证明,这项向星星 —— 这颗红色的星球发射漫游车的任务,只有把宝押在众人合作上才能实现。

00:02:45

我刚才说过了吗?那台火星车有它自己的推特账号。它还有 4 百万粉丝呢。这还不算什么。最近它给地球人发送了一条推文,是一封邀请函,邀请人们使用 NASA 喷气动力实验室开源的说明和代码,建造一辆属于自己的漫游车。我们跟踪采访了一个民间的组织,叫 SGVHAK 小组,他们是第一批自己建造漫游车的人。

00:03:13 - SGVHAK 小组

现在我要试试从坎上开过去。

00:03:15

看看她(LCTT 译注:指漫游车)这样能不能行。

00:03:15

上来了——不,不行。

00:03:15

不行。

00:03:20

她以前很容易就能开过去的。不过我们现在对轮子做了一些改动,她就有点不乐意了。

00:03:27 - Saron Yitbarek

这个小组的成员包括 Roger Cheng、Dave Flynn、Emily Velasco 以及 Lan Dang。

00:03:34 - SGVHAK 小组

Dave 包揽了所有机械设计,我想我应该算是负责组装的。Roger 是我们的程序员,Dave 是机械设计师,Lan 是我们无畏的领导。

00:03:45

你也是一个,你是队里的机械制造专家。

00:03:49

大概吧,应该算是。

00:03:51

跟他们讲讲伺服电机架子的事。

00:03:53

噢,好的。

00:03:54

是你把电机凑起来的,现在可以让它运行,演示一下——

00:03:58

我们现在就拿——

00:04:00 - Saron Yitbarek

打造这样一部漫游车可不是玩乐高玩具。它需要真正的火箭科学家花 200 小时来完成。所以,让我们给这些家伙几分钟的准备时间,稍后再回来。

00:04:19

与此同时,我想了解更多关于为什么一开始 NASA 要将漫游车的技术和代码向全世界开源。我刚刚找到了回答这个问题的最佳人选。

00:04:29 - Tom Soderstrom

我叫 Tom Soderstorm,我是 NASA 喷气推进实验室 Jet Propulsion Laboratory (JPL)的 IT 部门的 首席技术与创新官 technology and innovation officer

00:04:37 - Saron Yitbarek

JPL 总共有大约 6000 人。它是 NASA 的研究中心之一,由联邦政府提供资金,专注于研究如何用无人机械进行太空探索。

00:04:48 - Tom Soderstrom

我们寻找地外生命,我们也探究宇宙的起源和未来。除此之外,考虑到可能的星际移民需求,我们也在寻找地球 2.0。也就是具有类似地球的环境的、另一个适宜人类居住的行星。

00:05:33 - Saron Yitbarek

是的,他们肩负着伟大的使命。不过,事情是这样的。Tom 的团队并不是一群秘密进行研究、与外界全然不接触的工程师。他们与下一代的科学家们有着深厚的联系。他们常常采用全新的方式激发大众的创造性思维。事实上,这是他们工作中至关重要的一部分。漫游车开源计划释放出了部分设计,这样一来,NASA 之外的民间组织就能组建他们自己的漫游车了。这是 NASA 促进创新的宏观战略的一部分。很自然地,Tom 从开源漫游车开始,向我讲述了为何开源 NASA 的成果是如此重要。

00:05:46

有很多人可能像我一样;发现这个网站时,我想,天啊,也许我可以自己打造一个漫游车呢。这真是太激动人心了。这太令人神往了。

00:05:55 - Tom Soderstrom

我们打造这个开源网站,是为了能让公众和学校能够从中学习。而且我们发现,围绕漫游车开源形成的社区是非常优秀的实验平台。所以当我们想测试新鲜事物的时候,这里就是最佳的演练场,非常简单,非常快速,我们能很快就把想要的技术应用到真正的漫游车上。所以我们希望人们能够把像太阳能面板、加速度传感器、科学实验仪器,以及先进的人工智能程序等结合起来,我们只是希望这些经验能够扩散,在这些方面感兴趣的人最终也能对太空感兴趣。因为太空真的是太酷了。

00:06:32 - Saron Yitbarek

所以除了刚才提到的这些之外,人们在这个项目中还做过什么让你印象深刻的,或者是让你觉得激动的事儿?

00:06:42 - Tom Soderstrom

降价是一项非常令人印象深刻的工作,而现在有一堆人在试着用人工智能干这个事儿。这是目前我见到的最有趣的事情之一,我很想看到有人能为其添加一个机械臂。

00:06:55 - Saron Yitbarek

真是太酷了。

00:06:55 - Tom Soderstrom

也是我们正在思考的问题。

00:06:58 - Saron Yitbarek

这个项目是全方位开放的吗?我是指,对于硬件部分,你们给出了一份推荐的零部件清单,但参与者如果愿意,也能自行替换,换成更便宜的,或者换成更贵的;而软件部分就完全是开源的了。这中间有任何非开源的部分吗?

00:07:17 - Tom Soderstrom

没有,完全是开源的。

00:07:19 - Saron Yitbarek

如果你告诉我高中生都能通过这个项目自行制作漫游车,我会觉得非常震惊。那听起来太难了;你知道吗,听起来太高大上了,高到只有 NASA 才会去做的那种。对吧?真正地组装火星车会是件容易的事吗?

00:07:36 - Tom Soderstrom

我们并不想将这做成一个玩具。这个项目是货真价实的,能给参与者带来实际的经验。加利福尼亚州的几所学校已经将其纳入他们的科学、工程与编程课程中,比如所谓的 机械电子学 Mechatronics ,就是上述几方面的结合体。这让我们非常高兴,因为这样,在不久的将来就能有一批训练有素的专业人才来到 NASA。

00:08:04 - Saron Yitbarek

但这似乎不仅有利于未来的 NASA 工程师、未来的科学家,也有利于你们(LCTT 译注:指目前在 NASA 工作的科学家、工程师)。跟我多说说这方面吧。

00:08:14 - Tom Soderstrom

嗯……突然间,我们就有了一个非常简单易用的实验平台。我能想象到开源的漫游车在 JPL 附近行驶,还向人问好。在于艰苦环境中验证某些技术之前,我们能在后院里对它们快速地进行试验。它成为了我们可以实验的移动平台。话又说回来,我认为人工智能会是这些技术中非常有趣的一样,因为它发展得太快了,而且,向它加入新的机器人部件也很容易。

00:08:50 - Saron Yitbarek

所以,理论上来说,你们也可以创建一个你们自己的移动试验场,可以进行试验,也不用将其开源,对吧?它本来可以成为一个内部项目。但它现在是开源的。这能让你们多学到什么呢?

00:09:08 - Tom Soderstrom

嗯,这是一个好问题。为什么要开源?对我们来说,开源才是更困难的选择,不过那也是挑战所在。我们希望,通过将其开源,学校以及其他民间组织能够用上代码,并且将漫游车造出来。编写一本不是机器人学专家的人也能看懂的手册带来了大量额外的工作。但起码,当我们最终将一些东西真正开源的时候,它变得更整洁、更紧凑、文档更完善了;因为我们知道,其他人会来使用这些东西,所以也必须要具备一定的可扩展性。因此,项目的质量提高了。我曾经和 Netflix 的人谈过,他们也有同样的感觉,被开源的代码普遍更加整洁、质量更好。

00:09:54 - Saron Yitbarek

你是怎样看待开源漫游车的?五年,十年,甚至将来的二十多年后,你觉得它们能做什么,而人们能够创造出什么?你认为这些能为身处地球的我们带来什么潜在利好?

00:10:11 - Tom Soderstrom

能带来多方面的利好。现在的漫游车被设计成使用轮子行驶。我可以说,它其实也可以被设计成采用步行,也可以对它进行扩展,加上跳跃的功能。我们已经送了一架直升飞机上火星,它现在还在飞着。所以说,这些漫游车并不仅仅局限于现在我们所说的漫游车。有了全世界各地人们的实验,我们能走得更快,更远,不断探寻可能性的上限,并提出一些坦率地说我们可能没有想到的想法。未来到底会是什么样的?我迫切地想了解,不过我不知道。

00:10:49 - Saron Yitbarek

通过创造这个平台,你们已经为许多人提供了打造自己的“玩具”的机会。接下来就让我们拭目以待吧。

00:10:57 - Tom Soderstrom

是的,这是很重要的一点。因为我发现,我能想到的主意都已经有人做过了。但我们需要找到这些人。无论我们最开始做的是什么,一旦到最终用户手上,他们就能以我们无法想象的方式将其改进十倍。所以,向大众开放一些这样的“玩具”,任他们自由发挥,他们会因此而得到锻炼,这对将来使用更先进技术的任务也大有益处。

00:11:23 - Saron Yitbarek

这真是太棒了。

00:11:29

如果你想了解开源漫游车项目,你可以访问 opensourcerover.jpl.nasa.gov 。你能在那儿玩个尽兴。我们稍后再与 Tom Soderstrom 进行更多讨论。但首先,让我们来更深入地挖掘 NASA 与开源之间的关系。

00:11:51 - Hila Lifshitz-Assaf

大家好,我是 Hila Lifshitz-Assaf,纽约大学商学院的教授。

00:11:57 - Saron Yitbarek

Hila 正在研究 NASA 是如何打破知识壁垒的。

00:12:02 - Hila Lifshitz-Assaf

如果你能够回到过去,回到 15 世纪,看看那些孤独的发明家,像莱昂纳多·达芬奇和其他人,他们某种程度上只在自己所在的本地社区活动。之后,有了工业革命,有了实验室。此后的两百多年里,人们都在实验室里工作。最大的变化发生在 21 世纪,数字革命之后我们有了开源的概念,而它打破了之前这类组织结构的边界。

00:12:34 - Saron Yitbarek

在 NASA 工作的日子里,Hila 见证了这种巨大变革的典型例子。

00:12:39 - Hila Lifshitz-Assaf

NASA 最吸引我的一点在于,他们就某种意义上来说是最勇敢的,因为他们勇于接受战略性的 研究与开发 research and development (R&D)事业中的挑战,他们的科学家、工程师,最优秀的一批人才为此而努力工作,并使这些挑战向大众开放。而且,我必须说,直到现在,很多其他的组织在做开源科学或是众包的时候,他们不会把最核心的、战略性的难题交给社区,而是只开放一些次要的任务。无论成功还是失败,这都不会让他们的组织蒙受多大损失。而 NASA 做的事情,一旦成功了,就真的改变了一切。

00:13:14 - Saron Yitbarek

自 2009 年起,NASA 就开始使用像 Innocentive 和 Topcoder 这样的开源创新平台。而且,他们不是闹着玩的。就像 Hila 所提到的,他们甚至把他们核心的 R&D 难题都放了上去。

00:13:29 - Hila Lifshitz-Assaf

这些问题上传之后,甚至没过一年,我们就已经陆续开始看到来自众包平台的解决方案。

00:13:34 - Saron Yitbarek

这确实很快。我将在此举出一项研究成果,它是 NASA 开源科研的诸多喜人硕果之一。Hila 向我们将讲述,他们是如何将太阳耀斑的预测技术提升一个台阶的。

00:13:46 - Hila Lifshitz-Assaf

嗯……太阳耀斑的预测是学术界研究了数十年的一项非常困难的太阳物理学问题。总的来说,他们已经完成初步的构想,以便更多的人可以参与这方面的研究。而且他们非常在意这一点。这让我觉得很惊奇,因为他们确确实实地希望能从太阳物理学圈子外的人那里找到解决方案。Bruce Kragan,一名来自新罕布什尔州乡村的、半退休的无线电工程师,只花了三个月,就给我们带来了太阳耀斑的预测方法。当 NASA 验证模型时,他们发现,这种预测方法的准确率有 80%。用传统方式需要花费数百万美元及数年时间才能获取的成果,在三个月内就被收获了,花费大概在三万和四五万美元之间。

00:14:36 - Saron Yitbarek

你也许已经猜到了,这样的变化需要 NASA 内部的文化作出改变。

00:14:44 - Hila Lifshitz-Assaf

他们中的有些人选择邀请外来的解决方案提供者进入项目组,还有一些选择提供实习或合作机会;他们采用了很多有意思的方法来交流知识,使其不至于淤塞。

00:14:59 - Saron Yitbarek

仔细想想,这其实是很美好的。就如我们所知,很多组织仍然抵制开源活动,不愿放弃专有软件。但在这里,你可以找到这个星球上最具创新性,愿景宏大的一群科学家;而他们说,嗨,我们一起来。这样的态度有绝大的影响力。

00:15:22 - Hila Lifshitz-Assaf

我们已经看到了开源给软件行业带来的变革。我们目前尚未在科学与技术方面见到太多改变,不过,我认为,现在就是最好的时机。计算物理学、计算生物学越是崛起,这就越有可能实现。我认为,像这样,就有更多人能够参与到科研中,协助处理不同的任务。以这种方式,科学技术的发展速度或许甚至能够超过应用开发。

00:15:53 - Saron Yitbarek

Hila Lifshitz-Assaf 是一位来自纽约大学斯特恩商学院的教授。

00:16:00

NASA 在开放他们的研究课题的道路上受益良多,但他们也通过 中小企业创新资助计划 Small Business Innovation Grant Program ——这个项目鼓励私营经济中的创新——打造了另一种社区。所有 大胆的计划 blue sky projects 都有风险,可能付出代价,但有时回报也尤其丰厚。

00:16:22 - Dan Wachspress

大家好,我叫 Dan Wachspress,我是一名航空工程师,在 Continuum Dynamics 集团工作。

00:16:28 - Saron Yitbarek

Dan 的公司专注于研究与开发旋翼飞行器,也就是直升机、旋翼飞机这类的飞行器。这可以说从是字面上看就很“ 蓝天 blue sky ”(LCTT 译注:此处呼应之前提到的 blue sky projects)了。他们一直与 NASA 合作,致力于解决垂直升降的问题,让飞行器能变得像是 Jetson 的“空中出租车”(LCTT 译注:典出《The Jetsons》,一部始播于 1962 年的系列动画,这里的 Jetson 指动画主角 George Jetson)那样。

00:16:50 - Dan Wachspress

总体的构思是,只要用电动机代替车辆上的燃气涡轮发动机,你就可以安装更多推进器。它们会比现有的更安静、更安全,直升机所有恼人的问题统统消失,而我们可能会得到这样的未来:你打个的就能从达拉斯去到沃斯堡(LCTT 译注:均为美国得克萨斯州的城市),而那是一辆准乘 5 人、无人驾驶的电动飞的,而非一辆汽车,在汽车里面你还得跟堵车较劲。这就是我们的愿景。

00:17:22 - Saron Yitbarek

有很多公司,比如 Uber,对这种空中出租车的设想非常感兴趣。而 NASA 在这之中扮演的角色是伟大的:它打破了不同公司本要各自为营死磕研究的壁垒。

00:17:38 - Dan Wachspress

那些公司必定不想走漏风声,他们想保持商业机密,不愿共享成果。NASA 的目标就是把尽可能多的研究成果送到他们手里,让他们尽可能地获得能力。而且我敢说你如果去问他们任何一家公司,他们肯定会说,没有 NASA 长久以来的技术支持,他们没法做到这么快地开发。

00:18:13 - Saron Yitbarek

我想这并不影响 NASA 拥有一些非常棒的风洞。从火星漫游车到飞行汽车,你有感觉了吗?我们谈论的是创新,天穹尚且不是我们的极限。而且这一切都归功于我们全地球级别的合作,而正是开源观念让这一切成为可能。

00:18:41 - Saron Yitbarek

我们再回来和 NASA 的 Tom Soderstrom 聊聊。Tom 认为,我们两季以来探讨的开源的“魔力”已经形成了一股巨大的推动力。他称之为第四次工业革命。

00:18:59 - Tom Soderstrom

创新总是与科技的潮流挂钩。当今,有好几波科技浪潮同时袭来,它们的合流将引起巨大的海啸。它们逼近得越来越快,所有事物都会为之改变,因此,我称其为第四次工业革命。

00:19:21 - Saron Yitbarek

我将简单几句带过那些浪潮,虽然就它们中的每一样都可以独立讲一期节目。Tom 所说的“即将到冲击我们生活的潮流”包括了大规模的网络安全问题、量子计算之类,也包括了各类“ 软件定义的 software-defined ”东西。但这些只是其中的一小部分。他还提到了 普适计算 ubiquitous computing 自然用户界面 natural interfaces 和物联网。

00:19:49 - Tom Soderstrom

这些技术都将是那场海啸的一部分,生活将因为无处不在的 内置智能 built-in intelligence 而大为改观。

00:19:54 - Saron Yitbarek

想象一下,如果这些技术合流,产生了 1+1 大于 2 的效应,“海啸”发生,情况会变成什么样?

00:20:04 - Tom Soderstrom

我不认为这种变化会是突然发生的;不会有像是一个人站起来感叹“你看这个”这样的情况。就如我刚才所说,内置智能会渗透进生活的各个方面。“智能”,对吧?比如智能电视,或者智能会议室。我们生活中的事物会变得越来越智能,越来越聪明。对于企业来说,它意味着,你可以对着一个房间提出问题,然后程序会为你在数千种不同的数据源、好几 PB 的数据里找出答案。而这背后,就是自然语言处理、深度学习、机器学习这样的技术;而我们不会突然说,“哇,我们已经发展到这种地步了”。不会的,这是一个循序渐进、潜移默化的过程。

00:20:49 - Saron Yitbarek

这第四次工业革命,又会如何影响你在 JPL 的工作呢?

00:20:57 - Tom Soderstrom

我认为首先是实验,下一场工业革命可以帮助我们更快地完成实验,并且利用更好的组件,包括软件和硬件,也许我们不需要把所有的东西都造出来,但是我们可以更智能地使用它。然后是开源。开源真是一项颠覆我们工作方式和工作内容的事业。

00:21:23 - Saron Yitbarek

此话怎讲?

00:21:24 - Tom Soderstrom

说到开源这东西,我的资历足够老,我当年也经历过开源战争。当时开源还只是个玩笑。那时的开源很糟糕,开源软件似乎比商业软件低一等似的。不过,那些都已经是过去了,至少在喷气动力实验室是这样的。现在,开源的方式更适合我们。开源的研究与开发更加经济划算,也可以更快地做实验验证。另外,因为开源软件的存在,现在我们再也不用全部从头造轮子了。我们可以自己开发;在此之后,如果我们选择将之开源,就能从社区获得帮助,对成果进行改进。开源的软件和科研也能为我们招贤纳士。这就很有趣了。

00:22:05 - Saron Yitbarek

确实很有意思。

00:22:07 - Tom Soderstrom

我认为现在的人们,特别是新一代,可以将他们的项目开源,以此获得更多的影响力,得到尽可能多的星标。你可以看见他们的简历上写着,我开发的软件得到了多少星标。

00:22:21 - Saron Yitbarek

对你来说,让你们的工作方式和内容发生变化的开源,并不是什么新鲜事物,对吧?这点让我很感兴趣。你说你经历过开源战争。你也见证了开源在这么多年来的发展。那么,当今的开源有哪些优势是十年、十五年、二十年前没有的呢?

00:22:47 - Tom Soderstrom

有两点。一个就是云计算。我们不用签署一份大合同,购买一堆软件然后使用许多年。我们可以在云端简单地做个实验。这点相当重要。还有另外一点,就是开源并不比闭源的安全性差。这早就不是 —— 请原谅我的用词 —— 一个 信仰 religious 的问题了。这更多地只是一个实用性和经济性的问题。

00:23:15 - Saron Yitbarek

开源显然在你的工作当中扮演了一个重要的角色;尤其是当你谈及喷气动力实验室的未来,以及你期望它以怎样的方式前行的时候,开源似乎仍将是故事的重要组成部分。说到开源社区式的合作开发,你认为这种方式在最理想的情况下能够导向怎么样的成果?而对于人类,它的意义又是什么?

00:23:42 - Tom Soderstrom

好问题。我认为你刚刚已经说出了正确答案——“人类”。它的理想结果是能让每个人都参与到这份工作中来,而它的意义也在于此。你知道,总有一天我们会把人送上火星。我们要探索更广袤的深空,去寻找地球 2.0。我们还要再开展一次载人登月。这些都需要来自世界各地的人们积极参与。

00:24:15 - Saron Yitbarek

我被这场变革深深的吸引了。Tom Soderstrom 是 NASA 喷气动力实验室的首席技术与创新官。

00:24:29

从地球 2.0 的话题,回到地球 1.0。我们应当铭记,“第四次工业革命”的起源,也是艰苦朴素的。开源项目固然可以变得宏大无比,但千里之行毕竟始于足下;一项伟大的事业,在其伊始,或许只是几名极客试图让漫游车正常工作。

00:24:47 - SGVHAK 小组

我们再看看这样它能不能跑起来。我们会——再加一样东西,方便它从坎上过去。过去了!耶!

00:24:59 - Saron Yitbarek

耶。

00:25:02 - SGVHAK 小组

啊呀,我下不来了,它被卡在花坛里了。

00:25:14

我们把它抬出来就行了。

00:25:16

这又不是在火星。你可以直接走过去,把它拿起来。

00:25:20 - Saron Yitbarek

我觉得他们有所进步。

00:25:25

让我们和这些代码英雄说再见吧,他们要继续学习、探索、投入他们的工作了。他们会知道,通过开源,我们总有一天可以到达天空之外的高度。

00:25:40

如果你想让你自己的开源游戏项目上一个台阶,不要忘了我们正在开发《代码英雄》游戏,开发已经持续了一整季的时间,现在你仍然可以贡献代码。

00:25:52 - Michael Clayton

嗨,我是 Michael。

00:25:52 - Jared Sprague

嗨,我是 Jared。我们是《代码英雄》游戏的开发人员。

00:25:58 - Saron Yitbarek

我们请来了红帽的 Jared Sprague 和 Michael Clayton,看看情况怎么样。

**00:26:03 - Michael Clayton\_

我有点惊讶于我们这么快就引来了这么多的感兴趣的人。反响非常好,提交的拉取请求蹭蹭上涨。

00:26:17 - Saron Yitbarek

你认为是什么让大家这么激动?

00:26:18 - Michael Clayton

我认为我们播客的许多听众都受到了鼓励,因此他们看到这个开源项目就迫不及待地想试试看。尤其是自从我们开始征求不限类型的贡献,让任何想要贡献的创意人员、任何类型的工程师都能够参与项目后,听众就找到事儿做了。

00:26:39 - Saron Yitbarek

那么接下来希望社区能给大家带来什么?这游戏还在开发中。你最想见到什么?

00:26:47 - Jared Sprague

我个人非常享受开发过程中的进入节奏的感觉,我们让大家贡献美术素材和音乐以及音频效果、故事线、代码,所有这些东西都可以并行不悖。一旦每个人都进入节奏,我们可以一起开发,共同看着游戏被开发出来,那真是太美妙了。

00:27:14 - Saron Yitbarek

顺带一提,我们的游戏的公测版将会在今年的五月七日到九日,在波士顿开办的红帽峰会发布。届时,数千名像你一样的代码英雄会前来进行为期三天的创新与教育之旅。访问 redhat.com/summit 以查看详情。

00:27:34

最后一件事,这或许是第二季的最终章,但这不是真正的告别。第三季已经在筹备中!与此同时,我们也会为大家带来一期彩蛋。我们开展了一次圆桌会议,与你们最喜爱的思想家们探讨开源的未来。请锁定一月份。别忘了,如果你不想错过最新一期节目,记得点关注哦。就点一下,点一下又不会怎么样,这样你才能在第一时间收到新内容的通知哦。

00:28:09

我是 Saron Yitbarek,感谢你聆听本季节目,生命不止,编码不休。

什么是 LCTT SIG 和 LCTT LCRH SIG

LCTT SIG 是 LCTT 特别兴趣小组 Special Interest Group ,LCTT SIG 是针对特定领域、特定内容的翻译小组,翻译组成员将遵循 LCTT 流程和规范,参与翻译,并获得相应的奖励。LCRH SIG 是 LCTT 联合红帽(Red Hat)发起的 SIG,当前专注任务是《代码英雄》系列播客的脚本汉化,已有数十位贡献者加入。敬请每周三、周五期待经过我们精心翻译、校对和发布的译文。

欢迎加入 LCRH SIG 一同参与贡献,并领取红帽(Red Hat)和我们联合颁发的专属贡献者证书。


via: https://www.redhat.com/en/command-line-heroes/season-2/open-curiosity

作者:Red Hat 选题:bestony 译者:Colin-XKL 校对:Northurland, wxy

本文由 LCRH 原创编译,Linux中国 荣誉推出