[返回女性频道首页]·[所有跟帖]·[ 回复本帖 ] ·[热门原创] ·[繁體閱讀]·[版主管理]
把人类送上月球的女程序员:她的代码跟登月本身一般浪漫
送交者: hgao[♂☆★★★★声望勋衔19★★★★☆♂] 于 2019-07-23 16:12 已读 1206 次  

hgao的个人频道


6park.com

美国西部时间 7 月 18 日晚上,位于加州的世界最大太阳能电站——伊万帕太阳能发电站出现一段无比惊艳的画面。

日落月升之后,沙漠里 10 万多面太阳能电池板的镜面突然开始调整自己和月亮的角度。


6park.com

6park.com

随后,月光反射到这些太阳能电池板镜面上,明暗交织,当满月挂上当空之后,人们惊讶地发现,太阳能电池板反射的月光组成了一副长发女性的半身像,旁边还有一个数字和环绕的英文字母:阿波罗 11 号,Margaret Hamilton…. 6park.com

6park.com

6park.com

7 月 20 日,也是人类登月 50 周年纪念日,

50 年前,阿波罗 11 号载着人类开拓宇宙的梦想,踏上了月球之旅。

50 年后,在全世界人民将 " 我的一小步,人类的一大步 " 背到滚瓜烂熟的今天,谷歌用太阳能电池板反射月光组成肖像,致敬这位 " 阿波罗 11 号先锋 ",Margaret Hamilton。

" 她将人类送上月球,50 年后,人们用光彩夺目的月光肖像向她致敬。" 6park.com

6park.com

其实,被称为 " 阿波罗 11 号先锋 " 的 Margaret 并没有亲自踏足月球,但这位女性却是人类登月的首功之臣,只因为:

Margaret 是人类历史上第一位真正意义上的 " 软件工程师 "(这个词也是她本人发明的),所有现代程序员的祖师奶奶。

因为她,人类首次在计算机的帮助下完成登月这样的宏大工程,

更因为她,阿波罗 11 号得以在登月的最后 3 分钟力挽狂澜,及时救险,宇航员尼尔 · 阿姆斯特朗也得以代表人类迈出那 " 决定性的一大步 ".... 6park.com

6park.com

今天我们要说的,是这位登月工程幕后英雄的故事。

Margaret Hamilton 于 1936 年出生在美国印第安纳州,打小开始,Margaret 就很喜欢读书,也非常享受学习的乐趣,然而,这位天生学霸却有一个缺点,懒得背东西 ….. 6park.com

6park.com

尤其在数学方面,Margaret 对背公式和推论深恶痛绝,于是她想出了 " 偷懒 " 的办法:

" 我太懒了,不想每一个公式都去记,于是每一条数学公式我都自己推导一遍,学会了推理就不用去死记了 ….."

懒得记东西,热衷于推理演算,也为她日后成为编程界的祖师奶奶埋下了伏笔。 6park.com

6park.com

Margaret 就这样一直在 " 偷懒 " 中读完了高中。

1955 年,她顺利考入了密歇根大学,就读自己最喜欢的数学专业,原因还是曾经那一个:

不用背东西,可以偷懒 …..

读大学期间,Margaret 一边继续 " 偷懒 " 弄弄数学,一边还忙着谈恋爱。

1958 年,Margaret 本科毕业,在拿到学位后不久,立马就跟男友结婚了 ….. 6park.com

6park.com

本科毕业,Margaret 本来打算继续读研,然而为了支持丈夫修读哈佛大学的法学硕士,Margaret 决定先工作挣钱,于是就到麻省理工的实验室里当了一位编程员。

谁知道,拿到法律学位之后,丈夫却希望 Margaret 放弃麻省的编程工作,到哈佛法学院当个茶水工,因为在当时,丈夫就读了哈佛法律系的妻子,被称为 " 法学之妻 ",都可以直接进哈佛当茶水工,工作轻松愉快,还能和陪在另一半身边 ….. 6park.com

6park.com

对于丈夫的这个要求,Margaret 果断拒绝了:

" 我不会去端茶倒水的,总有一天,我会让你以我为荣,但绝不是你希望的那种方式 …."

Margaret 选择了继续留在麻省的林肯实验室,她开始学习计算机编程,当时的计算机还都是电子管的,计算能力很低,动辄占据好几个房间的机器怪兽,能够承担的程序任务也很有限,主要用于科研和军事目的。

尽管如此,Margaret 依然有着浓厚的兴趣,不用背东西,只需要逻辑推理,这正中她的下怀,Margaret 开始如饥似渴地钻研编程,很快就写出了预测天气和侦察敌人军机数量的程序。 6park.com

6park.com

在 Margaret 自己看来,只是发挥自己数学才能的小小成就,然而她的小成就却很快引起了美国宇航局 NASA 的注意,因为当时的 NASA 正在实施一项史无前例的伟大计划,急需 Margaret 这样的人才。

1965 年的一天,NASA 的几个人找到了 Margaret,神情严肃地对她说出了如下的话:

" 我们要找会编程的人,帮我们把人送到月球上去 ….."

让 Margaret 差点惊掉了下巴,半晌说不出话来,沉默了一阵,她坚定地回答:

" 好 …. 我去!" 6park.com

6park.com

等打包好行李搬到 NASA 的工作室时,Margaret 才发现:

她本人是 NASA 为 " 登月飞船导航 " 项目招来的第一个编程员,也是当时唯一一个。

按 NASA 的想法,给登月的宇宙飞船导航编程的事,以后就由她本人全权负责了 …..

Margaret 也没被场面吓到,既然接了这么大的活儿,那就开动吧,她立马开始培训人员,组建团队。

然而,刚开始启动 " 登月导航计算机 " 项目,她就发现,除了她以外,NASA 的其他人几乎都是小白 ….

在那个年代,大多数人没听说过计算机,更别提软件,硬件这些专业术语了,一开始,Margaret 费了老鼻子劲,才让她手下的一些大老爷们明白软件(software)是个什么玩意儿,有啥用途:

" 现在看来是个笑话,但在当时,真的有很多人以为软件是某种衣服或纺织品 ……" 6park.com

6park.com

当然,NASA 为 Margaret 找来的这帮人也不是吃素,也都是美国数学领域的顶尖人才,大家很快就跟上了节奏,成为 Margaret 的得力干将。

不过时间一长,Margaret 开始觉得有些力不从心了,原来,实验室里其他男同事也不比 Margaret 大多少,虽然一个个都有子女,但因为是男人,可以放心地在实验室上班,反正家里有老婆带娃。

但 Margaret 不一样,她的女儿年纪还小,一到实验室工作,就容易分心牵挂女儿。

考虑了很久,为了既不影响登月,又能照顾到女儿,Margaret 干脆每天把女儿带到实验室来上班。 6park.com

6park.com

Margaret 经常加班到很晚,有时候周末也要赶工,好在女儿终于也可以照顾得到了。

那时候,女儿就每天帮母亲假扮宇航员,坐进模拟器中,测试软件的运行和调试。 6park.com

6park.com

有一次,女儿不小心在 " 模拟着陆 " 时,提前打开了一个按钮,这让 Margaret 心中一惊,她不由得想到:

万一在实际登月运行中,宇航员也发生了类似的错误,问题可就大了 .....

这事儿给了 Margaret 灵感,她立刻向 NASA 报告,要求着手开始写程序补丁——防止宇航员提前开启某些程序的保护程序。

一开始,NASA 的其他人认为这个程序没有必要:

" 我们训练有素的宇航员绝对不会犯下几岁小女孩那样的错误!"

Margaret 和女儿 6park.com

6park.com

然而,Margaret 据理力争,她认为在太空黑暗又孤独的环境下,人犯低级错误的概率相当大,研发这个程序补丁有相当的必要。

最终 Margaret 赢得了这场争论,她主导的修正人为错误的保护程序,就这样嵌入了登月的阿波罗飞船上面 ….

这个保护性程序的实现方式就是:

制定了程序优先级调度,让程序可以随时中止优先级较低的任务,专注于高优先级任务。

举个例子:

比如有人像 Margaret 的女儿一样,按错了按钮,提前启动了不该启动的程序,那也没关系,电脑能识别出错误,并在分析之后仍然执行当下应该执行的——优先级高的任务 …… 6park.com

6park.com

谁都没有想到,Margaret 从女儿假扮宇航员,漫不经心的玩闹中得到的启发,竟然最终成为了挽救登月计划的决定性因素!

除了这个灵光乍现的神来之笔,Margaret 大多数时候的工作都是枯燥乏味的,那时候,NASA 的计算机刚刚换成集成电路板,但远没有如今的工业设计,

Margaret 的编程代码都是写在笔记本上的,然后像织毛衣一样,把硅材料和金属线圈一个个连接起来。

这个过程需要无比的细心和高度的精神集中,接了一条线,就全盘皆错。

几年下来,Margaret 写出的代码笔记本,堆起来比她本人还高 .... 6park.com

6park.com

而她装配好的第一台集成电路计算机,背后密密麻麻复杂的线路,交织成一张巨大的蜘蛛网,

这是人类最早的集成电路计算机之一,更承载了史上第一个大型软件程序——飞船登月的导航程序!

登月计算机的雏形 6park.com

6park.com

历经艰苦卓绝的 4 年,决定性的一刻终于到来了,1969 年 7 月 16 日,阿波罗 11 号宇宙飞船,在大推力火箭 " 土星 5 号 " 的推动下,伴着震天动地的轰鸣,飞向地球外的第一个天体——月球。 6park.com

6park.com

经过三天多的飞行,7 月 20 日,阿波罗 11 号终于开始向月球背面的着落点飞去,一切顺利,飞船在慢慢下降。 6park.com

6park.com

6park.com

忽然,还有 3 分钟就要着陆的时候,竟然出现了意外情况:

一名宇航员不小心在启动按钮时点错了位置 ….

宇航员阿姆斯特朗有些慌张,立刻开始报告:

"1202 程序警报!1202 程序警报!…."

机上的电脑一共发出了 5 次紧急信号,这是阿姆斯特朗等人此前从未训练遇到过的。 6park.com

6park.com

30 多万技术人员,8 年耗资 250 亿美元的工程,全人类的希望,如今都要取决于这几声关键的警报和几行计算机代码了!

所有人的心都提到了嗓子眼,还有 3 分钟就要着落了,程序竟然现在开始报错!而这一警报显示:

电脑运行过载了 ...

刹那间,指挥中心的空气仿佛凝结了,所有人都望向 Margaret,脸上带着惊慌和疑问:

程序出问题了?

降落,还是不降落?

只有 3 分钟了!

千钧一发的那一刻,Margaret 突然想到了当年,她受到女儿胡闹的启发写出来的那个保护软件:

如果有人按错了按钮,提前启动了其他程序,这个保护程序一定会站出来阻止!

现在应该是有人按错了按钮,保护程序启动阻止了并开始纠错,于是过载了。 6park.com

6park.com

但是,根绝 Margaret 之前设计的程序,电脑会执行优先级高的任务——先让飞船在月球着陆,

所以,此时该做的就是:忽略警报,继续向前!

Margaret 果断接过麦克风,坚定地喊话:

" 我们的软件程序足够聪明,相信我们,正常登陆吧!" 6park.com

6park.com

漫长的 3 分钟过去了,

阿波罗 11 号终于在月球着落。

尼尔 · 阿姆斯特朗和队友巴斯走出船舱,迈出了人类文明史上的一大步 ….. 6park.com

6park.com

那一天,全球 6 亿人见证了阿波罗 11 号飞船,在 Margaret 设计的软件下,顺利登陆月球的庆幸。

登月工程获得巨大成功,宇航员们成了万众瞩目的英雄,Margaret 却和众多幕后技术人员一道,躲在了光环背后,多年不为世人所熟知。

多年过去,随着计算机技术的发展,计算机的运算能力有了长足的进步,软硬件的搭配之下,如今顶级智能手机的运算能力都是阿波罗 11 号计算机性能的 10 万多倍 ....

但是,由 Margaret 领导编写的软件却是空前绝后的,它成功引导阿波罗飞船完成了登月任务,这是当今任何一台电脑都做不到的,因为那台性能并不强大的远古电脑上,运行着程序员祖师奶奶 Margaret 写下的代码,它无比精确,强大,可靠,一如心智无比强大的 Margaret 本人。

如今,那 14.5 万行,史无前例的,引导人类成功登月的代码早已被开源,放到了 GitHub(著名的软件源代码托管服务平台)上,供后世 " 程序猿 "" 攻城狮 " 们膜拜,瞻仰 ….. 6park.com

6park.com

2016 年,Margaret 获得了奥巴马总统给她颁发了总统自由勋章,表彰她在登月方面做出的杰出贡献。 6park.com

6park.com

一路走来,时过境迁,Margaret 始终认为,为阿波罗 11 号编写导航程序的那些年,是她人生中最美好的时光,她也最终实现了让丈夫以她为荣的誓言。

在人类阔别月球 50 年之际,程序员祖师奶奶 Margaret 的感慨依旧发人深省:

" 我们不应该就此停下探索的脚步!"

" 我们应当更加无惧无畏,哪怕有专家跳出来说’这不合理’,’那讲不通’,因为,我们在梦想变为现实的路上,除了你自己,世上没人能相信它可以实现,但是,只要你继续一往无前,梦想终究会变成现实 …." 6park.com

6park.com

喜欢hgao朋友的这个贴子的话, 请点这里投票,“赞”助支持!
[举报反馈]·[ hgao的个人频道 ]·[-->>参与评论回复]·[用户前期主贴]·[手机扫描浏览分享]·[返回女性频道首页]
帖子内容是网友自行贴上分享,如果您认为其中内容违规或者侵犯了您的权益,请与我们联系,我们核实后会第一时间删除。

所有跟帖:        ( 主贴楼主有权删除不文明回复,拉黑不受欢迎的用户 )


    用户名:密码:[--注册ID--]

    标 题:

    粗体 斜体 下划线 居中 插入图片插入图片 插入Flash插入Flash动画


         图片上传  Youtube代码器  预览辅助

    打开微信,扫一扫[Scan QR Code]
    进入内容页点击屏幕右上分享按钮

    楼主本栏目热帖推荐:

    >>>>查看更多楼主社区动态...






    [ 留园条例 ] [ 广告服务 ] [ 联系我们 ] [ 个人帐户 ] [ 版主申请 ] [ Contact us ]