就是她,写出了让阿波罗成功登陆月球的代码!

jopen 10年前

英文原文:Margaret Hamilton, the Engineer Who Took the Apollo to the Moon

台版由 Sam Chen 译,博客园做了二次编译。

去年底  JD (@nevesytrof )在 推ter 上分享了这张照片,爆红网络。这是一张 1969 年拍摄的照片,这位是数学与计算机科学先锋—— Margaret Hamilton,旁边的一大叠则是阿波罗 11 号所必要的软件清单。阿姆斯壮他们能在月球上踏出人类的一大步,全都要感谢她所作出的贡献。

在她的照片爆红 推ter 后,我们采访了这位征服了阿波罗 11 号任务代码的计算机女科学家 Hamilton

就是她,写出了让阿波罗成功登陆月球的代码!

作者 Three-Fingered Fox 在《Medium》上解释道,自从曼哈顿计划发展出第一个原子弹以来,就鲜少有软件计划是由女性来主持的。文中提到,这些「少数」的女性常是被动回应技术部门的要求,但其实编码逻辑的设计以及计算都是由她们一手包办,如同 Hamilton 与其所致力的阿波罗任务。

如同我们在《Wired》去年 8 月发表的一篇文章,登月人物,是软件第一次被委托的重要任务,关键还是实时的。

当时,这个重任交到了 Margaret Hamilton 的手上。一个自学程序设计,并且当上 MIT 软件工程测试实验室主任(也就是为美国太空总署 NASA 开发电脑系统的单位)的女性。

事实上,在  Three-Fingered Fox  的文章中有所解释:许多,早期具有开创性的程序设计师都是女性,她们学习动手去做一些从未做过的事情。并且写创下了很多历史记录。我们都知道 Amazing Grace Hopper,谁写了第一个编译器,谁创造了“debug”这个词; 还有,她的一些同事发现:蛾,会让计算机无法正常工作。

  • 专访 Margaret Hamilton

1986 年,Hamilton 创立「Hamilton 科技公司」。我们试着与她联系,当电话接通时,她表示很惊讶。一家西班牙报社会因为一张她 35 岁的照片在 推ter 爆红而打来。

「推ter?」对啊,一个社群网站,像 非死book。

「哦!我们这个年代的人不爱用那些社交媒体」 虽然听起来让人惊奇,但 Hamilton 还是很乐意接受我们的访问,并希望我们用e-mail 把问题发送过去。

Q:你对于这张照片「网路爆红」应该相当诧异吧?你喜欢这个感觉吗?

A:只要人们是说的是好话那就好啊!

Q:你说不使用社交网络,那你觉得人们用这样的方式来对你所做的贡献表示兴趣,你有怎么样的看法?

A:有人注意到你所付出的,当然是件好事啰!

Q:这张照片是在阿波罗计划期间拍摄的吗?是何时呢?是谁为你拍下的?

以下是引用自 MIT Draper 实验室对这张照片的描述:

「1969 年(阿波罗 11 号期间),由 Draper 实验室摄影师所拍摄。Margaret 站在一叠由她所主导之 LM 及 CM 太空船舱内软件清单旁」

Q:当时与现在的编码技巧一定相当不同了?

A:对,也不太对。事实上,在这个领域有一些东西变得更进步了,但有一些则反而退步了,还有一些是在原地踏步。

Q:在人类第一次登陆月球计划中工作,是什么样的感觉啊?

A:我在阿波罗所有真人驾驶的计划中,以及几个无人火箭计划中工作过。当然,阿波罗 11 号是最令人兴奋的,也是整个阿波罗计划最值得纪念的。

就是她,写出了让阿波罗成功登陆月球的代码!

Q:阿波罗 11 号如果少了你所开发的软件就无法登月,这个软件主要的作用是什么?

A:你指的是阿波罗 11 号登陆时的 1201/1202 号警报吗?以下是我对于这个问题及解决方式的解说。同时也是《Datamation》杂志在 1971 年3/1 所刊出的内容:

「因为核对手册上的一个错误,集合雷达的开关被放置在错误的位置。因此造成了它传送了错误的讯号给电脑,结果使得电脑在接收到许多额外的错误信号的状况下,仍然执行所有登陆的正常工作,而这些错误信号的解读就花了 15% 的时间。

幸好,当时写的软件能分辨执行外代码的状况。所以电脑会发出警告,会告诉宇航员:『因为其他程序的执行要求,超载了我能执行的程序量。所以,我现在只能先执行我觉得优先的程序,比如:登陆相关的程序。』

事实上,这个程序当初的设计可不仅仅是分辨发生错误的状况。一个完整系列的恢复程序也在这个软件中。这种情况下,软件所做出的行动是删除优先级较低的程序,且重新建立重要的执行程序,如果当初电脑没有辨识出这个问题而进行复原的话,我想这场登月行动不会如此成功。」

Q:你是在这段期间发明了「软件工程」一词吗?

A:软件在这个计划的初期还被当作呀呀学步的孩子一般对待,完全不像其他工程学科;例如:像硬件工程那样的受到重视。在大家的眼光中他就像是艺术、魔术一般,而不是一门科学。

我一直以来都坚信:这项发明流淌着艺术与科学的血液。虽然,当时很少有人是这么想的。因此,我致力于为软件以及那些发明者争取应有的正统性与尊重,所以我开始使用「软件工程」这样的字眼来将之与硬件还有其他工程学类做出区别。

当我第一次使用这样的语词时,大家都觉得有些好笑,甚至有很长一段时间被当作笑话。他们取笑我极端的想法。但最终,软件学科确实得到了应有的尊重!

Q:你认为你为了这个计划所作出的贡献已经受到世人足够的赞扬了吗?

A:时间会证明一切。我希望,我们能从这个计划中所学到的解决方案可以用在更大规模的计划上。

Q:你觉得 60 年代对于一个女性成为一个工程师或科学家会是当困难吗?现今的状况有改善吗?

A:我想还是要看这位女性是怎么样的一个人、她为谁工作、以及所处的特定的组织文化是什么样的。大体上来讲,过去有些事是较困难,但现今也有较困难的事。

赫然回想,有的事情之所以能被接受,是因为人们不知道如何让它变得更好,或许人们对它也不是很了解。有时候,我们回头看一些事情也会感到震惊或者怪异。直到现在,我们仍然在做许多无知的行为。比如说:女性的工资比男性的要低。

Q:有更多的女性投入到电脑科学领域或其他分支机构工作吗?你的同事当初怎么和你相处?与现今有何不同?

A:当时投入电脑科学的女性,通常都会被限制在较低的职位。

阿波罗计划这个案例中,我与同事如朋友一般并肩面对困难的问题。我们主要还是专注在工作上而不管性别上的区分。对于一个人的称呼通常是:「二楼那个」、「硬体部门那个家伙」、「资料分析那个人」、「操作系统高手」等等。

Q:你曾在其他NASA 的计划下工作?

A:我在所有的阿波罗载人任务和阿波罗无人驾驶的任务中工作。也有太空实验室的内部软件、以及太空梭的初始系统软件等等。

Q:你最喜欢工作的哪一部分?

A:不间断的挑战以及那些充满创意的同事。

Q:你在 1986 年创立了自己的公司。为何会跨出这步呢?

A:为了加速科技的演进并且试着让更多人能注意到。

Q:目前正在进行的计划?

A:持续演进 USL(Universal Systems Language)及其自动化周期,建立一个更自动化的配置结构。

来自: buzzorange.com