Redhat 发布的文章

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客《代码英雄》第四季(3):个人计算机 —— Altair 8800 和革命的曙光音频脚本。

导语:因为 Altair 8800,我们今天才能在大多数家庭中拥有计算机。它最初是为业余爱好者设计的,但是一些有远见的人看到了这个奇怪的小机器的巨大潜力,并努力使其他人也看到。他们创造的东西所带来的影响远远超出了任何人的想象。

Forrest Mims 告诉了我们他的联合创始人 Ed Roberts 是如何计划拯救他们陷入困境的电子公司的。他的想法是什么?一台为业余爱好者制造的微型计算机。那台计算机让 比尔•盖茨 Bill Gates 保罗•艾伦 Paul Allen 打了一个决定性的电话。Dan Sokol 和 Lee Felsenstein 回顾了 Altair 8800 在自制计算机俱乐部的揭幕,以及它如何激发了 史蒂夫•沃兹尼亚克 Steve Wozniak 的 Apple I 的灵感。然后,我们在 John Markoff 那里听到了一个臭名昭著的软件抢劫案,该案为代码是否应该是专有的辩论创造了条件。最后,Limor Fried 回顾了这个故事如何继续影响今天的开源硬件运动。

00:00:04 - Saron Yitbarek

1974 年 12 月一个严寒结霜的下午,两个年轻人走在哈佛广场上,他们可能正在谈论着他们最感兴趣的计算机话题。

00:00:19

当他们经过报摊,看到了《 大众电子 Popular Electronics 》杂志从其他杂志中露出的蓝色字体,他们停下来看了一下,杂志封面上是一个金属盒的照片,在它的正面有十几个开关和指示灯。标题上写着:“世界上第一台小型计算机套件,Altair 8800。” 这个盒子看上去不太像样,裸露着金属,就像是给业余爱好者和修理工们准备的。但对这两个人来说却不是这样,更像是他们一直在等待的机器,因为他们正好有适合这种新硬件的完美软件。同时,他们也有一些忐忑,如果别人也有这种想法并已经开始实施的话,那该怎么办呢?必须尽快行动起来了。这两位代码英雄是谁呢? 比尔•盖茨 Bill Gates 保罗•艾伦 Paul Allen 。此时他们并不知道,Altair 8800 将会是打开个人计算机革命大门的机器,它将永远的改变我们的生活。这台设备还做到了另一件事,在一个神秘小偷的帮助下,它将引发自由软件和专有软件之间的争论,我们稍后会讲到。

00:01:50

在硬件这一季的第一集,我们了解了 Eagle 这样的分时小型机。在第二集,我们了解了 GE-225 大型机。但它们仍然受制于自身的尺寸、价格以及处理能力。而这一集讲的是,缩小到 微型计算机 micro computer 的所有东西。这一切,都始于邮寄给业余爱好者的 DIY 套件,就像是《大众电子》的那张划时代的封面里面的一样。

00:02:23

这些简单的套件,激发出了一种革命性的想法:计算机可以放在你的家里。这台计算机是属于你的,你可以用来做实验。一个全新的、面向大众的硬件产品 —— 个人计算机 personal computer (PC) —— 诞生了。我是 Saron Yitbarek,这里是《代码英雄》,一款红帽公司的原创播客。

00:02:51

让我们回到上世纪 60 年代末,在新墨西哥州的沙漠里,Altair 8800 诞生了。一个名叫 Ed Roberts 的人与人合伙创立了一家小型电子零件公司 MITS(意即“ 微型仪器和遥测系统 Micro Instrumentation and Telemetry Systems ”)。通过爱好者杂志,他们可以将这些小玩意卖给痴迷于无线电遥控飞机和火箭模型的新市场。

00:03:21

到 1971 年,Ed 独立经营着公司。他决定将重心转向电子计算器,这在当时是一个全新的市场。MITS 准备提供第一台爱好者计算器,但是 Ed 失算了。这位是他最初的联合创始人,Forrest Mims。

00:03:42 - Forrest Mims

像索尼、夏普和德州仪器这样的公司,他们正在制造专业的袖珍计算器,并以低于 Ed 的价格出售。这是一场灾难,Ed 濒临破产,并且不知道该怎么办。

00:03:57

有一天,他了解到英特尔公司开发了一种新型的微处理器,并在《 电子杂志 Electronics Magazine 》上刊登了广告。我仍然记得那则广告,那款微处理器叫做 Intel 8080。

00:04:09 - Saron Yitbarek

Ed 大量购买了英特尔微处理器,因为当时没有人购买它。他围绕这个微处理器设计了一台完整的计算机。

00:04:23 - Forrest Mims

有一天晚上,他给我打电话说:“我有一个新玩意儿想让你看看。”于是我骑自行车去了 MITS。桌上有一个蓝色的盒子。他说,“看这个。”我说,“这是什么?”他说,“这是一台微型计算机。”我说,“你在开玩笑吧。”他说,“不,这是一台微型计算机,《大众电子》杂志已经认可了,并且想要刊登一篇关于它的文章。”

00:04:43 - Saron Yitbarek

Ed 的目标是创造一个非常基本的计算机套件,同样提供给那些模型飞机和火箭的爱好者市场。他通过《大众电子》杂志来邮购销售这个套件。当你收到这个套件时,会获得一个装满金属零件的袋子,里面有一个装有最重要的 Intel 8080 微处理器芯片的特殊管子。Ed 把整个套件的价格定在 400 美元左右。

00:05:14 - Forrest Mims

他在考虑一个问题,“你觉得能卖出多少台?”他问道。基于之前我们通过《大众电子》杂志销售东西的经验,我说,“好吧,Ed,顶天了也就几百台吧。”我这么说的时候,他看起来好难过。直到今天我都为此感到内疚。在《大众电子》杂志刊登了这个套件之后,他的小楼前的停车场里挤满了汽车。最后竟然卖了 5000 台这样的计算机。它被命名为 Altair 8800。当时 Ed 不知道该怎么称呼它,这个名字还是《大众电子》杂志的工作人员想出来的。

00:05:50 - Saron Yitbarek

Altair 8800 是 Ed Roberts 为了拯救他的公司而做的拼死一搏,这是他做过的最好的决定。他做了一件真正有意义的事情,但他当时并没有意识到。通过将 Altair 以一个合适的价格投放到市场,他让自己的机器展现给了比铁杆电子爱好者更大的受众群体面前。他的 Altair 开拓了一个全新的市场 —— 那些从未想过能拥有自己计算机的消费者群体。

00:06:28

更重要的是,他们可以修理自己的计算机。这是一个大时代的开端,但它还缺少一个部分,软件。这个硬件需要正确的软件才能活起来。

00:06:51

回到 马萨诸塞州 Massachusetts 的剑桥,比尔•盖茨和保罗•艾伦刚刚在最新一期《大众电子》杂志的封面上看到了 Altair 8800。在他们走过哈佛广场的那段决定性路程之前,保罗一直在向比尔抱怨那些 Intel 8080 的新芯片,他在寻找使用这些芯片创建软件的方法。

00:07:16

比尔和保罗使用 BASIC 编程。正如我们在上一集中知道的,如果没有 GE-225 主机,BASIC 永远不会诞生并流行起来。对于比尔和保罗来说,BASIC 的易用性使得它成为了理想的语言,可以提供给那些受限于内存和处理能力的硬件,比如 8080。

00:07:38

当他们看到杂志封面上封装着 8080 芯片的 Altair 时,他们意识到可以用 BASIC 编写软件来支撑这个机器。他们很快联系了 MITS 的 Ed Roberts。Forrest Mims 还记得那个电话。

00:07:56 - Forrest Mims

保罗说,“我们得给这个公司打个电话,告诉他们我们已经有 BASIC 了。”盖茨同意了,但他不想亲自打这个电话,因为他的声音实在太年轻了,而且他看起来也像个青少年。所以保罗•艾伦打电话给 Ed:“我们已经为你的 Altair 准备好了 BASIC。”Ed 说,“每个人都告诉我他们已经搞好了 BASIC。如果你弄好了它,就把它送过来,合适的话,我会考虑的。”

00:08:17

他们并没有 BASIC。他们花了一个月的时间在麻省理工学院或哈佛大学都不知情的情况下借用了计算机时间,为从没有见过的 Altair 开发了 BASIC 软件。

00:08:27 - Saron Yitbarek

比尔和保罗知道他们有能力为 Altair 编写代码。但实际上,他们还没有开始编写。所以他们日以继夜地为这个机器改写 BASIC。使用公布的规范,他们在 DEC PDP-10 主机上创建了一个仿真器,以此来仿真 Altair,然后开发了一个 BASIC 解释器。

00:08:53

没有 BASIC 解释器的 Altair 8800 本质上就是一个带有开关和指示灯的金属盒子,并没有什么用。然而随着 BASIC 解释器的加入,这台机器突然有了全新的未来。

00:09:10

仅仅几个星期后,也就是 1975 年 3 月,代码就准备好了。保罗飞往 阿尔伯克基 Albuquerque ,准备亲手将演示程序交给 Ed Roberts。前一天晚上比尔一夜没睡,以确保代码没有任何的错误。他把最终的代码打在纸带上,并在航班起飞前交给保罗。在三万英尺的高空,保罗突然意识到,他们忘了一件事。

00:09:39 - Forrest Mims

他意识到,他们没有开发出 编码器 Coder ,或者说 引导记录器 bootstrap logger ,来帮助计算机读取程序。他在飞机上写了那个代码。保罗•艾伦就是这么才华横溢。

00:09:53 - Saron Yitbarek

现在他已经准备好了。在第二天进行演示的时候,保罗将首次在一台真正的 Altair 上测试他们的代码。1994 年比尔•盖茨在一段旧影片中,谈到保罗•艾伦在 MITS 装上纸带时所发生的事。

00:10:13 - 比尔•盖茨

第一次,由于某些原因,代码并没有工作。当第二次加载它时,它就顺利的工作了。然而这只是仿真器,速度非常的慢,需要大量的指令才能完成一条指令。因此,实际上,即使是一个非常小的微处理器,真实的机器也比我们的 PDP-10 仿真器要快,大约快五倍。

00:10:32

所以,对保罗来说,当它最终出现并显示出 “READY” 提示符时,保罗输入了一个程序,“打印二加二”,它成功了。然后他让它打印出类似于平方和求和之类的结果。他和这家公司的负责人 Ed Roberts 一起坐在那里都惊呆了。我的意思是,保罗惊讶于我们的那部分能够工作,而 Ed 则惊讶于他的硬件能够工作。

00:10:55 - Saron Yitbarek

保罗•艾伦和比尔•盖茨的 BASIC 解释器在 Altair 上工作得非常棒,这是一个惊人的成就。

00:11:02

Ed Roberts 对此印象非常的深刻,以至于……

00:11:08 - Forrest Mims

他当场聘请了保罗•艾伦担任他的软件开发副总裁。

00:11:13 - Saron Yitbarek

保罗•艾伦在那之后很快就搬到了新墨西哥州,开始了他的新工作。至于比尔,他回到了哈佛,毕竟他还是个学生。

00:11:23 - Forrest Mims

但是保罗•艾伦说服了盖茨在 1975 年的夏天回来,并开始用 BASIC 工作。他们一起开了一家公司,叫做 Micro-soft,带一个连字符。后来他们去掉了连字符。

00:11:36 - Saron Yitbarek

MITS 成为了比尔和保罗的第一个客户,他们授权了他们的 BASIC 解释器给 MITS,并同意随机器分发他们的代码。他们称这套软件为 Altair BASIC,它成为了与个人计算机捆绑的第一款软件。现在他们只需要卖掉它就好了。

00:11:57 - Forrest Mims

Ed 做了什么呢?嗯,他们买了一辆大型房车,把它做成一个移动销售设备,一个销售计算机的移动办公室。他们把它开到全国各地,在不同的城市停下来,举行演示,这吸引了大量的人。

00:12:12 - Saron Yitbarek

它被称为“移动 MITS”,把巡回路演带到了西部。在加利福尼亚海岸沿岸,会议室里挤满了好奇的工程师和修理工。MITS 团队展示了 Altair 和 Altair BASIC。然而,在 Palo Alto 一个特别拥挤的酒店会议室里,发生了一件意想不到的事情。这件事改变了整个软件历史的进程。

00:12:46

让我们先等一下。在开始说这件意想不到的事情之前,我们先来了解一下 湾区 Bay area 的电子爱好者和业余爱好者的情况。他们自称为 自制计算机俱乐部 Homebrew Computer Club 。他们互相交换零件、电路和想法,并在探索个人计算机的新世界里相互扶持。

00:13:11 - Dan Sokol

这些人都对此感到好奇。他们中大多数都是某个领域的工程师。其中只有两三个人对计算机编程完全没有了解。当时做了一项调查,在座多少人拥有一台计算机,而又有多少人计划购买一台。这个调查十分有趣,所有人都想拥有一台计算机,但是实际上只有一两个人拥有它们,他们会把计算机带到俱乐部聚会上展示它们。我记得那时最令人尴尬的问题是,“你打算用它做什么?”而没有人知道。

00:13:46 - Saron Yitbarek

这位是 Dan Sokol,自制计算机俱乐部最初的成员之一。因为每个人都想看一看 Altair 8800,在 门罗公园 Menlo Park 的一个车库里他们举行了第一次集会。

00:14:08 - Lee Felsenstein

在 1975 年 3 月 5 日的一个雨夜,有 30 个人来到了这个车库。这里有一台为他们展示的 Altair。它是启动着的,但没有连接任何东西,也没有做任何事情。

00:14:22 - Saron Yitbarek

这位是 Lee Felsenstein,俱乐部的另一个初始成员。

00:14:27 - Lee Felsenstein

我们在房间里走来走去,尝试学到一些什么。我们从 Steve Dompier 听到了更多的报告,他订购了一台 Altair 计算机,它是在一月份的《大众电子》杂志上发布的。他实际上开车去了 Albuquerque 核实了他的订单,然后向我们报告了他的发现。

00:14:48 - Dan Sokol

Dompier 带来了一台 Altair,他坐在那儿,通过前面板的开关进行编程,使它播放音乐。在大约尝试了一个小时后,有人不小心把电源线踢掉了,这使得他不得不重新开始。但在当时看来,这是“看一台计算机,而且是你能买得起的那种。”

00:15:08 - Saron Yitbarek

在举行的聚会上还有一个人。当他看到 Altair 的时候,让他大吃一惊,但不是因为他不相信有这样一台机器存在。恰恰相反,因为有类似功能并比它好的多的机器已经存在了,他已经制造了它。那个人就是年轻的 史蒂夫•沃兹尼亚克 Steve Wozniak 。他的一个朋友劝说他去参加那个聚会,以便让史蒂夫展示他制造的视频终端。但是每个人都被 Altair 所吸引。在此之前,史蒂夫从未听说过 Altair,也没听说过使它工作起来的英特尔 8080 微处理器。他带了一份数据表回家,这件事带来了一个不可思议的惊喜。

00:16:01

这是史蒂夫•沃兹尼亚克(“沃兹”)早在 2013 年自制计算机俱乐部聚会上的发言。

00:16:10 - 史蒂夫•沃兹尼亚克

我把它带回家研究了一下,然后发现,“天哪,这些微处理器是一个芯片。”竟然能卖到 400 美元,这太疯狂了。这就是在我高中时在纸上设计的计算机。实际上,五年前我自己也制造了一个,当时我必须自己制造一个处理器。因为那时还没有微处理器。

00:16:31 - Saron Yitbarek

在上一集中,我们了解了沃兹高中时是如何在 GE-225 计算机上开始用 BASIC 编写他自己的软件的。嗯,从高中开始,沃兹就想拥有一台属于自己的计算机。但要做到这一点,他必须包括一种编程语言,这意味着至少需要 4K 内存以及用于人工输入输出的功能来输入程序。他的机器有 256 字节的固态 RAM,而此类芯片非常的昂贵,所以他设计了一个处理器,还在高中的时候就不断地改进它。就像 Altair 一样,它有输入 1 和 0 的开关。但现在他意识到 Altair 的微处理器是他梦寐以求的。

00:17:24 - 史蒂夫•沃兹尼亚克

你按下按钮 1、0、1、0、1、0,然后按下一个按钮,它就进入一个地址寄存器,在按下几个 1 和 0,然后写入内存。你写满了内存,在俱乐部听到了 Altair 播放音乐,是如此的兴奋。但对我来说,这都不算什么,我想要的是一台可以使用的机器,现在我要做的是输入数据直接写入内存。这太容易了,我说,“我的梦想就是拥有一台自己的计算机。”那天晚上,我看到了这种方法。

00:17:56 - Saron Yitbarek

那天晚上,Apple I 的形象突然出现在了史蒂夫•沃兹尼亚克的脑海中。他可以通过在终端机上添加一个微处理器,几乎不用做什么就可以得到一台适合使用的计算机。他的想法是:当计算机启动时,会运行一个程序去接收输入的数据,就像打字机一样。而不再需要拨弄 1 和 0 了。再加上他制造的视频终端机,让程序员可以看到自己输入的内容,一台感觉更人性化的计算机就诞生了,这是一台对普通人有用的个人电脑。下面是 Lee Felsenstein 的发言。

00:18:42 - Lee Felsenstein

他已经开发出一种小型的视频终端适配器,通用术语是 电视打字机 TV typewriter 。可以把它连接在电视上。他当时接触了一种只需要 25 美元的处理器芯片,并意识到,“如果我把它放在带有内存的主板上,我也能在主板上放上电视终端,这样我就会拥有一台具有视频显示的计算机。”他就这样做了,在聚会时就在为此做准备,当我们搬到 斯坦福直线加速器礼堂 Stanford Linear Accelerator Auditorium 时,他占住了唯一有电源插座的座位。他总是比别人先到那儿,他正在为 Apple I 编写 BASIC 程序。在那里他开创了苹果计算机系列。

00:19:34 - Saron Yitbarek

每次沃兹完成了他的计算机制作,他就会很兴奋地向俱乐部的每个人展示。他解释了如何使用几块芯片制造出一台价格低廉的个人计算机。沃兹是信息自由、分享知识以帮助建立更好的系统和社会的理念的主要倡导者。这与当时俱乐部的开放价值观和社会解放运动相呼应。

00:19:59

因此,在会议结束的时候,他拿出了他的设计、硬件和软件的蓝图,免费传给大家。他认为他们每个人都可以利用他的方案来制造自己的 300 美元的计算机。但沃兹的朋友兼商业伙伴,一个名叫 史蒂夫•乔布斯 Steve Jobs 的人,很快就终止了他的这个想法。乔布斯一直在外奔波,并没有意识到沃兹会把 Apple I 的设计送给别人。乔布斯并不认同沃兹的黑客思维方式,他更注重专利。很快,乔布斯说服了沃兹,他们决定改为出售计算机。

00:20:42

这种自由和专有技术之间的道德斗争,曾经不止一次发生在自制计算机俱乐部。事实上,在那次让大家对 Altair 瞠目结舌的首届俱乐部大会之后的几个月,还有一次聚会点燃了这场辩论的导火索。它发生在斯坦福直线加速器中心礼堂里。聚会结束时,数十名与会者冲上台去想要获取一份纸带程序,这是微软公司的 Altair Basic 的最新副本,是一款让所有人都很感兴趣的软件。

00:21:21

为什么会有这些副本呢?这个软件还没有正式发布,那么它是如何在那个自制俱乐部聚会上出现的呢?原来,原始的纸带已经被偷了。这是那个时代最大的软件抢劫案。

00:21:44

好吧,让我们具体了解一下这一切是如何发生的。还记得前面提起过关于移动 MITS 到西部去展示 Altair 和 Altair BASIC 的事吗?

00:21:54 - John Markoff

1975 年 6 月 10 日,该公司在 Palo Alto 演示他们计算机和搭载的软件。

00:22:03 - Saron Yitbarek

这位是 John Markoff,纽约时报的记者。

00:22:06 - John Markoff

这家旅馆叫 Rickeys。请记住,在当时个人计算机行业实际上并不存在,对个人计算机感兴趣的大多数人也并不是真正的商人,因为那时并没有商业软件,所以他们向一个广泛的团体展示计算机。当时在新硅谷,有很多人是电气工程师,他们都是程序员。有各种各样的人对技术、对计算机感兴趣。

00:22:39 - Saron Yitbarek

在那次演示过程中,MITS 的工作人员在将软件加载到机器上时遇到了一些麻烦。在当时,软件是打孔在纸带上的,纸带必须通过一个机械阅读器才能安装程序。当那名员工因此而慌乱时,房间里所有的目光都盯在闪闪发亮的新 Altair 上,然而人群中的某个人发现了一些别的东西,在旁边的一个纸板箱,在那个箱子里是一卷卷 Altair 的纸带,这是一个千载难逢的机会。他把手伸进箱子里并用手指缠住了一卷长长的纸带。把它装进口袋带走了。没人看见这些。

00:23:36 - John Markoff

不知怎么回事,那卷纸带最终被一位半导体工程师得到了,他在一家名为 Signetics 的公司工作,他的名字叫 Dan Sokol,他的技术能力很强,也是参加过最初的自制计算机俱乐部聚会的人。所以 Dan 有机会接触到一台相对高速的纸带复印机,他用它做了一堆副本。直到今天 Dan 仍然坚称,他不是拿走原始纸带的人,他只是拿到了一份原纸带的副本,然后把它带到自制计算机俱乐部的下一次聚会上,并与那里的会员们分享。

00:24:17 - Dan Sokol

由于我不道德的行为,我被称为世界上第一位软件盗版者,这是有其道理的。我是那个复制了 MITS BASIC(即微软 BASIC)纸带的人。当时有人在自制计算机俱乐部里站出来说,“谁有能力复制纸带吗?”我说我可以,就这样,我最终得到了那盘纸带并复制了它。

00:24:45 - Saron Yitbarek

当 Dan 分发他的盗版副本时,Lee 也正在那个自制计算机俱乐部会议上。

00:24:51 - Lee Felsenstein

所以发生的事情就是 Dan Sokol 做了 10 份副本,在那次会议上,我们拿到了副本并对他说,“这是 Altair BASIC 的副本。现在带回来的拷贝会比你拿过来的多。”

00:25:02 - John Markoff

当时的约定是,如果你得到一个副本,你必须自己做一个副本,并与朋友分享。这是一个未知的领域。当时还没有个人计算机软件公司,所以这真的是一种狂野的西部,当时人们只是卖计算机,而共享软件。

00:25:19 - Saron Yitbarek

在 1975 年,软件只是你用来让计算机工作的东西。个人计算机是一个全新的概念。当时的黑客们并没有与这个词联系在一起的所有的想法。他们只是想分享他们的工作,通过思想和软件的自由交流来建立一个开放的社区。这次抢劫和赠品事件为一场至今仍能引起反响的争论创造了条件。软件应该自由共享还是应该被买卖?对此,比尔•盖茨一定有自己的看法,当他发现自己的软件发生了什么时,他非常愤怒。

00:26:03 - John Markoff

当他意识到他的 BASIC 编程语言正被业余爱好者们广泛分享时,他给他们写了一封愤怒的信,指责他们窃取了他的软件,削弱了他的谋生能力。

00:26:18 - Lee Felsenstein

我们收到了那封信。在聚会上阅读了这封信,里面有一句话:“我们花费了大量的金钱去开发它。我们用了近 4 万美元的计算机时间。”房间里的每个人都知道,那样的计算机美元是假的,这只是一个会计把戏。你没有为它们支付真正的钱,而我们也知道这一点,所以我们想,“继续抱怨吧。我们会继续做我们正在做的事情。”

00:26:45 - Dan Sokol

他叫我们海盗和小偷。我们试图理智和理性地向他解释,你不能以 400 美元的价格出售一台价格为 400 美元的电脑的软件。在今天这个时代,很难回过头并试图解释他们当时的心态,那就是小型计算机的思想,小型计算机被用于工业,而我们只是一群用套件来制造自己计算机的爱好者。唯一的功能性软件就是这个 BASIC 解释器,它几乎充当了一个操作系统。早在 1974 年,个人计算机里还没有操作系统,我们无法与他沟通,也无法向他解释,“把手册以 100 美元卖给我们,让我们随便用软件。”他没有听这些,多年来微软的软件价格过高,被盗版,而且盗版严重。

00:27:51 - Saron Yitbarek

俱乐部成员选择无视这封信。因为早在 1975 年,当时的版权法并没有涵盖软件。将软件从一个纸带复制到另一个纸带上不会有任何的惩罚。这种情况在 1977 年会发生变化,但在那几年里,这种做法并没有违反法律。

00:28:12 - John Markoff

具有讽刺意味的是,比尔•盖茨并没有创造 BASIC 语言。他只是简单地创建了它的副本,是从原始设计者 达特茅斯大学 Dartmouth University 的一位教授那得到的,他基本上是做了一个副本,然后把它卖掉,所以这一切的根源在于分享。

00:28:31 - Saron Yitbarek

抢劫、纸带、分享、愤怒的信件。所有这些都导致了新兴的软件业和那些被他们视为盗版者的人们之间长达数十年的战争,但在这场战争中,开源软件运动也随之兴起。它的核心价值观与那些点燃个人计算机革命的早期爱好者是一脉相承的,因为这些业余爱好者意识到,个人计算机未来的关键点在于释放软件的潜能。

00:29:07 - Lee Felsenstein

传递纸带、互相鼓励和互相借鉴彼此成果的过程确实是使个人计算机行业成功的原因。

00:29:17 - Saron Yitbarek

现在,我们再也没有说过最初的小偷是谁。谁偷了那条珍贵的纸带,至今仍是个谜。那些知道答案的人们也更愿意保留这个谜。

00:29:32 - Dan Sokol

至于它是如何被“解放”的,如果你想用这个词的话,我知道是谁干的,但是我不会说,因为那个人很久以前就要求保持匿名,因为这样更安全,我尊重这种选择,并且我也会继续尊重下去。所以,我当时不在 Rickey 旅馆,但纸带却找到了传递给我的方法。

00:30:01 - Saron Yitbarek

随着时间的推移,个人计算机革命让位于硅谷和众多风投支持的科技创业公司,但那些修理工、那些电子爱好者和业余爱好者们却从未消失。事实上,他们比以往任何时候都更强大。

00:30:20 - Limor Fried

嗨,我叫 Limor Fried,是 Adafruit 工业公司的首席工程师兼创始人。

00:30:26 - Saron Yitbarek

Adafruit 是一家开源硬件公司,是过去几年开始的那场新革命的一部分,即 开源硬件运动 open source hardware movement ,这场运动与那些早期的爱好者有着同样的价值观。但它变的更好一些。

00:30:43 - Limor Fried

自制计算机俱乐部,我认为,人们带着他们的计算机加入进来是有这样一种信念的,这就像,“来看看我做的这个很酷的 魔改 hack 吧”,然后每个人都会说,“天哪,这太酷了。好吧,下个月我会带来一个更棒的。”这是一个积极的反馈循环,带来了真正好的技术创新。我认为黑客哲学仍然存在,人们只是有了更多的背景知识,所以他们认为作为一个很酷的黑客,我想说的确有所进步,但它实际上已经泛化了,我认为这很好。我认为分享的价值仍然存在,相互帮助,共同努力工作与合作。这个理念贯穿始终。它存在于整个开源社区。

00:31:32 - Saron Yitbarek

我们将用一整集来讲述开源硬件运动的兴起,这样就可以看到我们是如何进步的,并为 Limor Fried 这样的现代制造商创造空间。请继续关注几周后的第六集。下一集,是改变了世界的磁碟 —— 软盘。

00:31:56 - Saron Yitbarek

代码英雄是红帽的原创播客。请到 redhat.com/commandlineheroes 了解一些关于个人计算机革命的伟大研究。这里有一个美丽的轶事,你可以读到关于比尔•盖茨在 Ed Roberts 临终前拜访他的故事,如果你想知道在那次 PC 革命期间发生了什么,请查看我们最初的几期命令行英雄节目,操作系统战争。我是 Saron Yitbarek,下期之前,编码不止。

附加剧集

Forrest Mims 对 Ed Roberts 有很多话要说。听听有关 Ed 与保罗•艾伦和比尔•盖茨会面,以及他们开始合作的故事。

音频

什么是 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-4/personal-computers

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

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

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客《代码英雄》第四季(2):大型机: GE-225 和 BASIC 的诞生音频脚本。

导语:二战后,计算机行业开始蓬勃发展。 通用电气 General Electric (GE)的 CEO 拒绝进入这个市场。但一小队反叛的员工不顾规则,秘密进取。他们创造了 GE 225。这是工程上的一次巨大飞跃,它将计算从一个小众市场推向了主流,为今天的科技行业播下了种子。

在创建通用的 大型机 mainframe 之前,计算机通常是为了执行单一功能而制造的。William Ocasio 回忆了 GE 的第一台专用计算机 ERMA 是如何帮助银行每天处理成千上万的交易的。John Joseph 讲述了 GE 的几名关键员工是如何蒙骗他们的 CEO 建立一个计算机部门的。Tomas Kellner 解释了他们的工作如何产生了一台革命性的机器:GE 225。而 Joy Lisi Rankin 则介绍了 达特茅斯学院 Dartmouth College 的工程师们如何对 GE 225 用于 分时 time-sharing 计算,并利用它创建了 BASIC —— 使计算变得更加方便的重要里程碑。

00:00:05 - Saron Yitbarek

让我们回到几十年前,回到 40 年代末、50 年代初,当时计算机行业有“白雪公主和七个小矮人”的说法。众所周知,“白雪公主”指的是 IBM,而 通用电气公司 General Electric 便是“七个小矮人”之一。这是一家偶尔生产定制机器,但从没在公开市场售卖计算机的公司。

00:00:32

通用计算机是 IBM 的地盘,而 IBM 是 GE 的第二大客户(第一是美国政府)。IBM 经常采购 GE 生产的真空管、电机、变压器和开关等设备,GE 时任总裁 Ralph Cordiner 对此非常满意。所以,每当 GE 的部门主管将转向计算机业务的计划书提交到总裁办公室时,收到的答复都是封面上大写的橙色字母:RJC,Ralph Cordiner 一次又一次地拒绝他们。

00:01:19

事实上,在 Cordiner 担任 GE 总裁兼首席执行官的 13 年时间里,GE 的态度从未改变。即使研究指出计算机是电子工业中增长最快的领域,但 Cordiner 总是用愤怒回应挑战他底线的员工们。然而,一小群叛逆的员工看到了制造大型机的机会,他们不想错失良机。然而他们不知道的是,这台大型机将拯救银行业,打开分时系统的大门,并孕育出新的编程语言。在上一季,我们听了 John Kemeny 和 Thomas Kurtz 在 达特茅斯学院 Dartmouth College 创造 BASIC 的故事,了解到因为 BASIC 是解释型语言,早期的计算机没有足够的资源运行它。像 BASIC 这么好的点子,正等待着像 GE-225 这样合适的设备出现,让它大放异彩。这一章,让我们一起揭开那台差点被扼杀在摇篮中的大型机,那鲜为人知的故事。这台房间大小的机器打开了新世界的大门,它鼓舞了像 史蒂夫•沃兹尼亚克 Steve Wozniak 比尔•盖茨 Bill Gates 这样有远见的代码英雄,鼓舞他们推动个人电脑革命,它的创造在今天仍然意义非凡。我是 Saron Yitbarek,欢迎收听 代码英雄 Command Line Heros ,Red Hat 的原创播客第四季:硬件设备。

00:03:05 - 话音 1

Adams 先生觉得他的新支票账户很好用。与其他公司直接从 埃姆维尔国家银行 Elmvale National Bank 兑现不同,用这个账号可以从自家银行兑现。与其他银行一样,自家银行把支票送到 联邦储备银行 Federal Reserve Bank 去执行兑现。联邦储备银行正是为处理每天来自数百家银行的数千张支票而设立的。

00:03:29 - Saron Yitbarek

1947 年,支票开始流行,银行工作人员的时间耗费在无穷无尽的支票当中。战后经济的蓬勃发展,更是让银行被铺天盖地的支票所淹没。为了腾出时间手工填写账簿,他们被迫下午 2 点就早早关门,但即使这样,他们仍然赶不上进度。他们迫切的希望,能有一台快速、强大的机器,让银行跟上商业发展的步伐。当时 美国银行 Bank of America 每天要处理数百万张支票。下面有请 西北大学凯洛格管理学院 Kellogg School of Management at Northwestern University 的教授 William Ocasio。

00:04:12 - Will Ocasio

难以想象,银行如果没有电脑可用会是什么样子。银行本身就是繁重、文书密集型的行业,美国银行分支机构又那么多。有这么多的信息,他们想要能够快速的传递和处理这些信息。这对于这样一个大公司来说真的很重要。他们知道计算机才是未来的方向。

00:04:39 - Saron Yitbarek

所以,1950 美国银行与 斯坦福研究院 Stanford Research Institute (SRI)签约,希望找到自动处理这些支票的方法。SRI 花了五年时间制造了一台原型机,并将其命名为 电子记录会计机 electronic recording machine accounting 简称 ERMA。ERMA 有超过 100 万英尺的电线,8000 个真空管,重约 25 吨,每天可以处理 5 万笔交易。

00:05:11

美国银行希望 ERMA 马上投入生产。于是向电子制造商们发出 招标请求 request for proposal (RFP),让它们竞标。当然,所有人都认为赢家将是行业巨头,被称作“白雪公主”的 IBM。Baker 博士是通用电气电子部门的副总裁,他知道他的老板 Cordiner 不想涉足 IBM 的领域,也知道计算机是公司的禁区,但当听到美国银行 RFP 的风声时,Baker 看到了其中的机会。他找到了 GE 位于 帕洛阿尔托 Palo Alto 的微波实验室的经理 Barney Oldfield。在这个离 SRI 最近的地方向 Oldfield 提出了一个建议。下面有请 加州大学欧文分校 University of California, Irvine 的战略副教授 John Joseph。

00:06:09 - John Joseph

我认为他是一位成功、进取的企业家,也是精明的经理和商人,他认为这是部门发展的巨大机会。

00:06:27 - Saron Yitbarek

Baker 和 Oldfield 成功说服了他们的老板 Cordiner,这是一台定制的生产控制系统,不是通用计算机,生产它不会让 IBM 不快。并且向他保证,GE 不会涉足计算机行业。

00:06:45 - John Joseph

我觉得 Cordiner 最终屈服的原因是,他给他们提出了一个附加条件:仅此一份合同,不要继续深入商用机市场,只能参与这一次竞标。如果能做到,那你们去竞标吧。

00:07:08 - Saron Yitbarek

尽管 Cordiner 不对竞标抱有任何希望,但还是让他们着手进行 RFP。就让他们发泄一下自己的创造力吧。随后 Oldfield 把他们的提案送到旧金山的银行办公室,等待着他们的答复。

00:07:26

出人意料的事情发生了,IBM 忽然放弃竞标,更出乎意料的是,GE 的提案从所有制造商中脱颖而出。这个不被看好的提案赢得了百万美元的合同。美国银行董事会在 1956 年 4 月 9 日正式接受了这个方案。Baker 在没有经过他的老板 Cordiner 审核的情况下签下了这份价值 3100 万美元的合同,把不可能变成了可能。Oldfield 可以找个地方生产 ERMA 了,当然,他得先成立一个实际的计算机部门。

00:08:19 - John Joseph

接下来轮到他们大显身手了。首先,他们确实成立了计算机部门,虽然听上去只是发一份声明就能搞定的事情。但是在这么大的公司内,把公司的资源和人力调动起来成立一个新部门,真的是一件很了不起的事情。

00:08:46 - Saron Yitbarek

Barney Oldfield 成为计算机部门的主管。这个新部门很像 GE 的另一个制造定制机器的部门: 军事系统部 Military Systems Division 。挑战 IBM 之前,两个部门要先分出胜负。

00:09:06 - Saron Yitbarek

新成立的部门想要低调行事,而 GE 的分权管理方式,刚好适合这样偷偷摸摸的搞事情。只要部门是盈利的,就不会有太多的监管。没人知道他们在做什么。

00:09:26 - John Joseph

当时的情况是,想要在 GE 发展你的小领地,就必须走出去寻找发展的机会。公司没有任何这方面的计划,他是个有冲劲的人,看到了这个机会。他干劲十足,想引领公司走出这重要的一步。

00:09:59 - Saron Yitbarek

更大的挑战还在后头,在哪建立工厂好呢?Palo Alto 的团队想要搬到 Stanford 的工业园区,无奈加州劳动法太严和税收太高,所以这不是个好点子。最终他们选择了 Phoenix。虽然 Phoenix 不是吸引资深工程师的最佳地点,但自有它的优势。

00:10:26 - John Joseph

GE 的总部远在纽约,选择 Phoenix 能让他们远离 GE。在这里,他们可以避开高层的监督,野蛮生长。事关大把钞票,远离 Cordiner 才能获得更大的自主权。

00:10:55 - Saron Yitbarek

Oldfield 在 Phoenix 组建了一支可靠的工程师团队。团队成员有:Bob Johnson、George Snively、Gene Evans 还有 George Jacobi 等人。还有 John Pivoden 负责硬件、Henry Harold 是逻辑设计师、Jay Levinthal 是系统架构师。在这个与世隔绝的桃园胜地,团队氛围非常融洽。他们不仅能担起秘密制造 ERMA 的大任,还能幽默的看待自己的工作。我们找到了他们表演过的一个小短剧,他们称之为“进步的前沿”,这个小短剧某种程度上展示了项目的进展。下面大家一起欣赏一段摘录:

00:11:39 - 话音 2

好了,我们到凤凰城了。

00:11:41 - 话音 3

你终于来了。欢迎来到计算机部门。

00:11:45 - 合音

啥部门?

00:11:46 - 话音 3

计算机部门。

00:11:47 - 话音 4:

计算机是啥?

00:11:49 - 话音 3

哦,有点像是带有圣诞树灯的涡轮机,可以播放音乐。

00:11:53 - 话音 5

是一种快速执行运算的机器。

00:11:56 - 话音 2

我们没必要用它记账,对吧?

00:11:58 - 话音 3

不,但我们得给 Van 一台让他玩,假装我们在用。

00:12:01 - 话音 4:

噢,计算机是啥?

00:12:08 - Saron Yitbarek

对美国银行而言,计算机是可以一天处理 55000 笔交易的机器,这台机器需要对各种大小和状况的支票进行分拣和分发,需要更新客户帐户和余额,需要能识别支票。他们要的不是 1 台,而是 36 台计算机。

00:12:34

项目初期,团队就决定 GE 版本的 ERMA 将使用晶体管来实现。在 50 年代,虽然晶体管比真空管更昂贵,但体积小,与逻辑板的连接器也更简单。原型机的每个真空管和触发器被两个晶体管所取代,使用额外的电阻和电容将它们连接在一起。将 ERMA 设计成软件编程设备,而不是硬件编程设备,是对原型机的另一个重大改变。这样可以简化机器设计,方便以后轻松修改。鉴于大多数 GE 的开发人员都从事硬件工作,他们得再聘请一名程序员。他们选择了一位几年前从纳粹德国逃出,以难民身份来到美国的男子。这名男子名叫 Joseph Weizenbaum。

00:13:34

Weizenbaum 曾在一家名为 Bendix 的公司为 G-15 电脑编程。他甚至为它开发了一种名为 Intercom 100 的伪机器编程语言。尽管除了兑现支票之外,Weizenbaum 没有任何银行相关经验,但他还是领导小小的编程团队,开始编写支持晶体管硬件的软件。该团队还为所有的外围设备编程,包括支票排序器,还有被他们称做 MICR 阅读器的东西。MICR 的意思是“ 磁性墨水字符识别 magnetic ink character recognition ”。你知道支票底部的那行数字吗?那就是 MICR。这行数字由三部分组成,分别表示银行账户、路由号码和支票号码。直到今天,支票上仍有 Weizenbaum 和他的团队在凤凰城的杰作。

00:14:28

值得一提的是。Weizenbaum 后来被认为是 AI(人工智能)的奠基人之一。1958 年 12 月 28 日,在 GE 赢得合同近三年后, 美国银行圣何塞分行 San Jose Branch of Bank of America 实装了第一台 ERMA 机器。虽然这台机器每天只能处理 100 笔交易,但这是朝着正确方向迈出的一步。接下来,他们要兑现每天处理 55000 笔交易的承诺。

00:15:04

到了次年 3 月,该团队不仅兑现了 5.5 万交易的的承诺,还增加了分拣机和打印机,使整个系统每天可以处理 200 万笔交易。美国银行兴奋不已。位于 Phoenix 的电脑部门交付了 32 台命名为 GE-100 的机器,还有更多的订单正在准备中,是时候庆祝了。

00:15:32 - Will Ocasio

美国银行邀请 Cordiner 参加计算机的揭幕仪式。他们甚至邀请了曾在通用电气工作过的 罗纳德•里根 Ronald Reagan 作为他们的电视发言人,这太了不起了。然而,Cordiner 来到揭幕式后,忽然想到:“等一下,这跟之前说的不一样”,然后他生气的开除了 Barney Oldfield。

00:16:00 - Saron Yitbarek

额,Oldfield 就这么被开除了?Phoenix 的团队的明明超额完成了任务,完成了不可思议的壮举,他们的领袖得到的奖励却是被开除?更可气的是,Cordiner 重新任命了部门的负责人,Baker 博士的继任者 Harold Strickland 对电脑并不感兴趣。因为担心会惹 IBM 生气,Cordiner 给 Strickland 下了明确的指示,要他务必管好计算机团队。一个叫 Claire Lasher 的公司职员接替了 Oldfield 的工作。可 Cordiner 不知道的是,Lasher 骨子里也是个反叛者。

00:16:47

通用电气总裁 Cordiner 想要远离商用计算机行业,他从一开始就不想进入这个行业。他想让通用电气尽快回到老样子。他允许生产已有的订单,但用他的话来说:“下不为例!”。后来,当 Cordiner 听到自己银行界的朋友向他称赞 GE-100 的创新时,他的态度发生了转变。所以好吧,他们可以继续在自己创造的沙盒中自由发挥,唯一的限制就是:“不要和 IBM 正面交锋”。

00:17:24

Claire Lasher 的专长是市场营销。他看到了通用计算机市场的蓝海,借鉴了 Oldfield 的经验,制定了自己的计划。那就是两用计算机 200 系列。这个系列既是定制机器,又是通用机器。Claire 将他的商业计划命名为 大观 The Big Look ,他为 Phoenix 团队招募了更多的工程师,其中包括一位曾在纽约从事 GE-312 和 412 过程控制计算机的人,他的名字叫 Arnold Spielberg,是新团队的领导。

00:18:05

看完技术规格后,Arnold 说:“嘿,如果我们调整一下硬件设计方案,我们就能造出通用机器界的大杀器“。于是,Arnold 增加了读卡器、打印机和磁带处理程序等外围设备。仅用 5 个月就完成了原型机,这款新机器被称为 GE-225。有趣的是,Arnold Spielberg 是 史蒂文•斯皮尔伯格 Steven Spielberg 的父亲。为了了解更多关于 Spielberg,以及他在创造 GE-225 这台高层从来不想要的机器中所扮演的角色,我采访了通用电气的 首席故事官 chief storyteller Tomas Kellner。

00:18:51 - Tomas Kelner

Arnold 和他的同事 Chuck Prosper 是这台电脑的设计者,他们一起制造了它。有趣的是,和 GE 以前的计算机不同,GE-225 是商用计算机,它实际上有一个存储系统,并且能够处理数据的输入和输出。

00:19:15 - Saron Yitbarek

GE-225 的哪些技术进步可以归功于 Arnold 呢?

00:19:21 - Tomas Kelner

最有趣的是,这台电脑有自己的内存,能够记录和输出信息。这种存储器可以存储 8000 到 16000 个 20 位字 20-bit word 。它还有一个辅助存储器,大约可以存储 32000 个 20 位字。他之前也用过一些 硬件编程 wire software 设备,它们真的很难使用。这些设备只能编程一次,然后就不能再修改了。GE-225 的进步之处在于,有了数据存储的能力。

00:19:58 - Saron Yitbarek

GE-225 长什么样子?

00:20:02 - Tomas Kelner

说实话,GE-225 看起来不怎么好看,它像一堆盒子。它有存储信息的磁带,有输入终端和输出终端。尽管它被称为小型计算机,但它能占满整个地下室。

00:20:26 - Saron Yitbarek

它能完成哪些其他计算机无法完成的任务呢?

00:20:30 - Tomas Kelner

GE-225 计算机的新特性是支持分时操作。支持多个远程终端访问计算机,多个用户能够同时在上边工作、写代码。据我所知,当时其他的计算机没这种能力。

00:20:58 - Saron Yitbarek

那么谁买了 GE-225?GE-225 的目标客户是哪些人呢?

00:21:02 - Tomas Kelner

通用电气公司内部肯定使用了这些计算机,但全国各地的一些银行也使用了它们,还有 克利夫兰布朗队 Cleveland Browns 也用它们来管理季票销售。有人甚至用其中一台电脑预测了一场全州范围的选举,当然,预测的很准。人们似乎对这台机器非常着迷。Cordiner 让团队在 18 个月内退出计算机行业,但是因为这台计算机的成功,他们搁置了这个计划。

00:21:43 - Saron Yitbarek

重点是,GE-225 不仅是一个银行解决方案。还记得 BASIC 的创始人 John Kemeny 和 Thomas Kurtz 吗?BASIC 就是他们在 GE-225 上创造的。还有另一位代码英雄,他发现了 GE-225 上的编程漏洞。

00:22:03

尽管那时他还在上高中。接下来让 Tomas 告诉你,GE-225 在 BASIC 的开发中起到了什么作用?

00:22:14 - Tomas Kelner

GE-225 上开发了很多有趣的项目,达特茅斯学院的科学家们开发的 BASIC 语言便是其中之一。当时,他们想发明一种使程序员在不同的终端上同时工作的工具。这个工具,就是后来的 BASIC。关于 BASIC 另一件趣事是,通用电气以最快的速度从达特茅斯学院获得了 BASIC 的授权,并开始在内部使用它和预装在 GE-225 上。 史蒂夫•沃兹尼亚克 Steve Wozniak 就是通过 GE-225 接触到 BASIC。当他接触到了一个连接到 GE-225 计算机上运行 BASIC 的终端时,他瞬间就爱上了这个工具,实际上他的处女作就是在上面完成的。

00:23:13 - Saron Yitbarek

那么当你和 Arnold 交谈时,他意识到他对计算机世界的影响了吗?

00:23:18 - Tomas Kelner

对 Arnold Spielberg 的采访真是令人难以置信。那时,他已经 99 岁了。

00:23:23 - Saron Yitbarek

哇哦。

00:23:24 - John Joseph

他记得所有的事情,我们谈到了互联网,我清楚的记得,他说,在 1960 年代,畅想过计算机的未来,但是他从没想到,有一天人们可以通过家用电脑和智能手机,连接到互联网这个庞大的网络中。没想到人们可以随时随地获取信息,航空公司通过计算机控制飞机,控制机器工作。一方面,他对该领域的发展非常感兴趣。另一方面,他也非常谦虚地承认,该领域的发展超过了他在 20 世纪 60 年代的想像。

00:24:12 - Saron Yitbarek

你认为这一切对 史蒂芬•斯皮尔伯格 Steven Spielberg 和他的事业有什么影响?

00:24:18 - Tomas Kelner

史蒂芬还记得曾拜访过 GE 在他们的家乡亚利桑那州 Phoenix 建的工厂,他的父亲带他来工作的地方参观。他当时一头雾水,他爸试图向他解释电脑是什么,能做什么。他的原话是:“这一切对我来说都像是希腊语。”可见他当时是真的听不懂。我问 Arnold 对自己儿子的印象。他说:“我想让他学习工程学,培养他的技术热情,但他却只对电影感兴趣”。

00:25:00 - 话音 6

随后银行业进入电子时代。今天,这种磁性油墨计算机系统让银行能够提供世界上最快、最有效的服务。保险公司、百货公司和公用事业公司也陆续开始使用类似的系统。事实上,所有文书工作都开始使用计算机。但谁知道呢,也许将来,会有更好的解决方案。

00:25:34 - Saron Yitbarek

到 1962 年,GE-225 全面投产,并在推出一年后,迅速成为公司的重磅产品。它不仅为公司盈利,还在商界赢得了很高的声誉。在之后的几个月里,Cordiner 收到了来自全国各地的祝贺信息,他最终改变了他的想法,打算投身计算机行业。他终于正式认可了通用电气计算机部门。

00:26:13

让我们回到与 Tomas 对话中提到的一些事情,我们在上一季的《C 语言之巨变》那一期中也有提到。当达特茅斯学院使用 GE-225 开发一个工具,让程序员可以在不同的终端上同时工作 —— 换句话说,分时系统 —— GE 并没意识到分时的潜力。

00:26:38 - Joy Lisi Rankin

达特茅斯学院使用 GE-225 和 GE DATANET 30 实现了分时系统,此前通用电气从未考虑使用这两种设备来实现这一功能。

00:26:53 - Saron Yitbarek

Joy Lisi Rankin 是一名技术历史学家。

00:26:57 - Joy Lisi Rankin

分时系统的关键在于电脑需要某种方式来停止自己的时钟。分时不是指人们在计算机上共享时间,而是指计算机共享自己的时间来处理多个计算请求。达特茅斯学院的师生们决定,使用 DATANET 30(这是一台 GE 的通信计算机)和 GE-225 共同开发分时系统。

00:27:32 - Saron Yitbarek

因为大型机在 60 年代非常昂贵,批量运行是使用大型机最高效的方法。当时的人编写程序,然后做成打孔卡片以运行程序,他们将卡片交给操作员,然后他们就得等着它和其他程序一起被分批运行。有时要等几个小时,甚至几天。

00:27:58 - Joy Lisi Rankin

在社交电脑和社交网络出现之前,在 Facebook 出现之前,分时系统、BASIC 还有达特茅斯学院和 GE,对开启个人电脑时代发挥了重要作用。通用电气从达特茅斯学院建立的分时系统中吸取经验,将其应用到自己的业务中,迅速建立起了全球分时服务行业。1970 年的某个时候,仅欧洲就有 10 万分时用户。在 20 世纪 70 年代到 80 年代,分时是他们的重要业务。

00:28:44 - Saron Yitbarek

尽管 GE-225 和随后的 200 系列计算机取得了成功,通用电气公司还是在 1970 年将其大型机部门卖给了 Honeywell。但他们仍然决定保持分时共享业务,并在未来几年保持盈利。

00:29:08

Ralph Cordiner 的故事讲完了,就像我们在上一期,数据通用公司发明小型机的故事中看到的,下一代伟大机器,它往往需要一个由顽固的、有远见的叛逆者和一些前瞻的执行官组成的团队来建造。人算不如天算,集思广益往往会有意想不到的收获。

00:29:41 - Saron Yitbarek

下一期,我们将从 GE-225 结束的地方开始,来谈谈大型机如何启发新一代程序员展开个人计算机革命,谈一谈他们对我们的启发。《代码英雄》是红帽的原创播客。访问我们的网站 redhat.com/commandlineheroes 了解更多有关 GE-225 的资料。我是 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-4/mainframes

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

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

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客《代码英雄》第四季(1):小型机 —— 旧机器的灵魂音频脚本。

导语:它们不适合放在你的口袋里。但在当时, 小型机 minicomputer 比之前的房间大小的 大型机 mainframe 的尺寸小了一个数量级。它们为可以装进包里的 个人电脑 Personal Computer (PC),以及最终你口袋里的手机铺平了道路。

16 位小型机改变了 20 世纪 70 年代的 IT 世界。他们让公司的每个工程师都有机会拥有自己的计算机。但这还不够,直到 32 位版本的到来。

Carl Alsing 和 Jim Guyer 讲述了他们在 数据通用 Data General 公司创造革命性的新 32 位计算机的工作。但他们如今被视作传奇的工作是在秘密中完成的。他们的机器代号为 “Eagle”,其设计目的是为了与自己公司的另一个团队正在制造的机器竞争。这些工程师们回忆了为使项目继续进行而做的公司政治和阴谋,以及他们如何将限制转化为优势。Neal Firth 则讨论了如何在一个令人兴奋但要求很高的项目中的生活。在这个项目中,代码英雄们一起工作,只是因为他们想这样做,而不是期望获奖或成名。这三个人都讨论了这个故事如何在 Tracy Kidder 的非虚构工程经典《 新机器的灵魂 The Soul of a New Machine 》中所成就的不朽。

00:00:03 - Saron Yitbarek

那是 1978 年,小型机业界激战正酣。就在一年前, 数字设备公司 Digital Equipment Corporation (DEC)发布了其 32 位的 VAX 11 780 计算机。它比市面上的 16 位机器要强大得多。 VAX 的销售迅速地超越了那些步履缓慢的竞争对手。其主要竞争对手 数据通用 Data General 公司迫切需要一台新机器来和 VAX 竞争。他们需要一台属于自己的 32 位计算机,而且要够快才行,但数据通用公司和 DEC 之间的竞争并不是唯一的战斗。数据通用公司内部还正酝酿一场地盘争夺战,而这两场战斗的战利品都是在令人难以置信的环境下创造令人难以置信的机器。一台 13 英寸的笔记本电脑大概有 3 磅重。如今,我们认为计算机的便携性及方便的尺寸是理所应当的,但是在 20 世纪 70 年代,大多数计算机仍然有着整个机房大小的大型机、重达数吨,而且价值数百万美金。而当硬件成本急剧下降后,开发更小、更快、更便宜的机器的竞争就开始了。小型机为工程师和科学家打开了拥有自己的终端机的大门。正是小型机引领我们到了今天的样子。

00:01:37

在上一季的《代码英雄》中,我们深入探究了对软件开发至关重要的领域 —— 编程语言的世界。诸如 JavaScript、Python 和 C、Perl、COBOL 以及 Go 之类的语言,我们审视了它们的历史、它们所解决的问题,以及它们是怎样随着时间推移而演变的。在这一季中,也就是第四季,我们将再一次深入探索,这一次是我们软件运行于其上的硬件。我们将为大家讲述七个特别的故事,讲述那些敢于改变硬件规则的人和团队。你桌上的笔记本电脑、口袋里的手机,如今你所拥有的每一件硬件设备,以及它们的前代产品,都是代码英雄们全身心投入的结果。他们的激情打造、他们的大胆举动,让我们的硬件成为现实,彻底改变了我们现如今的编程方式。

00:02:36

我是 Saron Yitbarek。这里是代码英雄,一档来自 红帽 Red Hat 的原创播客节目。

00:02:45

在我们本季的首播中,将讲述一个工程团队竞相设计、调试和交付下一代计算机的故事。他们工作的故事变成了 1981 年 Tracy Kidder 获得了普利策奖的畅销书《 新机器的灵魂 The Soul of a New Machine 》的主题。在这本书中讲述了这一集中你将听到的众多嘉宾的故事。

00:03:07

让我们说回到数据通用公司。该公司主席 Ed de Castro 制定了与 DEC 竞争的计划。他拆分了工程部门,将一支团队从其位于 马萨诸塞州 Massachusetts 韦斯特伯勒 Westborough 的总部迁移到了 北卡罗来那州 North Carolina 的新办公室。他们的任务是开发一款领先的 32 位的机器设计,以粉碎 VAX。他们将项目命名为 “Fountainhead”。Ed de Castro 为这支团队提供了几乎无限的支持和资源,他将 Fountainhead 视为他公司的救星。而剩下的几名工程师被留在了马萨诸塞州,他们觉得自己被严重轻视了。他们认为自己能够开发一个干掉 VAX 的杀手,可能会比 Fountainhead 项目所能开发的更好,但是 Ed de Castro 不会给他们机会。因此,这个小组的负责人 Tom West 决定自己动手。Tom West 是一名自学成才的计算机工程师,他负责数据通用公司的 Eclipse 部门。 Eclipse 是数据通用公司最成功的 16 位小型机产品线。Tom 能造机器,也能卖货,而且他知道市场需求是什么。Fountainhead 项目成立以后,Ed de Castro 让剩下的工程师们继续致力于优化去年的产品线。 而 Tom 和其他人都对此不以为然。

00:04:31 - Carl Alsing

我们对此一点都不满意。我们中有些人离开去做其他工作,而另一些人则感到十分沮丧,担心自己的事业,而且感觉没意思。而且我们觉得另一组人肯定会失败。

00:04:46 - Saron Yitbarek

Carl Alsing 是数据通用公司微编程小组的经理。他是 Tom 的副手。他们决定提出自己的项目计划。

00:04:56 - Carl Alsing

这将是使用最新技术进行的全新设计,构建一个能够击败 DEC 的 VAX 的 32 位计算机。所以我们为此提出了一项建议,并去找了主席 Ed de Castro,他说:“不,没门儿。北卡罗来那州的小组在负责这项工作。你们不必操心。”因此,我们感到十分灰心,回去提出了另一个名为 Victor 的计划。我们研究了如何使去年的老产品更好的方法。我们在里面设置了一个小开关,即系统里的一个模式位,当你打开它时,它将使得计算机能够像现代 32 位小型机一样运行,尽管比较慢。然后我们向 Ed de Castro 提出了这个功能。最后他说:“你们在这里有个模式位。我不想再看到其他任何带有模式位的设计。北卡罗来那州那边正在负责新设计。”于是乎又一次,我们深感沮丧,我想就是在那会儿 Tom West 决定要做一些秘密的事情。

00:06:06 - Saron Yitbarek

Tom 想出了两个故事。一个是讲给 Ed de Castro 的:他们将会对旧的 Eclipse 产品线进行加强,使它运行得更快一点,增加几个新按钮,并且换个新颜色。Tom 把它说成保险措施,以防万一北卡罗来那州那边出了什么问题。Ed de Castro 同意了。然后 Tom 给他的团队讲了另一个更棒的故事。

00:06:32 - Carl Alsing

Tom West 向我们团队中的一些人提议,我们要开发一款真正优秀的现代机器,它对以前的机器完全兼容,并且采用我们所需的所有最新高科技的东西,有虚拟内存、32 位和纠错代码,以及所有这类东西:多任务、多处理、大量内存。“伙计们,我们将打造出最新的、能在市场上大杀四方的新机器。”

00:07:04 - Saron Yitbarek

这款极具市场杀伤力的新机器的代号是 “Eagle”。现如今,人们觉得我们的电脑中的内存是没有任何限制的,但是在那时候,当从 16 位转换到 32 位时,发生了重大的突破。突然之间,你的地址空间就从能够存储 65000 字节的信息变成了 40 多亿字节。随着这一增长,软件也可以处理更加大量的数据。这给计算机公司带来了两个基本的挑战:从 16 位过渡到 32 位,这是肯定的,但是他们还得让使用旧软件的老客户感到满意。因此,他们必须得开发一款能够让旧软件继续运行的机器,即一款向后兼容的 32 位计算机。VAX 尽其所能也没有找到第二个问题的完美解决方案,但是 Tom 坚信他的 Eagle 可以做到。

00:08:14

Eagle 的总部位于韦斯特伯勒 14 号楼 AB 的地下室。Tom 指派 Carl 负责 微码 micro coding 。Carl 指派 Chuck Holland 来管理 编码员 coder ,他们被称为 微码小子 Micro Kids 。同时,Ed Rasala 将负责硬件。他委派了 Ken Holberger 负责管理团队,这个团队被恰当地称为 哈迪男孩 Hardy Boys 。(LCTT 译注:《哈迪男孩》是一部 1977 年的美国电视剧。) Tom 有一个盟友,就是工程副总裁 Carl Carman。 Carman 也对 Ed de Castro 有意见,因为 Ed de Castro 拒绝让他来负责北卡罗来那州的小组。

00:08:51 - Carl Alsing

Carl Carman 知道我们在干什么,却什么都没有对他的老板说。所以他给我们提供了资金,但我们需要保持较低的薪水,并且需要一些非常聪明的工程师。因此,我们决定去招收大学毕业生。这样做的好处之一是他们不知道什么是你做不到的。他们以为你无所不能。

00:09:15 - Saron Yitbarek

那时 Jim Guyer 刚从大学毕业两年,在数据通用公司工作时被分派到了哈迪男孩。

00:09:21 - Jim Guyer

北卡罗来那州那边正在开发的机器更多是高端计算,本质上几乎是大型机。而且,嗯,我的意思是,这在当时确实是投入到与 IBM 以及其他大型机公司的竞争中去的相当重要的一步。我们认为我们有优势,因为我们想做的事情并不那么雄心勃勃,而且我们真的、真的专注于一种简洁、干净、简单的实现方案,用最低的成本、最少的组件等等。

00:09:51 - Saron Yitbarek

成本低廉,设计简单。他们意识到他们需要使用 固件 firmware 来控制一切。与硬件相比,把越多的功能置于固件控制之下,所开发的机器就越便宜、越灵活。

00:10:03

而且它们能够根据需求进行修改。当然,现代计算机都是以这种方式构建而成的,但在 1978 年,这种方法是全新的。

00:10:15 - Carl Alsing

我们所做的设计非常简约。我们正在研究能够使事情简单明了的方法。因为我们知道,它不可能变成一个庞大而又昂贵的机器。它必须只是几块板子、几个电路,这是让使它快速发展的一个优势。设计一款安全的、无风险的产品,和设计一款用于制胜的产品是有区别的。而我们并不担心风险,我们在意的是取胜。我们希望它既快速又便宜,我们希望快速地开发它。因此,我们只用了三、四块板子,这是最低限度的硬件,我们通过固件来弥补这些。

00:11:06 - Saron Yitbarek

Eagle 团队面临着很多严苛的限制。 VAX 是这个星球上(当时)性能最高的 32 位计算机。 Eagle 必须与之匹敌。但最重要的是,它还必须兼容他们的 16 位架构。要用比其他团队更少的金钱和时间来做到所有这一切,这使得 Eagle 感觉像是在赌博。但 Tom West 的团队全力以赴投身于其中。

00:11:32 - Jim Guyer

有两套无时无刻都在运行着的系统,我们有两班工程师为之工作。我们所有人都必须全盘掌握。因此,我们不得不学会其他每一个人的岗位所要做的工作。这对我而言既具有挑战性又极其富有教育意义。但是我们大家都参与其中努力着,“要解决这个问题下一步该做什么?我们需要着眼于何处?”每个人都仔细钻研原理图和其他文档,试图找出办法,“看看这个信号,看看那台计算机的状态,看看微码正在执行的步骤顺序。它在正常运转吗?哦等等,它出错了。呃,为什么它会这样运行呢?”

00:12:13 - Carl Alsing

这是件严肃的事情,这就是工作态度。小组里的工作很紧张。有时候人们会对于采用何种方式去做某件事情而发生争论。可能有一种方法会花费稍微多一点的钱,而另一种方法则更便宜,但是可能速度稍慢或效率稍低。为了达成共识,可能会开展激烈的讨论或会议。但我们还是做出了这些选择,然后我们协作努力。

00:12:44

我们没日没夜地工作,在 原型 prototype 上付出了很多时间。我们只有两个原型,两个团队都能在这两个原型上工作着实很重要。因此,晚班和白班都有人在工作,人们都很疲惫,但这让人感到非常兴奋 —— 这是值得的。所以没有人过多地抱怨工作条件。

00:13:11 - Saron Yitbarek

工作条件 —— 据传当时 Tom West 为了让团队完成他所期望的东西,实行了一种被称为“ 蘑菇管理 mushroom management ”的方法。喂养它们然后看着它们成长。在狭窄而炎热的工作空间里,时间很漫长,日程安排也不切实际。Tom 本人被形容为神秘、冷酷、无情的人。有位工程师甚至称他为“ 黑暗王子 the Prince of Darkness ”。 Tom West 是否如此渴望取胜以至于剥削了他的团队吗?他是否为了得到完美的机器而牺牲了微码小子们和哈迪男孩们的福祉?

00:13:56 - Jim Guyer

Tom 是个有趣的家伙。他对你期望很高,但不会给你很多指导。他希望你可以自己弄清楚需要做什么,而如果你不能做到的话,你就会被踢出团队。

00:14:10 - Saron Yitbarek

指导来自于 Carl 或是 Ed, 他们是 Jim 和团队其他成员每天都与之工作的部门经理。但这些年轻的工程师也为了取胜而参与其中,他们喜欢自己所获得的机会,愿意自己去搞清楚。

00:14:26 - Jim Guyer

我个人获得了第一届微码小子通宵荣誉奖。我不知道是什么理由,也许我们都是能力超群、豪气冲天、无知无畏的年轻后浪。我们很自信,我们觉得自己相当聪明,可以解决问题,我们相互依靠,也许这就是自负。我乐在其中。我认为我们大部分人都乐在其中。

00:14:56 - Saron Yitbarek

Carl 不同意“蘑菇管理”这一说法。他说情况恰恰相反。他们都确切地知道正在发生什么,以及预期是什么。反而是高层管理人员不知道。同时,Tom West 正在承受着来自多条战线的巨大压力,而这种压力也传递给了他的团队。

00:15:18 - Carl Alsing

Tom 对这个项目的真实性质保持着低调。因此,他并没有对工程师们说很多,他保持着超然的态度,当然他也告诉他们,他们不能在团队之外或是家中讨论该项目。甚至不能使用 “Eagle” 一词。因此,我们还传达了这个项目非常紧急,我们必须在一年之内完成,竞争已在市场中展开,如果我们要通过这个东西来占据市场之巅,我们必须现在就把它完成。因此他们承受着很大的压力,并且团队期望他们在夜晚和周末也参加工作,没有时间留给他们去和家人野餐或是做其他任何与工作不相关的事情。

00:16:06 - Saron Yitbarek

我想知道在 14 号楼 AB 的战壕里奋战是怎样的感受。所以我邀请 Neal Firth 来到身边。他是微码小子中的一员,刚毕业就加入了团队。

00:16:20

和 Tom West 共事的感觉如何?你和他有过很多互动吗?

00:16:24 - Neal Firth

不一定。他是那种幽灵般的人物。我们能看到他在身边。他一般也不会不干预,以便我们能够领导自己、实现目标。我们正在做的事情是全新的,他不想把上一代处理器要做的工作强加给我们。

00:16:49 - Saron Yitbarek

这听起来像是一个工作十分紧张的地方,在这里你真切地想不断前进并完成工作。你是怎样应对没有太多时间这一事实的?

00:16:57 - Neal Firth

老实说,这并不是问题。想要时间充裕实际上并没有什么问题。我们可能会花费一些时间来实现结果。这需要家里人非常支持与理解,因为她们并不一定会立马同意。你可以将其等同于当时的一些硅谷人,或是像 乔布斯 Jobs 沃兹尼亚克 Wozniak 之类的人,我们投身其中并搞定它。我们确实不全是“ 住在同一间公寓 live-in-the-same-apartment ”或“ 在地板上写代码 code-on-the-floor ”那样的人,但具有其中的一些特征。

00:17:35 - Saron Yitbarek

在那段时间里,是什么让你坚持了下来?为什么你这么有动力?

00:17:39 - Neal Firth

坦率地说,就是在解决问题。我一直是一个喜欢思考并善于解决问题的人。事实上,团队里的大部分人都是这样的。我们所有人都有着类似的背景,并且我们都很享受解决问题这件事。就是,解决那些难题,找到一种前所未有的方式去做事。

00:18:01 - Saron Yitbarek

那么在这个项目中,你最难忘的时刻是什么?

00:18:05 - Neal Firth

当时,项目已经进行了相当长的时间,我们正在运行微码模拟器,它实际上是被提议当作生产模拟器来运行的,已经运行了 10 到 12 个小时了。突然,字母 E 出现在了控制台上,然后我们等了一会儿,又是一个字母,接着又是一个字母,然后我们突然意识到我们运行的是测试代码,是正在设计运行的诊断程序。因此,微码模拟器正在模拟运行这份微码的硬件,并且它开始打印字母,就好像它真的在运行一样。所以当它真正问世并运行时,可能比实际上要慢了十万倍,但这仍是我最难忘的时刻之一。

00:19:02 - Saron Yitbarek

现在回过头想想,你觉得自己当时有被剥削吗?

00:19:07 - Neal Firth

没有。我可以意识到正在发生着什么。我知道正在发生什么。所以,没有,我没觉得被剥削。实际上,这是我大学毕业时候的期望,否则我永远都不可能参与这么重大的项目,或是有机会在这样的一个项目中扮演那么重要的角色。

00:19:31 - Saron Yitbarek

我想知道你如何看待发明的牺牲,因为如果你要考虑所有我们所创造的伟大事物,通常来说我们不得不放弃一些东西,是这样吗?必须舍弃一些东西来做出真正惊人的东西。这样的情况你遇到过吗?如果有的话,你不得不放弃的东西是什么呢?

00:19:48 - Neal Firth

我不会说我放弃某些东西是有一个思想驱动的过程,我认为更重要的是,我更能适应自己正在做的事情以及所做的事对周围人的影响。

00:20:03

但我从来没把它看作是一种牺牲,而与我亲近的人们,他们生活在就是这样的一个世界里。我听说过一些可怕的故事,如果你愿意的话,在今天,在这里都是,你醒来,插上你的咖啡机,拿一些披萨或点心,然后你开始写代码,最后你在你的键盘上睡着。然后你在下一个早晨醒来,重复这个过程。

00:20:35

我们当然远没有达到那种牺牲的程度,我仍然有妻子,我仍然有朋友,我们仍然在一起。这当然不是份 朝九晚五 nine-to-five 的工作,但是它给我带来了许多个人层面与技术层面的成就,我能把这些和我的妻子、姐妹、父亲、母亲以及岳父分享,这些人可以欣赏这些。

00:20:59 - Saron Yitbarek

是啊。那么,你认为使某件事情变得真正伟大的关键是什么呢?

00:21:06 - Neal Firth

使某件事情变得真正伟大的关键 —— 有趣的问题 —— 我认为这取决于参与其中的人员,因为他们想要这样做,而不是因为他们对成就、财富或是名望的渴望。因为那些东西都转瞬即逝,而且永远无法使人满足。但是如果你要努力地去实现一个目标,而且你和一群人共同努力并去实现它,那么当你最终实现目标的时候,这确确实实是能令人心满意足的。

00:21:42 - Saron Yitbarek

Neal Firth 是 Eagle 项目中微码小子中的一员。他目前是一家名为 VIZIM Worldwide 的软件公司的总裁。

00:21:57

正如 Tracy Kidder 书中所记载的那样, Tom West 的超然和距离感是刻意为之的。这是他试图在日常交谈中保持头脑清醒,从而能使 Eagle 的目标保持原样。不过更重要的是,他想保护团队,将他们与周遭发生的政治与企业边缘化相隔绝。他也保护了微码小子们和哈迪男孩们不受先入为主的观念影响。

00:22:28

1980 年, Eagle 完成了。比 Tom 所承诺的要晚了一年,但至少还是完成了,不像 Fountainhead。就像资深团队所预料的那样, Fountainhead 团队失败了,他们的项目遭到了搁置。这位是 Bill Foster,当时的软件开发总监,他谈到了 Fountainhead 的挣扎。

00:22:50 - Bill Foster

我认为所犯下的最大错误在于没有对其设置任何限制。或多或少地,就是让我们去开发世界上最好的计算机。嗯,它应该在什么时候被完成?哦,我们对此确实没有个明确的期限。它应该花费多少成本?好吧,我们也不确定。我不得不让 Ed 失望了。他没有在程序员和工程师之间设置足够的界限。

00:23:15

而且如果你让一群程序员和工程师放任自流,猜猜怎么着,他们将使事情变得复杂,设计出过分庞大的东西,以至于永远不能完成。

00:23:26 - Saron Yitbarek

让我们回忆一下。从 Tom 和他的团队决定秘密开发 Eagle 开始,这已经进行了两年了。整个过程中,公司总裁并不知道正在发生了什么。当现在已经正式命名为 Eclipse MV/8000 的这款机器准备交付时,市场营销负责人去找了 Ed de Castro,为营销活动放行。 Carl Alsing 将对此作出解释。

00:23:53 - Carl Alsing

市场营销负责人说道:“好吧,我们已经准备好为 Eagle 进行推广了,我们需要数千美元。我们将在全球六个不同的城市举行新闻发布会。我们将进行一个巡演,去到很多城市,我们将拍摄一部影片来展示它,这将轰动一时。”

00:24:14 - Carl Alsing

然后 Ed de Castro 说:“我不明白。你们为什么要那样做?”这只不过是在 Eclipse 那边的另一个包而已,表面工夫的工作而已。市场经理说:“不,这是一款全新的机器。这是一款 32 位的机器,有虚拟内存,具备兼容性。它将击败 VAX。所有你要的东西都在这里了。”

00:24:37 - Carl Alsing

Ed de Castro 着实有点儿困惑。他以为我们在北卡罗来那州遭遇了失败,将成为事情的终结,但我们拯救了他。因此,是的,他邀请了我们所有人,我们举行了一次小型的午餐会。午餐会上有三明治和苏打水,他说:“嗯,你们做得很好,我很吃惊。我此前并没有意识到你们在做这个,但是我们会推广它,我知道将会安排一部影片、一些巡游,而且你们将成为这其中的一部分,所以,感谢你们,请吃你们的三明治吧。”

00:25:19 - Saron Yitbarek

现如今被命名为 MV/8000 的 Eagle 出现在了《 计算机世界 Computer World 》杂志的封面上。推出期间,媒体的炒作使得这支原本秘密的、深居地下室的团队成员们变成了小名人。毕竟,他们拯救了数据通用公司。

00:25:38

但好景不长。 Tom West 再也无法让团队免受公司内部政治的影响。团队面对敌意毫无准备。公司里的其他人都嫉妒他们的成就,并对他们能在秘密项目中逃离如此之久感到震惊。

00:25:57

不久后,一个新的工程副总裁取代了他们的盟友 Carl Carman。这个新来的人在第一台 MV/8000 被售出之前就拆分了 Eagle 小组,并把 Tom 发配到了数据通用公司的日本办事处。

00:26:13 - Jim Guyer

我认为我们开发出了花钱所能够买到的最好的 32 位超级小型机,我认为这对数据通用公司来说是一件很棒的事情,我认为它将能把 DEC 稍微踢开一点,而不是我们把世界从他们身边夺走。那时候的竞争太艰难了,在高科技领域很难成为赢家,但我认为我们已经做了一些有价值的事情。

00:26:42 - Saron Yitbarek

当 Eagle 发行时,它确实拯救了数据通用公司,但在市场份额被 DEC 夺走三年后,该公司从未真正恢复过来,而行业却发展了。小型机不再是大势所趋。 微型计算机 microcomputer 的竞争已经开始了,这为 个人计算机 personal computer 革命铺平了道路。

00:27:04 - Carl Alsing

数据通用公司继续开发了其他的版本,并在其他的型号上进行了改进,这样进行了一段时间,取得了一些成功。但是世事无常。市场发生了变化,他们自己转型成了一家软件公司,然后最终被其他人收购了。如今,我认为他们在马萨诸塞州 霍普金顿 Hopkinton 某家公司的文件抽屉里。

00:27:36 - Saron Yitbarek

一年后, Eagle 团队中的许多人离开了数据通用公司。有人感到精疲力竭。有些人准备好要去开发一些不一样的东西。一些人前往西部的硅谷,热衷于寻找下一个创意火花。无论如何,在一个不承认他们为拯救公司所做的一切的公司里,继续待下去似乎没有什么意义。1981 那一年 Tracy Kidder 的《 新机器的灵魂 The Soul of a New Machine 》出版了。现如今,全世界都知道 Eagle 是如何构建起来了。

00:28:14 - Carl Alsing

如果你问我新机器的灵魂是什么,我想我会说是他们所经历的人和事,他们所做出的牺牲,他们所做出的努力,他们对此所感到的兴奋,以及他们所希望得到的满足感。也许得到了,也许没有,但他们为之而努力。

00:28:35 - Jim Guyer

从某种意义上说,这款机器是有点儿个性。但真正有个性的是这些有勇气的人。

00:28:47 - Saron Yitbarek

在我们有关硬件的全新一季的下一集里,我们会将时光倒回大型机世界,讲述另一群叛逆员工的故事。他们制造的计算机催生了一门改变世界的编程语言。

00:29:04 - Saron Yitbarek

代码英雄 Command Line Heroes 》是 红帽 Red Hat 的一档原创播客节目。这一季,我们正在为你整理一些出色的研究,以便你可以更多地了解到我们正在谈论的硬件的历史。请前往 redhat.com/commandlineheroes 深入了解 Eagle 及其背后的团队。我是 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-4/minicomputers

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

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

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客《代码英雄》第三季(8):C 语言之巨变音频脚本。

导语:C 语言和 UNIX 是现代计算的根基。我们这一季介绍的许多语言都与 C 语言有关,或者至少受到 C 语言的影响。但是 UNIX 和 C 都只是 贝尔实验室 Bell Labs 的几个开发人员作为秘密计划项目创造出来两个成果而已。

贝尔实验室是二十世纪中期的一个创新中心。Jon Gertner 将其描述为一个“创意工厂”。他们在二十世纪 60 年代最大的项目之一是帮助建立一个名为 Multics 的 分时 time-sharing 操作系统。Joy Lisi Rankin 博士解释了当时关于分时系统的一些宣传,它被描述为有可能使计算成为一种公共服务。大型团队投入了数年的精力来构建 Multics —— 但这并不是他们所希望的成果。贝尔实验室在 1969 年正式远离了分时系统。但正如 Andrew Tanenbaum 所描述的那样,一个由英雄组成的小团队还是坚持了下来。C 语言和 UNIX 就是这样的结果。他们并不知道他们的工作会对技术的发展产生多大的影响。

00:00:00 - 发言人 1

我们掀起了新一波的研究浪潮。我们的创造力正在延伸。

00:00:10 - 发言人 2

噪音、噪音。

00:00:13 - 发言人 1

这些人是贝尔电话实验室的设计工程师。

00:00:16 - Saron Yitbarek

在上世纪 60 年代,坐落于新泽西州默里山的贝尔实验室,是科技革新的中心。在那里,我们的未来科技迈出了第一步。在那里,贝尔实验室发明了激光与晶体管,它还是信息论的摇篮。在 1968 年,贝尔实验室的四名程序员创造了一种极具开拓性的工具,它根本地改变了我们世界运行的方式,也标志着贝尔实验室的种种创新达到了新的高峰。

00:00:53

我是 Saron Yitbarek,这里是《代码英雄》—— 一款来自红帽公司的原创播客。在一整季的节目中,我们追寻着编程语言世界中最具影响力的一些故事,现在,我们终于迎来了这一季的结尾。我认为,我们把最好的故事留到了最后。这个故事中的编程语言使本季中提到的其他编程语言成为了可能。在正好 50 年以前,C 语言在贝尔实验室被设计出来,这是一种非常基础的通用程序设计语言。它是如此的基础,以至于我们有时候都会忘记,C 语言的发明是多么意义深远的成就。

00:01:35

为了得到事件的全貌,我们需要回到上世纪 60 年代,正好在 C 语言的诞生之前。那是一个一切似乎都有可能的时代。

00:01:46 - Jon Gertner

在上世纪 60 年代,贝尔实验室简直是研究人员的世外桃源。在今天,已经很难找到与贝尔实验室相似的企业研发实验室了。

00:01:56 - Saron Yitbarek

这是 Jon Gertner,他是《 创意工厂:贝尔实验室与美国革新大时代 The Idea Factory: Bell Labs and the Great Age of American Innovation 》的作者。我们采访了 Jon,让他大家解释当时贝尔实验室的情况。为什么在上世纪 60 年代,贝尔实验室能够成为他所说的“创意工厂”呢?

00:02:15 - Jon Gertner

我想今天我们都相信——“竞争带来伟大的科技革新”,但是我不能确定这种观点的正确性,并且,其实,贝尔实验室的成就在一定程度上是与这种观点相悖的。贝尔实验室的工程师和科学家们并没有特别大的压力,但是与此同时,由于贝尔实验室在诸多的研究实验室中的地位,它又确实可以雇佣到最优秀、最聪明的研究者,并给他们足够的时间去研究感兴趣的问题,同时提供大量的资助。如果你能证明你的研究项目符合这家电话公司(LCTT 译注:指 AT&T)的目标和理念,你就能够得到经费。

00:03:00 - Saron Yitbarek

而 Jon 强调,虽然贝尔实验室是一个商业公司的产物,但它的价值观还是比较接近学术界的。通过让员工自行决定工作方式及内容,贝尔实验室实践了类似于开源社区的开放式领导原则。

00:03:19 - Jon Gertner

这是诸如苹果、谷歌与微软这样的大公司出现前的时代。计算机的历史更多的聚焦在西海岸,聚焦于 自制计算机俱乐部 Homebrew Computer Clum 这样的组织,以及从其中发展而出的企业;但是我认为贝尔实验室和那些企业一样重要。贝尔实验室坐落于一个现在看来几乎不可思议的地方:新泽西的郊区。但是,这里曾聚集了对科技突破做出了巨大贡献的科学家、研究者和计算机工程师,他们的研究成果对全世界都有惊天动地般的显著影响。

00:03:54 - Saron Yitbarek

分时 time-sharing ”就是这些惊天动地的项目之一。它的核心概念很简单,实现难度却极大。他们能构建一个能够同时由成百上千的用户使用的操作系统吗?这样的发明将会使当时的计算机领域为之震动。从 1964 年起,贝尔实验室的天才们,与 通用电气 General Electric 和麻省理工学院(MIT)合作,试图集体推进这项工作的进展。实际上,麻省理工学院在一年前已经有了相关的研究项目,即 MAC 计划 Project MAC ;但是现在,所有这些顶级团队已经团结起来,开始着手钻研大型主机分时操作系统的构建方式。

00:04:40

实际上早在 1959 年, 约翰·麦卡锡 John McCarthy 就提出了分时操作系统的概念。请收听我们 第七集 的节目获知更多细节。他设想了一种可以在多个用户之间切换其“注意力”的大型计算机。麦卡锡认定,这样的一种机器有潜力极大地拓展现有的计算机文化。让我们来设想一下吧,如果一千名用户能够同时在一台机器上工作,你就完成了对整个编程与计算机世界的民主化。现在,这支群星荟萃的团队准备着手将麦卡锡的梦想变成现实,并为他们想象中的操作系统起了一个名字 —— Multics(LCTT 译注:Multi- 前缀代表“多人的”)。

00:05:23

Multics 团队为分时操作系统进行了多年的工作,但是该项目遇到了严重的资金困难,并且在十年之后,项目仍然看不到尽头。雪上加霜的是,项目的领导者 Bill Baker 是一个化学家,对贝尔实验室的计算机科学部门并不感兴趣。除此之外,我们仍然能找到一个新的问题 —— 自尊心问题。

00:05:46 - Jon Gertner

在贝尔实验室,人们每天习以为常的一件事情就是独自工作。我的意思是,贝尔实验室的人们有一种感觉:他们认为自己拥有一切他们所需要的的人才和构思,并且拥有最先进的科技,当他们遇到值得解决的问题时,他们有能力去解决这样的问题。这种看法可能有一定合理性;但是 Multics 项目在贝尔实验室没有进展,在某种程度上也可能是因为像这样更加复杂的、合作性的工作在贝尔实验室的体系中运转不良,也不能让那里的高管们满意。

00:06:20 - Saron Yitbarek

Jon Gertner 是 《创意工厂》 The Idea Factory 一书的作者,他刚刚发表的新书是 《世界尽头的冰》 The Ice at the End of the World

00:06:32

贝尔实验室于 1969 年四月正式宣布放弃 Multics 项目,但这是否就是故事的结尾呢?就贝尔实验室而言,分时操作系统 Multics 之梦已经破灭。但是这个梦真的结束了吗?结果却并不是这样,并非所有贝尔实验室的研究人员都放弃了分时操作系统。四个顽固的拒不退让者在所有人都已放弃之后,继续坚持这一梦想,而那就是下一个故事了。

00:07:08

说实话,有些梦想太美好了,这样的梦想是很难被人抛弃的。

00:07:12 - Joy Lisi Rankin

这是一件大事业。

00:07:14 - Saron Yitbarek

这位是 Joy Lisi Rankin,她是 《美国计算机人物史》 A People's History of Computing in the United States 一书的作者。Joy 将会和我聊聊分时操作系统的理想,以及为什么分时操作系统如此不可或缺。

00:07:27 - Joy Lisi Rankin

开发分时操作系统是一件重要且极富雄心壮志的事,直到该项目开始之前,大部分上世纪 60 年代早期的分时系统在一台主机上都约有 40 至 50 个终端。因此,提升终端的数量是重要性很高的一件事,贝尔实验室的雄心很可能超出了大部分人的认知,这也是这个项目在实现最初目的的过程中碰到了不少困难的原因。但是,尽管如此,分时操作系统继续以不同的形态发展,并真正地走向繁荣;分时操作系统不仅仅在麻省理工学院得到发展,也走向了其他的地方。

00:08:09 - Saron Yitbarek

是啊。那么,当我们谈起上世纪 60 年代,是谁在推动分时操作系统的需求?你提到了麻省理工学院、通用电气公司和贝尔实验室。那么我们的关注点是商业还是学术团体?谁才是真正的推动者?

00:08:23 - Joy Lisi Rankin

我认为学术团体和商业团体共同推动了发展的进程,除此以外,一些 科学 scientific 团体也参与了这项事业,因为,正如我之前所说,分时操作系统是一种更加一对一、富有互动性的计算体验。但是从另一个角度来看,我也会说教育工作者也同样在推动这件事的发展。并且,从国家的层面上讲,当时也在进行关于创建全国性计算设施的对话。那么,基本上来说,所谓的全国性计算设施指的就是全国性的分时操作系统网络。真的,美国的思想领袖们也有这样的言论,他们认为这样的系统会是与供电、电话、供水一样的基础性服务。

00:09:08 - Saron Yitbarek

哇哦。

00:09:08 - Joy Lisi Rankin

对啊,我知道的!这确实很……

00:09:09 - Saron Yitbarek

那可真是一项大事业。

00:09:11 - Joy Lisi Rankin

那是一项非常大的事业。

00:09:13 - Saron Yitbarek

Joy 让我想起了一件事。尽管这一期节目主要聚焦于创造了 C 语言和 UNIX 操作系统的团队,但是在贝尔实验室之外,对分时操作系统的推动是一项运动,比任何一个团队都大。将计算机视为公共设施是一个非常有意义的想法,在这项事业中,有许多优秀的人物,可惜我们不能请他们来到这里,比如 Bob Albrecht 和 Martin Greenberger ,以及其他的一些杰出人物。

00:09:37

好的,在进行了一些预先说明之后,让我继续和 Joy 的对话吧。

00:09:41 - Joy Lisi Rankin

那么,当约翰·麦卡锡在麻省理工大学的演讲上首次公开的谈论分时操作系统时,他明确的将其与电力进行了比较,并说:“这是一个让所有人都能使用计算机的方式,不仅仅是在学校里和商业活动中,还在每个人的家里。”回首过去,再阅读当时的文章与档案,许多人都确信,未来会出现一种能够被规范化管理的计算公共设施。因此,人们对这种全国性的分时基础设施充满了信心和支持。

00:10:22 - Saron Yitbarek

非常有趣的一点是,在 1970 年,IBM 实际上已经退出了分时操作系统这一产业。即使是通用电气也出售了他们的大型主机部门,不过他们还仍然保留了一部分分时操作系统相关的业务。让我们简单地谈一谈这些吧,1970 年发生了什么?

00:10:39 - Joy Lisi Rankin

我认为 1970 年已经一定程度上已经成为某种标志,这也许是人为假想的标志,这一年标志着公共计算设施与分时操作系统产业的失败。从某些角度上来说,这种观点是错误的。我认为在上世纪 60 年代末期,麻省理工和 Multics 项目明显在创建一个支持上千个终端的分时操作系统上遇到了困难,而这是一个知名度极高、影响力很大的项目。在同一时期,数十个基于分时计算模型的商业项目在美国兴起并繁荣发展。这是一个科技泡沫。随后,对于分时操作系统的热情走向衰落。这不完全是因为通用电气出售了他们的计算主机业务,他们在上世纪 70 年代至 80 年代间一直保留着他们的分时计算业务,并且这一业务盈利状况良好。除此以外,当时的大学,例如麻省理工学院,也继续运行着他们的分时操作系统,直到上世纪 80 年代。

00:11:52

因此,依我之见,“分时系统只是一个在上世纪 70 年代破碎的科技泡沫”的公共记忆之所以产生,一定程度上是因为人们过多地关注了 Multics 的困境。然而,事实上来说,如果我们回到过去,看一看当时的人们如何使用分时操作系统,以及分时操作系统赢得了多少利润,了解一下分时操作系统的成功,我们就会发现,其实上世纪 70 年代正是分时系统繁荣的年代。

00:12:17 - Saron Yitbarek

现在让我们把眼光放回到贝尔实验室,由四位技术专家组成的小组想要创造他们自己的分时操作系统。他们是 肯·汤普逊 Ken Thompson 丹尼斯·里奇 Dennis Ritchie 道格拉斯·麦克劳伊 Doug McIlroy 约瑟夫·欧桑纳 J.F. Ossanna 。不过他们并不想完成 Multics,他们想要越级跳过 Multics,制作一个不受过往拖累、功能更为强大的操作系统,他们称之为 UNIX(LCTT 译注:Uni- 这个前缀代表“单一的”)。

00:12:39 - Joy Lisi Rankin

我认为 Multics 是 UNIX 的灵感来源,其原因在于,许多在 Multics 上工作的程序员是如此享受分时操作系统在编程上的优点,以至于在 Multics 陷入困境时,他们便想要创造一个属于他们自己的分时环境。这些来自贝尔实验室的程序员,他们决定构建他们自己的编程框架与分时操作系统,这就是 UNIX 的起源。

00:13:20 - Saron Yitbarek

Joy Lisi Rankin 是 《美国计算机人物史》 A People's History of Computing in the United States 一书的作者。

00:13:29

丹尼斯·里奇 Dennis Ritchie 将自己和其他三名同事称为一个 团队 fellowship 。他们几个开发者想要作为一个紧密的四人小团体而工作,并且他们需要一种能够协调他们程序设计的硬件。但是贝尔实验室已经放弃了分时操作系统的梦想,即便它是一个学术研究的世外桃源,给已经放弃的项目拨款这件事也超出了他们的底线。因此他们拒绝了使用新硬件的提议。为此事购买新的硬件太过昂贵了,为什么要冒险呢?但研究员们还是坚持了下来。

00:14:05

汤普逊和里奇要求得到一种类似 GE645 的机器,这是他们一直用来进行 Multics 相关工作的型号。当他们得知无法得到经费时,他们刚刚在纸上潦草地写下一些关于文件系统的想法。最后,他们在一个他们称之为“太空旅行”的游戏中成功地实现了他们的一些想法,这个游戏运行在 PDP7 机型上,这种机型基本上与 Commodore 64 是同一个级别的。没有贝尔实验室的支持,他们的开发是缓慢的,至少开始是这样的,是一个字节、一个字节地前进的。这四人组复活了分时操作系统之梦,以他们称之为 UNIX 的形式。

00:14:47

不过这里就是问题所在了:UNIX 操作系统是用汇编语言写成的。也就是说,他们用纸带向 PDP7 传输文件;你可以想象到,他们在缺乏理想的工具与上级的支持的情况下,努力构建这个开创性的操作系统时所遇到的困难。UNIX 已经获得生命,但还没有一种合适的编程语言能够让它歌唱。

00:15:23

开发者们初次尝试为 UNIX 设计的语言称为 B 语言,由 肯·汤普逊 Ken Thompson 编写。

00:15:30 - Andy Tanenbaum

这是 BCPL( 基础综合编程语言 Basic Combined Programming Language )的一种衍生语言。

00:15:33 - Saron Yitbarek

这位是 安德鲁·塔能鲍姆 Andy Tanenbaum 。他是阿姆斯特丹的一位计算机科学教授,也是许多书籍的作者,包括经典教材 《计算机网络》 Computer Networks 。让我们听听他讲解汤普逊的 B 语言背后的故事。

00:15:48 - Saron Yitbarek

所以说, B 语言是 BCPL 的一种衍生物?

00:15:51 - Andy Tanenbaum

BCPL 源于一种构建 CPL 编译器的企图,这种语言编写的编译器确实能够起到作用,而 CPL 基于 ALGOL 60,ALGOL 60 语言又源于 ALGOL 58。ALGOL 58 则源于对 Fortran 进行改进的尝试。

00:16:01 - Saron Yitbarek

搞明白了吗?现在的问题就是,B 语言有许多历史包袱。B 语言和它的这些前身相比,并没有太多的突破性改变,因此,B 语言不能完成让 UNIX 歌唱的挑战。B 语言中没有变量类型,对于初学者来说这是一个问题。除此以外,B 语言对应的汇编代码仍然比 B 语言编译器的 线程代码 threaded-code 技术 [1] 要快。

00:16:31 - Andy Tanenbaum

BCPL 和 B 语言只有一种数据类型,就是 双字节类型 word 。双字节类型在基于双字节类型开发的 IBM 的 704 和 709、7090、7094 机型上效果不错,但是从 360 和其它所有的小型电脑开始的机型都是基于 单字节类型 byte 的。在这种情况下,双字节类型就不是一个好主意了,它和现代计算机的匹配程度极其糟糕。因此,显然 B 语言无法解决现有的问题。

00:16:57 - Saron Yitbarek

那么,该团队之前工作使用过的所有机器都是基于双字节类型的,但是在基于单字节对象的操作上,这种类型的机器就不够好用了。幸运的是,在这个时间点上,贝尔实验室的领导们又回来加入了 UNIX 项目,他们意识到了这个团队中正在产生令人激动的进展。他们资助了一台价值 65000 美元的 PDP-11,并且这台机器不是基于双字节类型的,而是面向单字节的。现在,装备上了 PDP-11,丹尼斯·里奇能够在处理编程语言的难题时更进一步。

00:17:36 - Andy Tanenbaum

丹尼斯,以及在肯的少量帮助下,决定编写一种更加结构化新编程语言,包含其它数据类型,比如说 字符类型 char 整数类型 int 长整数类型 long 等等。

00:17:47 - Saron Yitbarek

因此,在 1971 年至 1973 年之间, 丹尼斯·里奇 Dennis Ritchie 一直在调整 B 语言。他增加了一种字符类型,并且构建了一个新的编译器,这样就不需要再使用线程代码技术了。两年结束时,B 语言已经变成了一种崭新的语言,这就是 C 语言。

00:18:08

C 语言是一种功能强大的语言,结合了高级功能和底层特性,能够让使用者直接进行操作系统编程。它的一切都是如此的恰到好处。C 语言从机器层次中进行了足够的抽象,以至于它也可以移植到其他的机型。它并非一种只能用来写写应用的语言。它几乎是一种通用的编程工具,无论是在个人电脑还是超级计算机上都十分有效,而这一点极其重要,因为个人电脑革命当时已经近在眼前。

00:18:49

团队的成员们在确定了 C 语言就是正确的道路之后,就立刻用它重写了 UNIX 内核和许多 UNIX 组件。因此,只要你想使用 UNIX,你就必须使用 C 语言。C 语言的成功与 UNIX 的成功紧密的结合在了一起。

00:19:06 - Andy Tanenbaum

C 语言的流行,其实主要不是因为它是一门比 B 语言更优秀的语言 —— 当然它确实比 B 语言优秀 —— 而是因为,它是编写 UNIX 的语言,并且当 UNIX 广泛发行的时候,它自带了一个 C 语言编译器;甚至最后它还配备了两个 C 语言编译器。那么,UNIX 受到了广泛欢迎,每个使用它的人都有了 C 编译器,而且 UNIX 的一切都是由 C 语言写成的。而 C 语言是一种相当不错的语言,它又是与 UNIX 共同出现的,那为什么还要找其他的编程语言呢?

00:19:33 - Saron Yitbarek

从这里开始, C 语言的价值开始显现。

00:19:35 - Andy Tanenbaum

由于 UNIX 是用 C 语言写成的,并且带有一个 C 语言编译器,C 语言与 UNIX 从一开始就在一定程度上互相依赖,因此,它们也共同成长。在一个关键的时间点,C 语言在 UNIX 系统中已经足够流行时,像 Steve Johnson 这样的人开发了可移植的 C 语言编译器,这种编译器可以为其他型号的计算机产生机器码。最终,出现了面向其他操作系统的 C 语言编译器,人们开始用 C 语言编写各种各样的软件 —— 从数据库系统到……天知道什么奇奇怪怪的玩意儿,因为 C 语言在各种环境下都可用,并且十分有效,效率很高。

00:20:07 - Saron Yitbarek

因此,不久以后,人们也开始用 C 语言编写与 UNIX 无关的程序,因为这门语言的优点是显而易见的。Andy 将为我们讲述,C 语言如何完全接管了整个编程世界。

00:20:20 - Andy Tanenbaum

我想说的是,C 语言在正确的时间出现在了正确的地点。在上世纪 70 年代,计算机的普及范围远比现在要小。普通人不会拥有计算机,并且对计算机一无所知,但是在大学和大企业所拥有的计算机中,有许多都使用了 UNIX 操作系统以及随之而来的 C 语言,也就是说,这些大学和大企业都在使用 C 语言。这些大学与大企业发布了大量的软件,也产生了大量的程序员。如果一个企业想招聘一名 C 程序员,发布招聘广告后一定会有人来应聘。如果想招聘一名 B 语言程序员,没人会来面试。

00:20:49 - Saron Yitbarek

在 C 语言的世界中,有许多基础设施 —— 软件、函数库、头文件等,这一切编程工具都构成了一个完美的闭环。

00:20:59 - Andy Tanenbaum

因此,C 语言变得越来越流行。

00:21:02 - Saron Yitbarek

现在,互联网的兴起导致了人们对 C 语言安全性的关注,这些问题在变种中得到了部分解决,比如 C#。有些时候我们会觉得,好像所有的兴奋点都在 Python 或 Go 等新语言上。但是我们希望能在播客中试图做的一件事就是让大家回忆起当下的我们与历史的紧密关联,而 C 语言的影响至今仍然是不可思议的。

00:21:29

C 语言在现代最出名的产物就是 UNIX 的教子 —— Linux,而 Linux 的绝大部分都是用 C 编写的。就连 Linux 项目使用的标准编译器 GCC( GNU 编译器集合 GNU Compiler Collection ),也是用 C 语言写成的。虽然这一点可能不太引人注意,但是今天所有聚集在 Linux 上的开源编程者,都与一种在半个世纪以前的语言相联系,而 C 语言的统治也在年复一年的增强。

00:22:02 - Andy Tanenbaum

以上这些事情的结果就是世界上占支配地位的两种操作系统的诞生。一个是运行在 Linux 操作系统上的安卓,而 Linux 是重写 UNIX 操作系统的产物。而 iOS,本质上来讲是一种 4.4 版的 Berkeley UNIX。因此,安卓和 iOS 从本质上说都是 UNIX。我怀疑几乎所有的服务器都是运行在 UNIX 或 Linux 的某个版本上的。这些服务器在幕后发挥着巨大的作用,并且任何运行 UNIX 的系统都源于 C 语言,为 UNIX 所编写的一切程序都使用了 C 语言。C 语言确实是无处不在的。

00:22:41 - Saron Yitbarek

安德鲁·塔能鲍姆 Andy Tanenbaum 是一名计算机科学教授,他是《计算机网络》一书的作者。说点有趣的题外话吧,他同时也是 MINIX,一个免费、开源版本的 UNIX 的作者,而 MINIX 事实上也是 林纳斯•托瓦兹 Linus Torvalds 开发 Linux 的灵感来源。当然,Andy 使用 C 语言编写 MINIX。

00:23:03 - Saron Yitbarek

今天,C 语言存在于我们生活中的任何一个角落,从火星上的漫游车到台式电脑上的浏览器。它影响了许多我们在本季节目中提到的语言,例如 Go、Javascript 和 Perl。由于 C 语言与 UNIX 密不可分的联系,C 语言很可能是分布最广泛的编程语言。

00:23:28 - 发言人 7

1998 年美国国家科学奖的获得者是——来自朗讯科技公司贝尔实验室的 肯·汤普逊 Kenneth L. Thompson 丹尼斯·里奇 Dennis M. Ritchie 的团队。

00:23:40 - Saron Yitbarek

回望上世纪 60 年代,这四位贝尔实验室的员工—— 肯·汤普逊 Ken Thompson 丹尼斯·里奇 Dennis Ritchie 道格拉斯·麦克劳伊 Doug McIlroy 约瑟夫·欧桑纳 J.F. Ossanna ——他们那时还不得不向上级乞求关注和资助。但是在 1998 年,汤普逊和里奇就收到了美国国家科学奖,这是为了表彰他们在 C 语言和 UNIX 上的工作。他们也共享了一百万美元的图灵奖奖金。历史的眼光是公正的。

00:24:10

在一整季的节目中,我们一直在追寻那些我们最喜爱的编程语言的发展沿革与魅力。无论它们像 C 语言一样搭上了操作系统发展的便车,又或者是像 Go 语言一样在一种新的基础架构上发展,有一件事是永恒不变的:编程语言有它们自己的生命。它们是活着的。它们出生,成长,走向成熟。有时,编程语言也会变老,走向消亡。我们越多的了解这些语言,我们越会发现编程语言是一股重要的力量,它们总是在不断地变化,以切合时代的需要。我们的职责就是意识到这些变化,并且加以回应。我们的语言一直都是构建我们想要的世界的最佳工具。

00:25:00

以上就是我们所有第三季的《代码英雄》节目。我希望大家喜欢收听我们的节目。节目的第四季已经在制作中,即将推出,敬请期待。

00:25:13

《代码英雄》是来自红帽公司的原创播客。

00:25:18

如果你想深入了解 C 语言或者本季节目中我们提到的任何其他编程语言的故事,欢迎访问 redhat.com/commandlineheroes。我是 Saron Yitbarek ,下期之前,编程不止。


  1. 线程代码 threaded-code 技术:一种通过把一系列调用指令转换成一完整的地址表,然后使用恰当的方式调用的技术。线程代码最初被用来减少代码的占用空间,提高代码密度。通俗地讲,这种技术有点类似于在 C 语言中把一系列的 switch-case 语句转化为用函数指针数组实现的形式。 ↩︎

什么是 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-c-change

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

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

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客第二季(3):准备提交音频脚本。

导语:想进入开源领域但不知道从哪里开始?你是一个贡献者,想知道为什么只有一些 拉取请求 Pull Request 被接受?或者,你是一个感觉有点不知所措的维护者?
这一集将探讨投身于一个开源项目的意义。我们将跟随我们的英雄们,跟着他们在开源贡献者的角色中不断进步:从寻找项目并为其做出贡献,到建立和维护繁荣的社区。Shannon Crabill 在 2017 年的 Hacktoberfest 上分享了她是如何开始从事开源工作的,而 Corinne Warnshuis 则介绍了将来自各种背景的人纳入到创造优秀软件的过程中是多么重要。
为开源做出贡献的方式有很多。让我们一起来了解一下。

00:00:03 - Nolan Lawson

在我刚开始做软件开发的时候,我基本上只做些让自己开心的小项目,像小应用程序、命令行小工具之类的。

00:00:12 - Lindsey Tulloch

我只是真的不知道作出贡献那么容易。而且你不需要解决 P = MP 那样的难题,你的投入依然可以是很有价值的。

00:00:21 - Kanika Muraka

本地社区使我有了足够的信心去做出贡献。

00:00:28 - Saron Yitbarek

当我还完全是个编程新手的时候,我和我的朋友 Dan 一起发起了我的第一个开源 拉取请求 Pull Request (PR),这也是我的第一次开源贡献。

00:00:42

我听过很多为开源做贡献的故事,说它有多么神奇,有多么可怕。我很清楚,并非所有社区都和善,也不是所有维护者都很友好。

00:00:57

那个项目本身对新手来说相当不错。我们只是添加了一个 JavaScript 库,让人们可以在线预览网站。这是一个很好的适用范围很广、自成体系的项目。而且如果这玩意儿不起作用,我基本上确信它不会毁掉整个网站。

00:01:18

然而,我对这个 PR 非常紧张。我和 Dan 阅读了这个库的文档,埋头于写我们的代码。我仍记得当我们最终完成的时候,只是互相看着彼此,好像在说:“就这样吗?”我们发起了 PR。它被审查,然后合并,我想我至今还是对这一切感到惊讶,我还是不知道这些机制是怎么运行的。

00:01:43

这并不是什么只有他们才能做到的,也不是什么神秘或神奇的事情。我意识到我确实也可以对开源作出贡献。这是我们在这一集中想要传递的一点知识 —— 为开源做出贡献并不神奇,它也不一定可怕。我们将带你一起走过这个过程。

00:02:05 - Lindsey Tulloch

这是一个突破性的认识,这些项目实际上是完全开放的,我也可以做出贡献。

00:02:15 - Saron Yitbarek

在这一场的开场白中,你会听到像你一样的代码英雄在加入开源行列时,经历着同样的恐惧。他们分别是 Nolan Lawson、 Lindsey Tulloch、 Kanika Muraka,这些是今天来做客的代码英雄。

00:02:34

你正在收听的是红帽公司的原创播客节目《代码英雄》。我是主持人 Saron Yitbarek。

00:02:47

这是一个关于两个代码英雄的故事,他们只是想在广阔的开源世界中,做出更好的东西。他们其中一个人是贡献者,另一个人是维护者。他们都不是真实存在的人物,而是两个虚构人物,用来代表所有的贡献者和维护者,他们和我们分享了他们的故事。希望你也可以在他们的历程中看到一些你自己的影子。

00:03:16

首先来见一见我们的朋友 —— 贡献者。她是个新手,就像曾经的我们那样。她不确定基本的工作流是什么,但是她看到了一个需求,并且认为她可以添加一个功能来提供帮助。我们这个虚构的贡献者很想提交代码,但是该怎么做呢?

00:03:44 - Corinne Warnshuis

你一直在成长,学习新技能。而且你不一定必须在孩提时代拆过电脑,才有资格在成年后学写代码。

00:03:52 - Saron Yitbarek

这位是 Corinne Warnshuis,一个名叫“Girl Develop It” 的很棒的组织的执行董事。该组织的目的是帮助那些可能不太敢提问的,或在聚会中觉得自己不太受欢迎的女性。

00:04:07

Girl Develop It 意识到做出贡献的难度并不是对所有人而言都是一样的 —— 这是社会造成的问题。作为社区,我们的一部分职责,就是要让世界多一点同情心,以及包容健康多元文化。

00:04:22 - Corinne Warnshuis

在我们看来,加入开源的壁垒有很多,但我们喜欢称它们为“没有充分的理由”,有三个这样的壁垒将女性专门排斥在技术之外,它们是:刻板印象、可及性和环境。

00:04:40 - Saron Yitbarek

值得记住的是,促进多元化不仅具有良好的道德意义,同时也有商业意义。

00:04:48 - Corinne Warnshuis

作为一个行业,技术可能拥有着最大潜力,能给当今世界带来最大的变化。你确确实实希望,来自各行各业的人们都为塑造世界的工具、服务和其他事物做出贡献。我认为来自各种背景的人们一起开发软件,并为开源项目做出贡献真的非常重要。

00:05:13 - Saron Yitbarek

事实是,我们并非一开始就拥有同样的优势和经验。下一代的伟大开发者可能看上去并不像硅谷的程序员。

00:05:23 - Corinne Warnshuis

面对面指导对人们而言,历来是非常昂贵而又难以获取到的。再者,我认为从 2014 年至今,情况有所改善。我认为除了 Girl Develop It 之外的组织(比如 Outreachy 和 CodeNewbie ),正通过提供安全的网络或空间,来提出问题并获得更多的舒适感来做到这一点。

00:05:49

为这些想法和问题提供一个安全而友好的测试平台,是一个不错的起点。

00:06:02 - Saron Yitbarek

说到新手,回到我们正在追踪的那个贡献者。倘若你不是来自主流背景时,那么第一次提交可能会压力非常大。感觉就好像你必须得证明你自己。不过一旦我们将加入的壁垒降得足够低,我们在准备做出贡献时,实际需要考虑的是什么呢?

00:06:23 - Vincent Batts

对某些项目感到兴奋这事很酷,但你想要解决的用例是什么呢?

00:06:31 - Saron Yitbarek

Vincent Batts 在红帽主要从事容器架构方面的工作。他鼓励新的贡献者尝试并有针对性地开展工作。找到你和项目一起有意义的那个利基。

00:06:45 - Vincent Batts

我认为一个可让人持续贡献的项目通常来自于互惠关系。它满足了你的一个需求,而且在这个过程中你又发现了满足它的需求的方式。即使它是一个由人构成的社区,它也已经成为了一种共生体系。

00:07:01 - Saron Yitbarek

比方说:

00:07:02 - Vincent Batts

因为朋友的推荐,我最终弄了一台 Slackware Linux 机器。它非常适合我想做的事情,我帮着将其打包到了主流 Slackware Linux 社区,并最终成为了这个项目的贡献者和维护者。这并不是因为我想成为 Slackware Linux 社区的贡献者,而是因为这是最适合我的一个项目,它的用例正好是我一直致力于解决的事情。

00:07:33

我想很多人都会遇到这种情况,他们因自己量身定制的用例而编写一个数据库软件。他们发现用 Golang 编写很合适,因此他们写了这样一个高性能的数据库,所以他们能够对 Golang 做出修复或优化方面的贡献,以帮助他们的数据库运行得更快。

00:07:54 - Saron Yitbarek

你可以找到你自己的小众领域,并开始自然发展。关键在于,从某处开始去做。你不必等待有了学位或绝对的自信才开始。

00:08:08 - Vincent Batts

如果你需要直接编写代码或文档的经历,或是成为一个后端数据库、Web 服务器的系统管理员,那么好消息是,大部分社区都是基于志愿者构成的。你可以参与诸如 Debian、Fedora 或其他一些类似的项目,这些社区都建立起了文档页面。那些项目必须在某处的 Web 服务器上运行,一些人,甚至是一个没有薪酬的、正在积累经验的社区成员,负责去检查 Web 服务器是否停机或出了什么问题。

00:08:43 - Saron Yitbarek

Vincent 强调了开源的平等主义本质。无论你来自哪里,只要你愿意,都可以真正开始做出贡献。如果你想的话,你可以为自己扬名立万。

00:08:57 - Vincent Batts

一旦它被合并,你的名字就会附在某个项目上。你可以公开表示你在某个地方做出了改进,这是相当有意义的事情。

00:09:11

我曾与那些不是从事日常技术工作的电视修理工和教师共事过,他们很有代表性。他们也在社区上做出了很多贡献。另一方面,我也曾和一些开发者合作过,他们有的能有 30 年开发经验,但他们从来没有像那样公开贡献过代码。

00:09:40 - Saron Yitbarek

对了,我们的贡献者怎么样了?嗯,她找到了她的定位。她克服了她的恐惧,并最终发起了她的第一个 PR。现在她可以休息一下,并战战兢兢地等待维护者作出回复。

00:09:56 - Vincent Batts

向上游做贡献有点像第一次上台做才艺表演。你会感到紧张,走上舞台后手心冒汗。你做了一件事,然后它好像就变成了你的成就。你将被彻底改变,跟过去不再一样。

00:10:17 - Saron Yitbarek

彻底改变?或许吧。事实上,维护者有四种可能的回应:沉默 —— 这很有趣,也可能是完全拒绝,或是直接接受,或是柔和的中间立场 —— 要求修改。

00:10:37

提交 PR 的几天后,我们虚构的贡献者终于收到了来自维护者的回复。跪迎结果吧,是要求修改。作为一个新手,她将这视为一场小型灾难。她还不知道要求修改是个实际上是成功的一步。她甚至还对维护者的简略语气感到一点气愤,听上去就像维护者没空搭理她一样。

00:11:03

这里存在着一堵墙,新的贡献者不知道墙的另一边正在发生什么。

00:11:12

我们来认识一位维护者。他正在维护的项目并不是他的全职工作。这是一个周末项目,他时常熬到深夜,给工单排优先级,并且提醒人们发起 PR 时更新文档,然后你就明白了。他相当忙碌,有时甚至出现了一些维护倦怠。

00:11:38

一位现实生活中的维护者,Nolan Lawson 写了一篇很棒的有关倦怠的文章,最近引起了很多关注。

00:11:51 - Nolan Lawson

老实说,我认为那篇博文有一部分实在寻求帮助。这是我表达我自己偶然发现了这个开源的项目,起初我觉得它确实很有趣,但现在却感觉没那么有趣了。我不确定该如何恢复兴致。

00:12:05 - Saron Yitbarek

Nolan 有一份日常工作,但和大多数维护者一样,他在开源项目中投入了大量的休息时间,因为这家伙真的很在意这个项目。讽刺的是,他的部分痛苦来自于,他清楚贡献者也同样很在意这个项目。

00:12:23 - Nolan Lawson

真正使我精疲力竭的实际上只是如潮水般涌来的好心人。你真的想帮他们,真的真的很想。他们所做的只是问一个问题,他们所做的就是 —— 他们在你项目中发现了阻碍他们的 bug,或者他们所做的只是 —— 他们真的费心去下载代码并弄清楚它是如何构建的,并提供 bug 修复。他们只是希望你审查他们贡献的代码。

00:12:43 - Saron Yitbarek

像 Nolan 这样的维护者正不断地审查 PR 库,弄清每个提交将如何发挥作用。他们促使贡献者尽可能做到最好,遵守内部限制,为了能让项目达到更高的水准,用最有意义的方式做出贡献。

00:13:06

我的观点是,那些维护者有可能不是一个新贡献者所担心的混蛋。他们正努力地想去做到一切。他们甚至会花时间标注一些东西保留给新手(很多维护者都这样),以便新手有机会施展自己。

00:13:27

但到最后,PR 和提交总是非常的多。我们要如何确保这种情况不会发生呢?我们该如何为维护者创造合理的环境呢?

00:13:41

一种解决方案是 —— 像 Fedora 这样拥有强大社区的开源项目。Fedora 项目负责人 Mattew Miller 解释了项目吸引维护者和贡献者的地方。

00:13:55 - Matthew Miller

Fedora 项目中许多不光是开发,还有开发过程中所相关的一切。总体来说,IT、 CS(计算机科学)事实上都是如此。开源可能并没有足够的这类围绕开源的支持性的角色。

00:14:11 - Saron Yitbarek

那种支持实际上看起来是怎样的呢?

00:14:14 - Matthew Miller

我们拿来举例的带薪角色之一是 Fedora 项目经理,他帮着让计划按部就班进行,并且监管着人们来保证文书工作完成。让人有酬劳地来做这份工作事实上可以帮着减少官僚主义,因为他们可以把时间花在使项目成为人看懂的事情,而不只是一堆杂乱的文件。

00:14:34 - Matthew Miller

我认为,像这样的企业参与某些角色,可以赋予你无法用志愿者保证的稳定性。

00:14:43 - Saron Yitbarek

这有点让我想起了自由职业者使用的共享工作空间。那里有一个共享的接待区、共享的 WiFi 和共享的咖啡。有一个人在管理它,然后你就可以自由地做你自己的事情。

00:14:55

Matthew 告诉了我们另一个 Fedora 采取的策略。他们让你想在项目中途停下来休息一下时,可以很自然,而不是感觉一切都崩溃了。

00:15:04 - Matthew Miller

我们研究的一个问题是确保领袖角色的漂亮退场,所谓的职位并不一定是终身的委任。你可以重新申请担任角色,并且不会在一年任期后结束后,看起来像被踢出去似的。如果六个月后你想离开,你可以优雅地这样做,而不必觉得这会让人失望。我们已在努力确保人们可以没有障碍地退出。

00:15:27 - Saron Yitbarek

Matthew 认为,找到支持该开源社区的方法,而又不至于重蹈覆辙才是关键。

00:15:35 - Matthew Miller

社区几乎就像一个家庭,而不是工作场所之类的东西。在这里做出贡献很有意义,因为你不仅只在为自己或是某些薪酬或终端产品工作。而且由于共事的是你的朋友,你们一起工作能做出比单人作品更伟大的东西。

00:15:56 - Saron Yitbarek

无论是 Fedora 还是其他社区,它们都造就了一个开源贡献得以持续的世界,这个世界还值得努力让它继续变好。

00:16:10

同时,让我们回到办公桌旁,我们关注的那个贡献者刚完成了维护者要求的修改。她还没意识到,但她即将拥有第一个被接受的 PR。

00:16:24

当我们谈论诸如倦怠之类的长期工作的问题时,很容易忽视那些早期问题。每天都有很多新的贡献者加入进来。这实际上就是为什么我们需要构建可持续的社区,为所有这些开源魔术提供场地。

00:16:49

最终,我们的贡献者和维护者共同努力,推动事情向前发展。故事的最后一句话 —— 记住所有的交流都依赖于 GitHub 和 GitLab 之类的开发平台,这些平台使得我们可以聚集到一起。

00:17:09

我想深入探讨一下这些社区是如何使我们的工作成为可能的。我和 Shannon Crabill 谈过这个问题。Shannon 白天是个电子邮件开发者,但到了晚上,她正在学习前端开发。她也是一个对社区价值有第一手了解的人。

00:17:28

去年她参加了一个长达一个月的名为 Hacktoberfest 的开源活动,该活动旨在让更多的人为开源做出贡献。当时, Shannon 完全是一个开源新手。

00:17:44 - Shannon Crabill

回想起十月那时候,我感觉我没有太多工作要做,而且可能还有更多的新手,没找到需要做的东西。如果我提出一些相对容易的待办事项,他们就可以找到用于尝试和学习的突破口,并且开始习惯使用 Git 和 GitHub。

00:18:04

我认为最困难的部分,在于习惯工作流程并付诸实践。如何推送存储库?如何分享项目?如何处理 PR 和相关的东西?我帮助人们对开源做出了贡献,这事令人惊讶,感觉也确实很棒。

00:18:21 - Saron Yitbarek

真的很恐怖吗?我觉得如果你是个新手 —— 尽管你拥有存储库,也要走出自己的小世界,把自己放在社区里。现在,维护者所在的社区里出现了正在作出贡献的人,你必须和他们交谈,审查他们的代码并发表意见。这听上去是有点吓人。

00:18:42 - Shannon Crabill

我认为最初的反应是,“哦,我的天哪,这太酷了”,还有,“天哪,我让自己陷入了什么境地?”我意识到我只合并过自己的代码,合并过自己的 PR 并将其推送到自己的站点上,以及其他所有只关于自己的事情,我从没处理过别人的东西。我认为我之前尚未完成过真正意味上的合并 PR,所以我不得不把这弄清楚。总的来说,将复杂的东西简单地合并起来,仍然是我要努力熟练解决的问题。

00:19:09

这是旋风一样的感觉,“这很酷,但我不知道该怎么做。”每个人都很友好,并且我也努力保持非常友好和真诚,即使只是,“嘿,我有点不知所措。我看到了每个人提交的 PR。虽然今晚我不会找他们,但我明天会的。”人们对这种情况似乎反应良好。

00:19:26 - Saron Yitbarek

是的。当你维护一个项目时(尤其是作为一个新的开发者时),我一直想知道的是,是不是这意味着你必须是整个存储库贡献者中最聪明的人?你实际上在评估、评判并审查其他人的代码。你是否遇到过,自己懂的东西不如提交 PR 的人那么多的情况?你是如何处理的?

00:19:55 - Shannon Crabill

好问题。我认为,“噢,我需要成为有史以来最聪明最好的开发者”,这样的想法会成为障碍。我觉得自己很幸运,当我进入这个领域的时候,我没有这样想,所以我能像这样说,“让我们先开始,并且期待未来会发生什么吧。”

00:20:12

你无需成为一个有 20 年经验的高级开发人员。你只需要有一个好点子,知道如何使用相应软件,然后愿意去学习自己不知道的东西。

00:20:22

肯定有一两个 PR 为我的项目添加了一些很酷的功能,说实话,如果它们崩溃了,我真不知道该如何修复。我可能会看着代码然后想道,“是的,它崩溃了。”我不知道该怎么做才能从头构建它们。

00:20:34

我认为这就是它酷的地方。如果只有我一个人在做贡献,我可能就做了一些基本的工作,但没法像其他拥有丰富经验的人所作出的贡献一样,将项目变得那么酷。

00:20:45 - Saron Yitbarek

作为一个维护者,在使项目更易于访问,更加友好,更加易于贡献的过程中,你学到了些什么呢?

00:20:55 - Shannon Crabill

哦,确实有件我认为很有帮助,并且我希望我一开始就做的事,那就是尽可能的建立模板,以及文档、文档、文档。

00:21:07

我的确在我的 README 文件里加了很多东西,并且我认为在项目开始时有一个 README 文件确实是很重要的一步。这件事情意味着你对其他人大声说,“嘿,请查看我们的贡献指南。”我认为我制作了一个 PR 模板、一个议题模板,“单击这里查看当前议题”,这样人们才不会多次提交同样的内容。

00:21:31

我认为让项目尽可能简单,或尽可能对用户友好,这是你作为维护者需要迈出的一大步。

00:21:38 - Saron Yitbarek

绝对是这样,我经常看到 README 文件,经常听说他们有多么多么重要。我觉得在 README 文件里还可以做很多事情。归根结底,它就像是一个空白文档,告诉别人去阅读它。你应该在文档里写什么呢?你该如何构建它,来使得它真正与希望做出贡献的人产生关联呢?

00:22:00 - Shannon Crabill

我在我的 README 文件里放了很多 gif。

00:22:03 - Saron Yitbarek

很好。

00:22:05 - Shannon Crabill

我有 gif,也有链接。

00:22:07 - Saron Yitbarek

我一开始就知道 Shannon 已经认识到了合作关系的重要性。她早就知道,如果有人被邀请来协作,这项目就会变得耀眼,大家也会因此度过美好的时光。

00:22:20 - Shannon Crabill

有人用开源项目作出很棒的事情,我也认为这很有趣,而且有个有意思的项目,“嘿,我制作了这些很酷的蝙蝠,每次你单击页面的时候,它们都会随机生成。”

00:22:33 - Saron Yitbarek

我也喜欢人们做不同的事情。如果你真的很喜欢艺术性的东西,你可以做蝙蝠生成功能。如果你想让项目变得整洁,你也可以做。如果你想说,“我会坚持贡献文档,我将花时间为其他的贡献者们打造更干净,更舒适的环境”,那你也可以选择做这个。

00:22:56 - Shannon Crabill

是的。我已经说得很清楚了,无论你想贡献的是什么,都没有问题。如果你发现了一个拼写错误并且想要纠正它,很好。如果你发现某个链接损坏并且想要修复它,也很好。如果你只是想帮着注释这份代码,使得它更易于阅读和理解,那也将很有帮助。

00:23:12 - Saron Yitbarek

我认为,你在社区中获得了积极的反馈真的很棒,因为我听说过很多并不是这样美好的故事。人们在网络上并不十分友好,也不太热情善良,尤其是对我们这一些,可能会问出比他们想象中更简单问题的新手。

00:23:33

你认为,是什么使得你的社区,比起其他社区更加友好呢?

00:23:41 - Shannon Crabill

只是因为在我们社区,贡献是一件很随意的事。如果你想做出贡献,你可以,这很酷。如果你不想,那也很酷。我理解有人认为开源是一件令人恐惧的大事,你需要具备所有这些经验,并且了解所有这些复杂的语言,或是前后端以及其他的一切,才能够做出贡献。

00:24:03 - Saron Yitbarek

绝对是这样。做 Hacktoberfest,它是怎样改变了你现在对开源的想法?

00:24:11 - Shannon Crabill

它肯定对我造成了积极的影响。就像我说的,我有过很棒的经历,而且我希望每一个以某种方式参与我项目的人也能有很好的经历。这毫无疑问促使我想去尝试更多类似的事情,即使它们没有进一步的发展。现在这看起来这些项目更加平易近人了。

00:24:32 - Saron Yitbarek

真是个好消息。

00:24:34

这儿有个信息,来自数百家公司的数千人,以及一些根本没在公司工作的人,为 Linux 内核做出过贡献。这意味着基本上运行着互联网的 Linux 是由一群日常英雄在维护的。如果你渴望为开源作出第一次贡献,或许你会想了解有关 Fedora 社区的更多信息,我们有大量的资料正等着来帮助你。请查阅 redhat.com/commandlineheroes 以获得更多信息。

00:25:20 - Saron Yitbarek

快速提醒一下,这一季我们将构建我们自己的开源《代码英雄》游戏。欢迎你以对你来说合适的方式来做出贡献。快来了解如何成为其中一员吧。我们希望你可以通过 redhat.com/commandlineheroes 和我们一起开发这款游戏。

00:25:42 - Saron Yitbarek

下一集,我们将讨论残酷的达尔文式错误以及开源开发中失败的美丽之处 —— 它如何困扰我们,指导我们,并使我们变得更好。

00:25:57 - Saron Yitbarek

《代码英雄》是红帽的原创播客。你可以在 Apple Podcast、 Google Podcast 或是其他你喜欢的途径免费收听。我是 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/ready-to-commit

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

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

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

什么是《代码英雄》

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

本文是《代码英雄》系列播客第二季(2):Hello, World音频脚本。

导语:每一种新的编程语言的诞生,都是为了做一些以前无法完成的事情。如今,有非常多编程语言可以选择,但哪些才是你真正需要了解的?

本集将深入探讨编程语言的历史。我们将会了解到被称为 “神奇葛丽丝” 的天才 —— 海军少将葛丽丝·哈伯。多亏了她,开发者不再需要数学博士的学历就能使用机器代码编写程序。参与录制的还有 Jupyter 项目的 Carol Willing,她是 Python 基金会的前理事;以及《 纽约时报杂志 New York Times Magazine 》和《 连线 Wired 》的撰稿人 Clive Thompson,他最近正在撰写一本关于程序员如何思考的书。

00:00:07 - 各种语言

“你好,世界。”

00:00:12 - Saron Yitbarek**:

你好,世界。现在我们发出的是信号还是噪音?我们日日夜夜无休止地写代码,做测试工作,我们追求的事情只有一个:我们是否传递了我们的信号?

00:00:29 - 各种语言

你好。

00:00:29 - Saron Yitbarek

或者我们的信号是不是丢失了?难道我们一直在制造无意义的杂音吗?

00:00:40

我是 Saron Yitbarek,这是代码英雄第二季,来自红帽原创播客。今天的话题将在“翻译”中挖掘。这关于编程语言的故事:它们是怎么来的,如何选择其中一个语言来学习。我们将深入研究如何与机器对话。探究这些语言是如何演化的,以及我们如何用它们来让我们的工作变得更好。

00:01:08 - Sari

Daisy,daisy,来告诉我你的正确回答。

00:01:11 - Saron Yitbarek

如果你像我一样是一个开发者,你可能也经受着去精通多种语言的压力。最起码你得会 Java,更好一些得懂 Python、Go、JavaScript、Node,甚至能够用 C++ 思考。也许为了增加可信度,可能你还要熟悉古典的 COBOL。甚至你还得学点新东西,比如 Dart。实在太累了。

00:01:36

奇怪的是,我们正在讨论的计算机只讲一种语言:机器语言,以二进制形式飘过的 1 和 0。说到底,我们学习的每个语言都是殊途同归。不管有多抽象,它都是用来简化我们工作的道具。

00:02:03

这就是我希望你们记住的,故事开始了,从那一刻,那一个经典辉煌的时刻,一个女人说:“你知道么?我是人类,我不想用二进制来讨论思考,我就想用英语去编程。”

00:02:22

在今天可能看来是一个简单的概念。但曾几何时,使用人类的方式与计算机对话这个主意 —— 说轻点是一个笑话,严重点就是亵渎。

00:02:37

代码英雄第二季,将讲述成就我们基础的螺丝钉展开。这一讲的英雄是一个女主人公,如果你想要进一步了解故事,你必须知道她的经历。在此给你们隆重介绍:软件界的第一夫人。

00:02:58 - 发言人

尊敬的先生们和女士们,我非常荣幸的给你们介绍 葛丽丝·玛丽·哈伯 Grace Mary Hopper 准将,谢谢。

00:03:02 - 葛丽丝·哈伯

我曾到加拿大的圭尔夫大学演讲,那时候我必须在多伦多的机场办理入境手续。我把护照递给移民官,他打量了护照和我说:“你是在哪里工作的?”

00:03:17

然后我说,“美国海军。”

00:03:20

她再次深深的打量我一下。然后他说:“你一定是海军里最老的。”

00:03:28 - Saron Yitbarek

她就是 1985 年担任海军少将的葛丽丝·哈伯。在麻省理工学院发表了著名的演讲时,她 79 岁。即使在那时,她也是一个传奇人物。她是独立编程语言之母,实现通过编译器,用人类语言替代数学符号编程这一伟大成就的女性。

00:03:51

她获得了国家技术奖章,她去世后(1992 年),被追授国家自由勋章。以上记录纯属真实,他们称她w为“神奇葛丽丝”。

00:04:03 - Claire Evans

如果有人能够被称为天生的程序员,那么这个人一定是葛丽丝。

00:04:06 - Saron Yitbarek

这是 Claire Evans,一个科技记者和《 宽带 Broad Band 》一书的作者,而这本书讲述了科技领域的女性先锋。Evans 描绘了早期的计算机世界,在 1940 年,当葛丽丝·哈伯还是一个年轻的女孩时,她加入了美军的海军预备役部队。当时的电脑有一个小房子那么大。

00:04:25 - Claire Evans

早期的那些程序员,他们就像一个圣职者。他们是一群擅长做枯燥乏味事情的人,因为那会儿没有编译器,没有编程语言,人们是确实是一个比特一个比特地对机器编程。

00:04:42

想要改变这种现实,你真的必须是一个特别的人,而葛丽丝真的就是那种人。

00:04:49 - Saron Yitbarek

现在,她意识到让人类使用机器语言的是一种多么疯狂的限制。就像走路的时候,去告诉你身体的每个原子该怎么做。这是可能的吗?是,效率呢?不高。

00:05:06

在程序员的意图和计算机的行为之间一定有一条捷径。自从有了算盘,人类一直在将数学思维机械化。一定有一种方法可以在计算机上再次实现这一点。

00:05:19 - Claire Evans

在过去,数学家必须做出所有的步骤。所有这些枯燥的,一步一步的工作都是为了得到一个真实而有趣的答案。然后有了计算机后,它尽可能地承担了这些机械的运算。所以解放了数学家去进行高层面的、更智慧的、面向系统的思考。

00:05:39

只不过,事实并没有如此发展。有了计算机,数学家就变成了程序员。他们又一次被这些枯燥无味的编程所束缚,做着这些一点一滴的繁琐的规则导向的小计算。

00:05:53

因此,我认为,葛丽丝的期望是,她希望计算机能够辅助数学家,然后数学家就可以去更进行宏大的思考,做更伟大的事情,而不至于让他们陷入细节之中。

00:06:12 - Saron Yitbarek

葛丽丝也加入了思想家的行列。我们都知道, 帕斯卡 Pascal 在 17 世纪发明了第一台计算器。 巴比奇 Babbage 在 19 世纪发明了分析机。这些伟大的杰作是发明家们解放人类的大脑的创作。这些发明让我们处理数据的能力空前绝后。这就是葛丽丝踏入的领域,发明了所有人都认为不可能的东西。

00:06:42 - Claire Evans

我觉得,葛丽丝的想法是,人们应该用人类语言与计算机沟通。这个语言必须独立于机器的,因此不同计算机可以交互操作,这在当时是革命性的。

00:06:59

早期她称这个为 “自动化编程”,在程序员和计算机人的群体中,被认为是像太空学员一样。

00:07:12

而那些迟迟不上岸的人们被看成了尼安德特人,这在当时是计算机界的一个巨大的分歧。

00:07:21 - Saron Yitbarek

葛丽丝要说服她的上级跨越这个分歧并不容易。但她认为这是她的责任,她必须尝试。

00:07:30 - 葛丽丝·哈伯

这里总是有一条线,那条线代表了你的老板在那个时候会相信什么。当然,如果你过线了是得不到预算的。所以你对那条线有双重责任:不要踩过它,但也要不断教育你的老板,让你把这条线移得更远,这样下次你就能走得更远。

00:07:52 - Saron Yitbarek

她推动的那个未来,就是我们的现在。几乎你我依赖的每一种语言都归功于她和她的第一个编译器。因此太空学员们活了下来,尼安德特人灭亡了。

00:08:07

写代码不用数字,而是用人类风格的语言是她的观点。你敲下“执行操作 8”,或“关闭 文件 C”的精简操作,才是符合人类习惯的编程。

00:08:21 - Claire Evans

葛丽丝独特地意识到,计算将成为改变世界的事情。但是如果没有人知道如何接触并使用计算机,那么它就不会成为改变世界的事情。因此她想确保它对尽可能多的人开放,尽可能多的人可以使用。

00:08:37 - Claire Evans

这就需要编程在可理解性和可读性上做一些妥协。因此最终创造一个编程语言的目标就是给机器提供更多切入点,让它脱离这个神职,让它的开发面向大众和未来新一代。

00:08:59 - Saron Yitbarek

我想在这里打断并强调下 Claire 的说法:现在我们所已知的编程语言,都来源于科技开放的愿望。这让计算机不再是数学博士们的专属玩具,让编程开发变得更容易。

00:09:14

编译器所有工作的本质,是让程序变得更好理解,更有人性。

00:09:21

Claire 有一个猜测,为什么葛丽丝是做出改变的那个人,这与她在二战期间的工作有关。

00:09:29 - Claire Evans

她的工作是解决扫雷问题、弹道问题和海洋学问题。她用很多不同的、交叉的学科来模拟战争里的所有的暴力、混乱和现实的灾难,并将他们转化成在 Mark I 计算机上运行的程序。

00:09:45

她知道如何在语言之间去做翻译转换。我的意思不是说计算机语言,是人类语言。她知道如何倾听一个提出复杂问题的人的意见,并尝试理解问题的背景,其信息和所涉及的专业规律,然后将这些转为计算机可以理解的程序。

00:10:06

从这个角度看她如同早期的编译器。就像一个人类版本的编译器,因为她知道你必须理解他们才能满足他们的需求。

00:10:17 - Saron Yitbarek

编译器干的事情就是一个解释和理解。我觉得我们应该在学习新语言,或想知道为什么有一些东西根本不能编译的时候牢记这个理念。编译器的工作就是满足你使用生活中说的语言来编程。

00:10:32

葛丽丝知道人类一旦可以学会讲编程语言,而编译器可以将我们的意图转换为机器语言,就像为洪水打开了大门一样。

00:10:43 - Claire Evans

她知道如果计算机太孤立和太具体,就不会发展为一个产业,从而成为改变世界的力量。也就是说计算机的从业者,可以让提出问题的人跟机器直接沟通。

00:11:00

因此她真的是一个善于人类语言翻译的专家,至少我是这么想的。这使她有独一无二的机会,去思考和创建编程语言。

00:11:15 - Saron Yitbarek

葛丽丝对英文式数据处理语言的研究最终演变成了 COBOL,它在某种意味上很不错。因为它不浮华,很适合商务用途,葛丽丝·哈伯也是这样的人。

00:11:28

从某种角度看,她给了我们一个很像她的语言。像葛丽丝一样,COBOL 语言也很长寿,它现在已经 60 多了。

00:11:50

葛丽丝的编译器就像一个 巴别鱼 babelfish ,在程序员和机器之间充当翻译,不过它们翻译的都是高度概括性的语言。

00:12:03

然后,几十年之后,另一个重要的思潮在语言界兴起。想象下画面:自由软件社区在 1980 年出现,但是 Unix 的替代品 GNU 被开发出来后,却没有任何自由开放的编译器随之出现。

00:12:22

为了让 GNU 给我们提供一个真正的开源 UNIX 替代品,为了让编程语言在开源世界蓬勃发展,社区需要找来一个格蕾丝·哈伯 —— 我们需要一个开源编译器。

00:12:38

这是 Langdon White,红帽的平台架构师,来讲讲他对这个事情的理解。

00:12:45 - Langdon White

在 80 年代,你要买一个编译器很轻松就要花上上万块钱。费用是最大的问题,我没有多余的钱去给自己买编译器。再一个事实是,我必须为所有我想要的目标平台买一个对应的编译器。那个时代大部分是 Unix 平台,但是细节和风格各不相同。

00:13:06

因此你就不能买一个,你需要为不同的架构,不同的供应商购买多个编译器。

00:13:14 - Saron Yitbarek

Langdon 指出这不仅仅是成本问题,在一些情况下,对编码工作也带来了问题。

00:13:21 - Langdon White

大家都没有意识到,你如何用很特殊的方式来组织你的代码是很重要的。做嵌套 for 循环或者做嵌套 while 循环之类的事情可能是可以的,这取决于编译器。

00:13:38

因此,大家都应该明白,如果你不知道编译是如何优化你的代码的,就很难知道如何写出最优的代码。

00:13:49 - Saron Yitbarek

必须要提的是,我们需要一个免费的、可获得的、可值得信赖的编译器。这就是 GNU C 语言编译器:GCC。它横空出世在 1987 年,它是格蕾丝·哈伯的编译器革命和自由软件运动的结合。

00:14:12

它是使编译更标准化,从而让所有人可以编译别人写的代码。我们编程语言的丰富性要归功于它。

00:14:22 - Carol Willing

GCC 是开放的,可以说将编程语言推向一个更高的层次。

00:14:29 - Saron Yitbarek

这是 Jupiter 项目成员 Carol Willing,她是 Python 软件基金会的前理事。

00:14:35 - Carol Willing

人们开始意识到,专有的语言会在特定时间内被服务于一个目的,但并不能得到开发者社区的认可和热爱。因为如果你是一个开发者,你希望学习最常用的,以及未来最流行的东西。

00:14:59

我没必要去发展一种将我锁定在一种技术上的技能。我想 Python 成功的一个原因是因为它是开源的,它有非常简洁的语法。

00:15:11

它的特点就是允许人们用常见的方法,快速高效地解决问题,也允许大家合作解决问题。我想这就是好的程序和代码库的标志:如果你可以用最小的工作量完成你的工作,并且与他人分享,这是确实很棒的事情。

00:15:35 - Saron Yitbarek

这么多年过去了,GCC 逐渐的支持了 Java、C++、Ada 和 Fortran 语言,我还可以继续说说它的进步。

00:15:43 - Carol Willing

通过像 GCC 这样的通用底层接口,人们可以根据自己的特殊需求来定制语言。例如,在 Python 的世界里,有大量的库,甚至具体到科学 Python 世界里,我们有 numpy,还有 scikit-image、scikit-learn 这样的东西。

00:16:08

每个库都是为一个特定目的而工作。因此,我们也看到了生物信息学和自然语言处理之类的东西。而人们可以在一个共同的基础上,做出很多不同的事情。而且可以把它们放到编程语言或库里,使他们能够在他们特定的行业或领域中优化问题的解决。

00:16:42 - Saron Yitbarek

因此,这就是编译器技术一头撞进开源运动的结果吧?随着时间的推移,这种不同技术的碰撞,爆炸般地创造了一个新的、被社区支持的语言,大家都可以学习和完善它。

00:16:58

现在有成百上千的编程语言存活着。

00:17:03 - Carol Willing

随着开源软件越来越流行和被广泛接受,我们看到了编程语言的大量激增。现在有大量围绕着手机技术的编程语言,不同的编程语言也让游戏开发更加简单快速便捷。各种用途的语言,如 Python 和 Ruby,它们算是现代网页开发和交付网页应用和网站的基础。

00:17:34 - Saron Yitbarek

这个队伍还会继续壮大。是的,我们建造的这个巴别塔在未来会更加拥挤。但是你可以把它当作一个聚宝盆,一个语言的盛宴。下面我们将会帮你们梳理这个盛宴。

00:17:55

现在我们已经知道编程语言泛滥的原因了。但是这些对我们有什么具体的意义?我们如何选择对我们重要的语言呢?这是个大问题,因此我们找了一些人帮忙:Clive Thompson,是最好的作家之一,他能让科技世界变得更有意义。他是《连线》的专栏记者,《纽约时报》杂志的特约撰稿人,他现在正在写一本关于计算机程序员心理学的书。

00:18:24

当我们挑选我们想要学习的编程语言时,我们需要知道我们到底想要什么。

00:18:31

这是我和 Clive 反复讨论得出的结论。

00:18:35

当我作为一个开发新人第一次入手的时候,我就说:“让我选一个最好的编程语言,然后掌握并熟练运用它,不就完事了么。”

00:18:44

不过事情不会这样简单,否则为什么有那么多的编程语言呢?

00:18:49 - Clive Thompson

每个语言都有那么点它的特长。因此通常来说,有人创造一个新语言是因为现有的语言满足不了他们的需求。JavaScript 就是一个典型的例子。

00:19:03

网景公司 Netscape 曾经在 90 年代中开发了一款浏览器,所有的网站管理员想做一些更具交互性的事情。他们希望有一种方法,使其可以在网站上运行一些脚本。

00:19:16

当然这些需求都提给了网景。然后他们说:“好吧,现在我们没有可以做到这一点的办法,我们需要一个可以集成到我们浏览器的脚本语言。”

00:19:25

于是他们雇佣了 Brendan Eich,一个被认为很资深的家伙。他当时 32 岁,其他人 21 岁的样子。

00:19:32 - Saron Yitbarek

这在开发者圈里就很资深了

00:19:35 - Clive Thompson

他们给他 10 天时间开发 JavaScript。因此他真的就 10 天没有睡觉,然后疯狂地捣鼓出一个脚本语言。它看起来有点挫,有点糟,但是可以运行。它允许人们做一些简单的事情,它还有按钮,对话框,弹框和其他东西。

00:19:54

这就是造一个编程语言的例子,用来做在当时没有办法完成的事情。

00:20:01 - Saron Yitbarek

是不是很有意思。

00:20:03 - Clive Thompson

这就是为什么存在这么多编程语言,人们不断进取,去做别人做不到的事。

00:20:11 - Saron Yitbarek

这也是为什么我对开发者和编程语言之间的关系很感兴趣,我们对这些工具有很强的依赖性。为什么呢?

00:20:22 - Clive Thompson

有几个原因。一个是有时你学习你的第一个编程语言完全是一场意外,有点像你的初恋。

00:20:30

我觉得不同性格的人,也会匹配不同类型的编程语言。例如 Facebook 是用 PHP 设计的。PHP 是有点像毛球,它很不规则,它的成长断断续续,Facebook 也有点这种感觉。

00:20:49

与此相反,来自谷歌的伙计决定:“我们想要一个超高性能的语言,因为在谷歌我们的东西都高速运行着,维护着万亿级的用户吞吐。”

00:21:02

因此他们决定开发一个 Go 语言,Go 非常适合高性能计算。

00:21:08 - Saron Yitbarek

让我们深入一点。作为一个开发者,我有自己的个性,我是不是对一部分编程语言有天然的喜欢呢?或者我工作用的编程语言可能会影响我的个性?

00:21:25 - Clive Thompson

两者肯定都存在。但我确实认为当你遇到你喜欢的编程语言的时候,有一种强烈的共鸣感。你上计算机课程时学习了必修语言:他们都教 Java,有时会多教一门 JavaScript 或 Python。

00:21:46

问题是,你被强制要求,所以你学了它。但当你有选择余地时会怎么样呢?这就是你真正看到一个人的那种情感或心理风格是如何倾向于一门语言的地方,因为我和一个人谈过,他试着学了一堆 JavaScript。

00:22:03

这是个看起来有点丑的语言,它简直是花括号的噩梦。所以他试了又试,试了又试,失败了又失败。直到有一天他看到朋友在用 Python。在他看起来,这是多么的纯净和美妙的语言。因为他是个作家,而 Python 被认为是一个书写型的编程语言,缩进使一切都易于阅读。

00:22:28 - Clive Thompson

它和他一拍即合,主要在于 Python 的工作方式和外观,漂亮的排版打动了他。

00:22:39 - Saron Yitbarek

和 Clive 的交流让我意识到,有一些编程语言是硬塞给我们的。我说的是那些古老的编程语言,已经类似于拉丁语了。

00:22:53

其实我们也有很多选择,去选择适合我们个性的编程语言。如果你想知道最新的东西有哪些,你去问问开发者们周末在用什么就知道了。

00:23:05

下面是我们对话的更多内容:

00:23:08 - Clive Thompson

当我问人们:“你闲暇的时候做什么?”回答肯定是些稀奇古怪的东西。我想实际上其中一个好的,最值得称颂的开发者的特点,就是他们是富有好奇心。

00:23:22

我知道有人会说,“我要学习 Erlang了,就是为了好玩。”

00:23:26 - Saron Yitbarek

我尝试想象人们在周末开发这些项目,项目不是最重要的,他们在学习工具,编程语言才是重要的事情。这才是他们真的想要的状态。

00:23:41 - Clive Thompson

确切的说,你将看到为什么大家不停的重复迭代开发这些日历和待办事项,因为这是一个快速的学习方法。但需要指出的是,编程语言做了什么以及如何工作都与我们没关系,我只需要尽可能的构建我的东西。

00:23:56

他们想知道用那样的编程语言思考是什么感觉。是不是会感觉很轻松、刺激、游刃有余?我目前的使用的语言没这个感觉,是不是入门之后一切事情都变得简单了?

00:24:13 - Clive Thompson

很有可能你遇到一个新语言后会非常兴奋,想起来都很兴奋。

00:24:20 - Saron Yitbarek

我是一个 Ruby 从业者,作为 Ruby on Rails 开发者我非常自豪,我想大概是两年前,另一个非常著名的 Ruby 开发者,Justin Serrals 做了一个非常好的演讲,倡导编程语言从实用角度出发,没有必要那么性感。

00:24:41

他的观点是,Ruby 之所以是一个令人兴奋的编程语言的原因在于它很新,而且差不多几年前都已经得到印证了,它已经不需要更新什么了。它已经是一个稳定、成熟的编程语言了。不过因为它的成熟,开发者对它也就不那么兴奋,我们逐步把目光转移到新的花样来了。

00:25:05

从某个意义上说,很有可能我们的好奇心会扼杀了一个编程语言,或者让它变得庸俗,而这与编程语言本身的好坏没有关系。

00:25:18 - Clive Thompson

我认为这是完全正确的。事实上,你看到的开发者这个极度好奇心和自学欲望的特点,会让他们不断地寻找新鲜事物。并用这种语言去复制其他语言已经基本做得很好的东西。

00:25:37 - Saron Yitbarek

是的。

00:25:37 - Clive Thompson

就是这样,好奇心有好处,同时也是一个陷阱。

00:25:43 - Saron Yitbarek

是的,说的很好。

00:25:49

有时我们的好奇心可能是一个陷阱,但是它也是编程语言革命的动力。开发每个新编程语言的时候他们会说,“有没有别的可能?”它们出现的原因在于,开发人员想要做不一样的事情。

00:26:06

我们想要全新的表达方式。

00:26:08 - 葛丽丝·哈伯

我向你们承诺一些事情。

00:26:11 - Saron Yitbarek

我想葛丽丝·哈伯想在这儿最后讲两句。

00:26:15 - 葛丽丝·哈伯

在未来 12 个月里,你们谁要是说我们一直都是这么做的,我将会瞬间实质化在你的旁边,然后我 24 小时围绕着你。我倒是要看看我能不能引起你的注意。我们不能再相信那句话,这是很危险的。

00:26:34 - Saron Yitbarek

葛丽丝的故事和第一款编译器提醒我们,只要能可以找到表达方法,我们总有更好的办法做事情。

00:26:43

不管编程语言有多抽象,不管我们在机器的 1 和 0 高位还是低位浮动,我们都需要确保它是一个明智选择。我们选择一个语言,是让它帮助我们的想法更容易表达出来。

00:27:03

如果你想更深一步学习编程语言和和编译器,你不会很孤独,我们收集了一些很有用的文档帮你深入学习。敬请在我们节目下面留言。请查看 redhat.com/commandlineheroes

00:27:20

下一期节目,我们将关注开源贡献者的艰辛之路。那些维护者的真实奋斗生活是什么样的?我们如何提出第一个拉取请求?

00:27:32

我们将带你们简单认识开源贡献。

00:27:39

代码英雄是红帽的原创播客。你可以在苹果播客、谷歌播客以及其他可能的地方免费收听这个节目。

00:27:48

我是 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/hello-world

作者:Red Hat 选题:bestony 译者:guevaraya 校对:acyanbirdwxy

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