尊敬的用户您好,这是来自FT中文网的温馨提示:如您对更多FT中文网的内容感兴趣,请在苹果应用商店或谷歌应用市场搜索“FT中文网”,下载FT中文网的官方应用。
At Christmas 1968 the crew of Apollo 8, the first astronauts to orbit the Moon, faced a computer crisis. The data needed to get them back to Earth had disappeared from their onboard navigation system.
1968年圣诞节期间,阿波罗8号(Apollo 8)飞船的乘组人员遭遇了计算机故障危机。他们是首批绕月飞行的宇航员,而让他们返回地球所需的数据已从飞船上的导航系统中消失。
But Margaret Hamilton, who led software development for the Apollo guidance computer, came to the rescue. She knew what had gone wrong because her four-year-old daughter Lauren had triggered the same error while playing with a flight simulator in her lab at the Massachusetts Institute of Technology. Like little Lauren, Apollo 8 astronaut Jim Lovell mistakenly activated a programme not designed for use in flight.
但曾负责阿波罗(Apollo)制导计算机软件开发的玛格丽特•汉密尔顿(Margaret Hamilton)及时化解了危机。她知道问题出在哪里,因为她四岁的女儿劳伦曾在麻省理工学院(Massachusetts Institute of Technology, MIT)的实验室里玩飞行模拟器时触发过同样的错误。和小劳伦一样,阿波罗8号宇航员吉姆•洛弗尔(Jim Lovell)也误启动了一个并非为飞行期间使用而设计的程序。
Hamilton, who has died aged 90, guided Nasa controllers to correct what she called the “Lauren bug”. She later recalled that Nasa could have avoided the emergency by heeding her advice, but, as she told the US Computer History Museum in 2017, the agency resisted doing so “because they were worried about extra code — and astronauts never, ever make a mistake”. The bug was immediately fixed for subsequent missions.
享年90岁的汉密尔顿曾指导美国国家航空航天局(Nasa)的控制人员修正她称为“劳伦漏洞”的问题。她后来回忆说,如果美国国家航空航天局听从她的建议,本可避免这场紧急情况。她在2017年接受美国计算机历史博物馆采访时表示,该机构之所以不采纳建议,是“因为他们担心增加额外代码——而宇航员永远、永远不会犯错”。此后任务中,这一漏洞立即得到修复。


“To say Margaret Hamilton was a pioneer — to say she was ahead of her time — would be a dramatic understatement,” said Olivier de Weck, Apollo programme professor of astronautics at MIT.
麻省理工学院阿波罗项目航天学教授奥利维尔•德韦克(Olivier de Weck)说:“称玛格丽特•汉密尔顿是一位先驱——说她超越了自己的时代——都严重低估了她。”
“She was a software engineer at a time when that field was in its infancy, and she not only developed advanced code herself but also led a team in using that nascent technology to develop one of the most complex systems humanity had ever achieved,” de Weck added.
德韦克补充说:“当时,软件工程尚处于起步阶段。她不仅亲自编写先进的代码,还带领团队运用这项新兴技术,开发出人类当时实现过的最复杂系统之一。”
She went on to found and run two research-oriented companies, Higher Order Software in 1976 and Hamilton Technologies in 1986, which specialised in developing computer systems with error prevention as a priority.
此后,她创立并经营了两家以研究为导向的公司:1976年创立的Higher Order Software和1986年创立的汉密尔顿技术有限公司(Hamilton Technologies)。这两家公司专注于开发把防错放在首位的计算机系统。
Margaret Heafield was born in 1936 in Paoli, Indiana, the daughter of a schoolteacher and a professor. She grew up in the Midwest and studied maths at the University of Michigan and Earlham College. She married James Cox Hamilton, a fellow student at Earlham, after graduating in 1958.
玛格丽特•希菲尔德(Margaret Heafield)1936年出生于印第安纳州帕奥利,父母分别是一名学校教师和一名教授。她在美国中西部长大,曾就读于密歇根大学(University of Michigan)和厄勒姆学院(Earlham College),学习数学。1958年毕业后,她与厄勒姆学院的同学詹姆斯•考克斯•汉密尔顿(James Cox Hamilton)结婚。
In 1959 she joined the MIT lab of renowned meteorology professor Edward Lorenz. Hamilton helped Lorenz to simulate and predict the weather, learning the essentials of programming on the job. Their research laid the foundations for Lorenz to develop his “chaos theory”, including the famous “butterfly effect” in which a tiny change in starting conditions triggers a huge divergence of outcomes in a non-linear system such as the atmosphere.
1959年,她加入了麻省理工学院著名气象学教授爱德华•洛伦茨(Edward Lorenz)的实验室。汉密尔顿协助洛伦茨模拟和预测天气,并在工作中学习了编程的基本知识。他们的研究为洛伦茨后来发展“混沌理论”奠定了基础,其中包括著名的“蝴蝶效应”:在大气等非线性系统中,初始条件的微小变化会导致结果出现巨大差异。
In 1961 Hamilton transferred to an MIT team working on software for Sage, the first computerised US air defence system. She joined the Apollo programme in 1965 at the MIT Instrumentation Lab, which had won a Nasa contract. By 1968 she had been promoted to lead the team programming the onboard guidance computers that the astronauts used to navigate in space.
1961年,汉密尔顿调入麻省理工学院一个团队,参与为Sage开发软件。Sage是美国首个计算机化防空系统。1965年,她加入阿波罗计划,在获得美国国家航空航天局合同的麻省理工学院仪表实验室(MIT Instrumentation Lab)工作。到1968年,她已升任团队负责人,带领团队为宇航员用于在太空中导航的飞船制导计算机编程。


“The programmers . . . would write things by hand on coding sheets,” she later recalled. “Then we would give them to keypunchers who would punch them [on data cards].” A widely reproduced photograph showed Hamilton standing next to a pile of coding paper that reached as high as her head.
她后来回忆说:“程序员……会在编码纸上手写代码,然后我们把纸交给穿孔员,由他们把代码打到数据卡上。”一张广为流传的照片显示,汉密尔顿站在一摞编码纸旁,纸堆高及她的头部。
In July 1969, when the Apollo 11 mission was minutes away from the first manned landing on the Moon, the onboard computer flashed code 1201 and 1202 alarms. They indicated an overload that might interfere with the complex touchdown sequence.
1969年7月,阿波罗11号(Apollo 11)任务即将首次载人登月,距离着陆仅有几分钟时,机载计算机闪烁显示1201和1202代码警报。这些警报表明系统过载,可能会干扰复杂的着陆程序。
Fortunately Hamilton and colleagues had engineered the software to dump non-essential background tasks under those circumstances and prioritise procedures needed for the landing. Nasa controllers in Houston trusted the software, so they decided not to abort the mission, allowing Neil Armstrong and Buzz Aldrin to touch down safely in their Eagle module.
幸运的是,汉密尔顿及其同事设计的软件能够在这种情况下终止非必要的后台任务,并优先处理着陆所需的程序。美国国家航空航天局休斯顿控制中心的控制人员信任这套软件,因此决定不终止任务,让阿姆斯特朗(Neil Armstrong)和巴兹•奥尔德林(Buzz Aldrin)得以乘坐“鹰”号登月舱安全着陆。
Hamilton actively promoted herself as a software engineer, in an effort to correct the widespread impression at the time that programmers were “second-class citizens” in contrast to the hardware developers who were real engineers, she told the Computer History Museum. “There’s Margaret again with her software engineering,” MIT colleagues would joke — but she would live to see software achieve equal status with hardware development.
汉密尔顿积极强调自己是一名软件工程师,试图扭转当时普遍存在的一种看法:与真正的工程师——硬件开发人员——相比,程序员只是“二等公民”。她向计算机历史博物馆(Computer History Museum)表示:“麻省理工学院的同事常开玩笑说:‘玛格丽特又在讲她的软件工程了。’”但她最终亲眼见证了软件开发获得与硬件开发同等的地位。
“Hers was a career dedicated to preventing errors and what she called ‘handling the unknown’,” said MIT’s de Weck. “She personified leadership by example and established a practice of software engineering based on problem-solving and systems engineering that we all benefit from.”
麻省理工学院的奥利维尔•德韦克说:“她的职业生涯致力于防止错误,以及她所说的‘应对未知’。她以身作则,展现了领导力,并建立了一套以解决问题和系统工程为基础的软件工程实践,让我们所有人受益。”