حوالي الساعة 4 عصراً من العشرين من تموز-يوليو لعام 1969، كانت البشريّة على بُعد دقائق فقط من الهبوط على سطح القمر. ولكن قبل أن يبدأ رواد الفضاء هبوطهم الأخير، أُطلقت أجراس الإنذار. فقد كان هناك شيءٌ ما يُثقل الحاسوب، مُهدداً عملية الهبوط بأكملها.
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.
وعلى الأرض كانت مارغريت هاميلتون تحبسُ أنفاسها. إذ قادت الفريق لتطوير النظام البرمجي المميز الموجود في المركبة، وكانت تعلم أنّه لا مجال للخطأ في هذه المهمّة. ولكن طبيعة هذا الإنذار المتأخّر سيثبت قريباً أن نظامها البرمجي كان يعمل كما هو مُخطط له تماماً.
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.
وُلدت هاميلتون قبل 33 سنة في باولي، إنديانا، وقد كانت فضوليّة دوماً. ودرست في الجامعة كلاً من الرياضيات والفلسفة، وبعد ذلك شغلت منصباً في مجال الأبحاث في معهد ماساتشوستس للتكنولوجيا لكي تستطيع دفع تكاليف دراستها ما بعد الجامعية. وهنا واجهت أول حاسوب وهي تقوم بتطوير نظام برمجي لدعم البحث العلمي في المجال الجديد وهو نظرية فوضى الكون.
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.
وبعد ذلك، وفي مختبر لينكولن التابع لمعهد ماساتشوستس، قامت هاميلتون بتطوير برمجيّة لأول نظام دفاعٍ جوي أمريكي للبحث عن مطارات الأعداء. ولكنّها عندما سمعت أن المهندس المشهور تشارلز درابر يبحث عن مساعدة لإرسال البشر إلى القمر، قامت على الفور بالانضمام لفريقه.
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.
طلبت ناسا من درابر وفريقه المكوّن من أكثر من 400 مهندس أن يخترعوا أول حاسوب رقمي مدمج في المركبة، ودُعي حينها بحاسوب توجيه مركبة أبولو. باستخدام البيانات المُدخلة من قبل رواد الفضاء، فإن هذا الجهاز يعتبر مسؤولاً عن توجيه وإرشاد والتحكم بالمركبة الفضائية. وفي الوقت الذي كانت فيه الحواسيب التي لا يعتمد عليها تشغل مساحة غرف بأكملها كان يجب أن يعمل حاسوب مركبة أبولو AGC بدون أي أخطاء، وأن لا يتجاوز حجمه قدماً مكعبةً واحدةً.
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.
قام درابر بتقسيم المختبر إلى فريقين، أحدهم لتصميم الأجزاء الصلبة والآخر لتطوير النظام البرمجي. قامت هاميلتون بقيادة الفريق المسؤول عن تطوير نظام التحليق لكل من وحدة القيادة والوحدة القمرية. هذا العمل، والذي يُطلق عليه "هندسة البرمجيات"، كان يُشكّل تحدياً صعباً جداً. حيث كانت حياة بعض الأشخاص على المحك، لذا فإن كل برنامج كان يجب أن يكون مثالياً. كان على برمجية مارغريت أن تكشف الأخطاء غير المتوقعة بسرعة وتعالجها من نفس اللحظة.
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.
نجحت رحلة المركبة أبولو 11 بفضل عمل رواد الفضاء ومركز التحكّم والبرمجيات والأجزاء الصلبة للحاسوب التي عملت كنظام متكامل. كانت مساهمات مارغريت أساسية في عمل المهندسين والعلماء التي ألهمها رغبة الرئيس جون كيندي بالوصول إلى القمر. ولم يقتصر عملها المُنقذ على مركبة أبولو 11 حيث لم يُعثر على أي خطأ برمجي في برمجيتها في كل رحلات ومهام مركبة أبولو.
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.
بعد عملها على مركبة أبولو، قامت هاميلتون بإنشاء شركة تستخدم لغة الأنظمة العالمية الفريدة لتحقيق الابتكارات في الأنظمة والبرمجيات. قامت ناسا في عام 2003 بتكريم إنجازاتها بأحد أكبر الجوائز الماديّة التي منحتها لأي شخص. وبعد 47 عاماً من تطوير هذه البرمجية ومساعدتها رواد الفضاء على الوصول إلى القمر تم تكريم هاميلتون ومنحها ميدالية الحرية الرئاسيّة لتغيير طريقة تفكيرنا تجاه التكنولوجيا.
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.