At roughly 4pm on July 20, 1969, mankind was just minutes away from landing on the surface of the moon. But before the astronauts began their final descent, an emergency alarm lit up. Something was overloading the computer, and threatened to abort the landing.
בערך ב 4 אחרי הצהריים ב 20 ביולי, 1969, האנושות היתה במרחק דקות מנחיתה על פני הירח. אבל לפני שהאסטרונאוטים החלו את הנחיתה הסופית שלהם, אזעקה נדלקה. משהו העמיס על המחשב, ואיים לבטל את הנחיתה.
Back on Earth, Margaret Hamilton held her breath. She'd led the team developing the pioneering in-flight software, so she knew this mission had no room for error. But the nature of this last-second emergency would soon prove her software was working exactly as planned.
על כדור הארץ, מרגרט המילטון החזיקה את נשימתה. היא הובילה את הצוות שפיתח את תוכנת הטיסה החדשנית, אז היא ידעה שלא היה מקום לטעות במשימה. אבל הטבע של הבעיה ברגע האחרון תוכיח בקרוב שהתוכנה שלה עבדה בדיוק כמתוכנן.
Born 33 years earlier in Paoli, Indiana, Hamilton had always been inquisitive. In college, she studied mathematics and philosophy, before taking a research position at the Massachusetts Institute of Technology to pay for grad school. Here, she encountered her first computer while developing software to support research into the new field of chaos theory.
היא נולדה 33 שנים לפני כן בפאולי, אינדיאנה, המילטון תמיד היתה חקרנית. במכללה, היא למדה מתמטיקה ופילוסופיה, לפני שקיבלה משרת מחקר במכון הטכנולוגי של מסצ’וסטס כדי לשלם על התואר השני שלה. פה, היא נתקלה במחשב הראשון שלה בעודה מפתחת תוכנה כדי לתמוך במחקר לתחומים חדשים של תאוריית הכאוס.
Next at MIT's Lincoln Laboratory, Hamilton developed software for America’s first air defense system to search for enemy aircraft. But when she heard that renowned engineer Charles Draper was looking for help sending mankind to the moon, she immediately joined his team.
אחרי זה במעבדת לינקולן ב MIT, המילטון פיתחה תוכנה למערכת ההגנה האוירית הראשונה של ארצות הברית כדי לחפש מטוסי אוייב. אבל כשהיא שמעה שהמהנדס הידוע צ'ארלס דרייפר מחפש עזרה בלשלוח אנשים לירח, היא מייד הצטרפה לצוות שלו.
NASA looked to Draper and his group of over 400 engineers to invent the first compact digital flight computer, the Apollo Guidance Computer. Using input from astronauts, this device would be responsible for guiding, navigating and controlling the spacecraft. At a time when unreliable computers filled entire rooms, the AGC needed to operate without any errors, and fit in one cubic foot of space.
נאסא באה לדרייפר ולקבוצה שלו בת 400 המהנדסים כדי להמציא את המחשב הדיגיטלי הקומפקטי הראשון, מחשב ההנחיה של אפולו. בשימוש בקלט מהאסטרונאוטים, המכשיר הזה היה אחראי להנחייה, לניווט ולשליטה על החללית. בזמן בו מחשבים לא אמינים מילאו חדרים שלמים, ה AGC היה צריך לפעול בלי שגיאות, ולהתאים לתוך 30 סנטימטרים רבועים.
Draper divided the lab into two teams, one for designing hardware and one for developing software. Hamilton led the team that built the on-board flight software for both the Command and Lunar Modules. This work, for which she coined the term “software engineering," was incredibly high stakes. Human lives were on the line, so every program had to be perfect. Margaret’s software needed to quickly detect unexpected errors and recover from them in real time.
דרייפר חילק את המעבדה לשני צוותים, אחד לתכנון החומרה ואחד לפיתוח התוכנה. המילטון הובילה את הצוות שפיתח את התוכנה גם למודול הירח וגם למודול השליטה. העבודה הזו, שלה היא טבעה את המונח “הנדסת תוכנה,” היתה בסיכונים גבוהים מאוד. חיי אדם היו על הקו, אז כל תוכנה היתה חייבת להיות מושלמת. התוכנה של מרגרט היתה צריכה לזהות במהירות טעויות לא צפויות ולהשתקם מהן בזמן אמת.
But this kind of adaptable program was difficult to build, since early software could only process jobs in a predetermined order. To solve this problem, Margaret designed her program to be “asynchronous,” meaning the software's more important jobs would interrupt less important ones. Her team assigned every task a unique priority to ensure that each job occurred in the correct order and at the right time— regardless of any surprises.
אבל סוג זה של תוכנה מותאמת היתה קשה לבניה, מאחר ותוכנות מוקדמות יכלו לעבד עבודות רק בסדר מסויים. כדי לפתור את הבעיה, מרגרט תכנתה את התוכנה שלה כ"לא סינכרונית," מה שאומר שהעבודות היותר חשובות של התוכנה היו מפריעות לפחות חשובות. הצוות שלה שייך לכל פעולה עדיפות יחודית כדי להבטיח שכל עבודה תתרחש בסדר הנכון ובזמן הנכון -- בלי קשר לשום הפתעה.
After this breakthrough, Margaret realized her software could help the astronauts work in an asynchronous environment as well. She designed Priority Displays that would interrupt astronaut’s regularly scheduled tasks to warn them of emergencies. The astronaut could then communicate with Mission Control to determine the best path forward. This marked the first time flight software communicated directly— and asynchronously— with a pilot.
אחרי פריצת הדרך הזו, מרגרט הבינה שהתוכנה שלה תוכל לעזור לעבודת האסטרונאוטים גם בסביבה לא סינכרונית. היא תכננה צגי עדיפות שיפריעו לפעילות הרגילה של אסטרונאוטים כדי להתריע להם על מקרי חרום. האסטרונאוטים יכלו לתקשר אז עם בקרת המשימה כיד לקבוע את המסלול הטוב ביותר הלאה. זה סימן את הפעם הראשונה שתוכנת טיסה תיקשרה ישירות -- ובאופן לא סינכרוני עם הטייס.
It was these fail safes that triggered the alarms just before the lunar landing. Buzz Aldrin quickly realized his mistake— he’d inadvertently flipped the rendezvous radar switch. This radar would be essential on their journey home, but here it was using up vital computational resources. Fortunately, the Apollo Guidance Computer was well equipped to manage this. During the overload, the software restart programs allowed only the highest priority jobs to be processed— including the programs necessary for landing. The Priority Displays gave the astronauts a choice— to land or not to land. With minutes to spare, Mission Control gave the order.
אלה היו הגנות האל כשל האלו שהפעילו את האזעקות ממש לפני הנחיתה על הירח. באז אולדרין הבין במהירות את הטעות שלו -- הוא הסיט בטעות את מפסק מכ"מ הפגישה. המכ"מ הזה היה חיוני במסע הביתה, אבל פה הוא השתמש במשאבי מחשוב חיוניים. למרבה המזל, מחשב ההנחיה של אפולו היה מצויד מספיק כדי להתמודד עם זה. במהלך עומס היתר, התוכנה התחילה מחדש תוכניות שאפשרו רק עם העדיפות הגבוהה ביותר להמשיך -- כולל התוכנית שהיתה דרושה לנחיתה. צגי העדיפות נתנו לאסטרונאוטים בחירה -- לנחות או לא לנחות. עם דקות בודדות להחליט, בקרת המשימה נתנה את הפקודה.
The Apollo 11 landing was about the astronauts, Mission Control, software and hardware all working together as an integrated system of systems. Hamilton’s contributions were essential to the work of engineers and scientists inspired by President John F. Kennedy’s goal to reach the Moon. And her life-saving work went far beyond Apollo 11— no bugs were ever found in the in-flight software for any crewed Apollo missions.
הנחיתה של אפולו 11 היתה קשורה לאסטרונאוטים, לבקרת המשימה, לתוכנה וחומרה שכולם עבדו יחד כמערכת משולבת של מערכות. התרומה של המילטון היתה חיונית לעבודה של מהנדסים ומדענים בהשראת המטרה של הנשיא קנדי להגיע לירח. והעבודה מצילת החיים שלה הגיע רחוק יותר מאפולו 11 -- אף באג מעולם לא התגלה בתוכנת הטיסה באף משימת אפולו.
After her work on Apollo, Hamilton founded a company that uses its unique universal systems language to create breakthroughs for systems and software. In 2003, NASA honored her achievements with the largest financial award they’d ever given to an individual. And 47 years after her software first guided astronauts to the moon, Hamilton was awarded the Presidential Medal of Freedom for changing the way we think about technology.
אחרי עבודתה באפולו, המילטון יסדה את החברה שמשתמשת בשפת התוכנה האוניברסלית שלה כדי ליצור פריצות דרך במערכות ותוכנה. ב 2003, נאסא כיבדה את ההשגים שלה במענק הכספי הגדול ביותר שהם אי פעם נתנו לאדם בודד. ו 47 שנים אחרי שהתוכנה שלה הנחתה אסטרונאוטים לראשונה לירח, הוענקה להמילטון מדליית החרות הנשיאותית על כך ששינתה את הדרך בה אנחנו חושבים על טכנולוגיה.