一位女程序员用代码把人类从地球送上了月球
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》
没有她,就没有阿姆斯特朗的一小步和人类的一大步。
玛格丽特·汉密尔顿(Margaret Hamilton)本无意提出软件的现代概念,也没想过要将人类送上月球。要知道1960年的社会并不鼓励女性从事高科技行业。那时24岁的玛格丽特数学系本科刚毕业,她计划节衣缩食3年供丈夫入读哈佛法学院,然后自己再去读数学研究生。
但是阿波罗登月计划就在那个时候启动了。玛格丽特在实验室带领一次史诗般的工程壮举,这项工程将改变人类和科技的未来。
在1960年代做职场妈妈已经是件很不寻常的事,而玛格丽特竟然还是个给太空飞船写代码的程序员。在周末或者平常的夜晚,玛格丽特会把女儿劳伦带来实验室。在俯瞰查尔斯河的办公室里,四岁的劳伦在地板上熟睡,而玛格丽特忙着编写代码——这些代码,最终都会添加到阿波罗控制舱的计算机里。
玛格丽特回忆说,“他们对我说,你怎么能离得开女儿啊?”。但是她深爱这份工作的神秘和新奇,她也很喜欢同事之间的情谊——下班后他们会在MIT的职员俱乐部一起喝点小酒,讲只有技术宅才能听懂的笑话。旁人听得一头雾水,但在实验室里,她说,“我是兄弟们的一员”。
那时的技术与工程领域也由“兄弟们”主导。跟今天科技圈少有的女码农一样,当时的玛格丽特就像是个不折不扣的异类。现在的软件开发者也该惊讶,这个“男孩俱乐部”的其中一个奠基人竟然是个女人。他们或许也该停下来想一想,这种《广告狂人》时代的性别不平等何以持续至今。
玛格丽特的事业发展渐渐上了轨道,而此刻的软件世界——由于肯尼迪在1961年发起的阿波罗登月项目——也身处巨变的边缘。玛格丽特就职于MIT的仪器实验室,在那里,她和同事一起为世界上***部便携式计算机写代码,同时也创造了计算机编程的核心理念。玛格丽特成了系统编程的专家,也在多场重要的技术争论中得到认可。“我最开始研究编程的时候,没人知道我们在干嘛。我们就像身处美国荒凉的大西部,没有这样的课程,也没有任何一个教授教这个”。玛格丽特说。
这个时候离微软的出现还有10年,离马克·安德森(Marc Andreessen,这家伙是世界上最早开发浏览器的人)发现软件正在“吞噬世界”也还有将近50年。在阿波罗计划的早期,人们并没有过多思考软件是怎么一回事。MIT航天学教授大卫·曼德尔(David Mindell)在《数字阿波罗》(Digital Apollo)一书中写道,那些记录阿波罗计划相关工程要求的文件甚至都没有提到“软件”这个词。“软件并不包括在计划里,因此也不在预算内”。反正一开始,软件并没有受到重视。
但随着阿波罗计划的推进,软件在这个任务中的重要性也明晰起来。1965年,玛格丽特开始负责“阿波罗”号计算机的飞行软件。对玛格丽特而言,这是一段激动人心的日子,整个美国都指望着她的工作成果。但是有时候压力也会让她夜里睡不着。有一次,在参加过一个深夜派对之后,玛格丽特又冲回实验室去修改一段突然想起来出错了的代码。“我总是在幻想报纸的新闻标题,它们会追问错误是如何发生的,而最终原因会指向我”。
图为1962年4月19日,玛格丽特和她的前同事。玛格丽特当时正在林肯实验室的***台AN/FSQ-7电脑上研发软件,一个雷达监测软件,用以监测敌机。图片来源:Margaret Hamilton图为1962年4月19日,玛格丽特和她的前同事。玛格丽特当时正在林肯实验室的***台AN/FSQ-7电脑上研发软件,一个雷达监测软件,用以监测敌机。图片来源:Margaret Hamilton
软件成了美国要赢登月竞赛的重要筹码。在1968年,已经有超过400人参与研发阿波罗号的软件。当然,最终人们发现软件为世界带来的远超于此。当玛格丽特和同事在为阿波罗飞船编程的时候,他们也在孵化这个未来估值4000亿美元的产业。
对玛格丽特来说,编程就像是在一沓穿孔卡片上穿孔,可以整夜整夜分批在一台模仿阿波罗登月工作的霍尼韦尔(Honeywell)大型主机上进行。玛格丽特回忆说,“我们必须在飞船起飞之前模拟各种可能发生的情况”。一旦代码确定后,就会被送往附近一家雷神公司(Raytheon)的厂房。那里有一群“擅长针线活”的妇女,她们在阿波罗项目中被称为“小小老妇人”,她们将铜线穿过磁环(穿过磁心的代表1,绕过磁心的代表0)。没有RAM,也没有磁盘驱动器;在阿波罗号上,存储器靠的就是硬接线,而且可以说是无坚不摧。
阿波罗飞行器上载着两个近乎一样的机器:一个用于登月舱——也就是登陆月球的鹰号,另一个是用于载着宇航员往返地球的操作舱。跟其他庞大的计算机不同,这些重达70磅的计算机是便携的。由MIT工程师哈尔·兰宁(Hal Laning)和玛格丽特的老板迪克·贝顿(Dick Batton)设计,这是首批使用集成电路而非晶体管的重要计算机。正如曼德尔在书中所写,这是***个由人工操作、但带有计算机控制自动驾驶技术的机载导航系统,可谓是如今喷气客机标配的导航系统的老前辈。
这个系统可以***保存超过1.2万个字节——也就是雷神公司的女孩们用铜线穿绕的环——临时存储的空间为1024个字节。“这是***次将一台重要的计算机搬到飞船上,还赋予了它极大的责任,”当时在MIT仪器实验室负责编写登月舱代码的唐·埃尔斯(Don Eyles)说,“我们证明了这是可以实现的。我们用今天看起来不可思议、超小的内存和非常缓慢的计算速度做到了这一切。”缺了这一切,尼尔·阿姆斯特朗(Neil Armstrong)不可能登上月球;而如果没有玛格丽特、埃尔斯和MIT工程师们编写的软件,计算机于此也不过是一件无用之物。
这一点在1969年的6月20号得到了充分体现。在阿波罗11号飞船即将登陆月球前的几分钟,这么关键的时刻,阿波罗计算机却开始突然不断出现错误信息。而正是接下来发生的一切为玛格丽特赢得认可,为团队成功解决了危机。错误信息的大量出现是因为计算机的过度运转,除了控制舱登陆月球表面所需的进程以外,计算机还进行着一系列不必要的计算。而在休斯顿,工程师很清楚,因为阿波罗号特有的异步处理,这部计算机会集中处理手边这项任务——让鹰号在月球登陆。玛格丽特说,当软件意识到没有足够空间去运行进程的时候,它会自己进行错误检查,然后集中处理权重***的工作。
“不可能发生的事”
一天,劳伦在摆弄MIT控制舱模拟器的显示器键盘一体机DSKY。当她在键盘上乱按的时候,一条错误信息突然出现。劳伦不知怎地启动了一个叫做P01的预运行程序,原本正在飞行状态的模拟器一下子崩溃了。虽然一般来说宇航员不会犯这样的错,但玛格丽特还是想加一段代码防止这种状况的发生。这一提议被NASA否决,“他们一遍又一遍地跟我说宇航员不会犯任何错误,他们被训练得近乎***,”玛格丽特说。她转而加了一句程序说明,所有NASA工程师和宇航员都能看到:“不要在飞行过程中按下P01”。她回忆说,“所有人都说,‘那样的事情永远都不会发生’。”
但事情的的确确发生了。时间大约在1968年的圣诞节,进入阿波罗8号飞船的第五天飞行,宇航员吉姆·洛威尔(Jim Lovell)不小心在飞行中启动了P01程序。当电话从休斯顿打来的时候,玛格丽特正在仪器实验室的2层会议室。启动P01程序导致此的导航数据全部清空,阿波罗计算机无法计算出如何返回地球。玛格丽特和MIT的程序员们需要想出一个补救的办法,必须是无错漏的***办法。在花费9小时钻研过面前8英寸厚的程序列表后,他们有了一个计划。休斯顿方面需要上传一份新的导航数据,而后一切都会顺利进行。多亏了玛格丽特,还有调皮的劳伦,阿波罗号上的宇航员才得以重返地球。
同样值得感激的是玛格丽特和她开创的工作,这些让人类认清自己在太空和地面能做些什么。而软件工程这个由玛格丽特***的概念,从人类登月到现在几乎进入人类生活的方方面面。到1970年代,玛格丽特已经超越了之前在NASA和阿波罗计划中的研究。她后来成立并领导了多家软件公司。如今她的公司汉米尔顿科技距离她开始职业生涯的地方只有几个街区远——MIT,那个至今仍***代码革命、仍然仰望星辰的地方。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
从风口消失后的乔布斯
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 本周,乔布斯逝世四年后,好莱坞再一次把他的故事搬上了银屏。上一部同题材电影出现在整整两年前,当时风头正劲的移动互联网公司 Uber 和 Snapchat 刚刚加入了独角兽的行业;而如今却是一片萧瑟,曾经的明星公司如 Evernote 和 Dropbox 纷纷陨落。 在科技行业,每个人都在繁荣时代寻找指数级的增长,但却没有发现这条法则的另一种解读——即萧条时代的指数级衰落。在这里大都是年少成名的故事,那些年轻人凭借着胆识和智慧,借着移动互联网的大潮扶摇直上;而在大潮过去,更多人将要承受自由落体带来的恐惧。他们在过去被称作英雄,在不远的将来却会成为 loser。 在寒冬来临,风口消失的今天,乔布斯的意义在哪里呢? 吉姆·柯林斯是畅销书《基业长青》的作者,他在斯坦福大学教授创业学期间跟乔布斯建立起了深厚的友谊。说到乔布斯,他曾经用 restlessness 来描述他的一生。(restlessness 这个词在中文里面并没有确切的对应词,可以解释为不安全感或者躁动不安的)柯林斯相信,不安全感远远比单纯的野心和智力更加重要,...
- 下一篇
欢迎来到2015 Twitter Flight开发者大会
【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 北京时间10月22日凌晨每年一度的Twitter开发者大会在美国旧金山召开,旨在帮助开发者们了解更多关于如何使用Twitter平台打造最***的移动应用,拓展业务。在过去几年中,Twitter的平台已演变为移动应用和数据驱动企业提供了一系列必不可少的服务。 开发者大会上,来自全球的开发者们已听到Twitter的联合创始人兼***执行官Jack Dorsey及科技和商业方面的关键***阐述Twitter是如何帮助他们的以及由: Fabric,帮助打造最***的移动应用的开发者工具平台; Embedded Tweets,可将全球会话引入您的移动应用和网站; Gnip,一个面向商业的企业应用程序接口平台,释放社会化数据力 三款产品构成的Twitter平台可以帮助企业打造***的业务。 Twitter开发者大会八大亮点 1 介绍了Fabric的八项新服务 去年十月,Fabric的发布为移动开发者们提供了可以解决稳定性、分配、收益和身份认证等问题的工具。社区中关于使用这些工具的正面回馈让我们感到十分震撼,我们也看到了移动开发...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker安装Oracle12C,快速搭建Oracle学习环境
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Red5直播服务器,属于Java语言的直播服务器
- SpringBoot2配置默认Tomcat设置,开启更多高级功能