«مارگارت همیلتون» مخترع مفهوم مدرن نرم‌افزار یا همان “Software”، از نخستین زنان کدنویسی بود که انسان‌ها را به ماه فرستاد. او در سال‌های دهه ۶۰ میلادی فعالیت می‌کرد، زمانی که زنان برای ورود حرفه‌ای به دنیای تکنولوژی تشویق نمی‌شدند. همیلتون ۲۴ ساله با مدرک لیسانس ریاضی توانست شغل برنامه‌نویسی در ام‌آی‌تی را آغاز کند. او قرار بود همسرش را به مدت سه سال زمانی که مشغول تحصیل در دانشکده حقوق هاروارد بود، همراهی کند. بعد از آن نوبت به او می‌رسید تا تحصیلات پیشرفته را در رشته ریاضیات ادامه دهد.

اما آنچه نقشه زندگی مارگارت را تغییر داد، «برنامه فضایی آپولو» بود. او تصمیم گرفت روی شاهکاری مهندسی کار کند. شاهکاری که قرار بود به تغییر آینده جهان انسان‌ها و دنیای دیجیتال بینجامد.
مارگارت همیلتون، ایستاده در کنار محاسبات مربوط به برنامه‌نویسی نرم‌افزار جهت‌یاب فضاپیمای آپولو ۱۱ که وی و تیم تحقیقاتی‌اش در مؤسسه فناوری ماساچوست، آن را در دهه ۱۹۷۰، برای برنامه فضایی آپولو نوشتند.

مارگارت از ابتدا و همین‌طور در سال‌های ۱۹۶۰ شخصیتی غیرمعمولی داشت. مادری که کار می‌کرد و در مسیری مثبت اما رادیکال قرار داشت. او دخترش لورن را بعدازظهرها و اواخر هفته به محل کار می‌برد. دختر چهار ساله‌ روی زمین لابراتوار دراز می‌کشید و به رودخانه «چارلز» نگاه می‌کرد در حالی که مادرش مشغول کار برنامه‌نویسی بود؛ آن هم کار روی برنامه فرمان‌دهی به «کامپیوتر آپولو».

مارگارت می‌گوید مردم همیشه از من می‌پرسیدند: «چطور دخترت را تنها می‌گذاری؟ چطور این کار را می‌کنی؟» اما او عاشق کار محرمانه و جدیدش بود تا آن را به انجام برساند، طوری که گیگ‌های ام‌آی‌تی درباره او جوک می‌ساختند و می‌گفتند که او در حال شاخه‌سازی “Left Minus” در کامپیوتر است.

مارگارت علاقه خاصی به نوشیدنی پس از کار در کلاب دانشکده ام‌آی‌تی داشت و مرتب به آنجا می‌رفت. بیش‌تر کسانی که از بیرون او را می‌دیدند نمی‌دانستند که مارگارت زنی در میان «گروه مردان» است.

آن زمان مشابه امروز، مردان دنیای مهندسی و تکنولوژی را قبضه کرده بودند. همیلتون یک استثنا بود. حتی شاید برای برنامه‌نویسان امروزی عجیب باشد که یکی از موسسان «کلوب پسرانه» دنیای تک، یک مادر بود. همین موضوع روشن می‌کند که چرا نابرابری جنسیتی دوران «مد من»۲ تا زمان فعلی ادامه پیدا کرده است.

مارگارت همیلتون درون کابین آوپولو نرم افزارها را کنترل می کند

وقتی مسیر شغلی مارگارت روی روالی معمول افتاد، دنیای نرم‌افزار به خاطر راه‌اندازی برنامه آپولو توسط جان‌.اف‌.کندی در سال ۱۹۶۱ در آستانه جهشی بزرگ بود. آزمایشگاه «اینتسرومنتیشن ام‌آی‌تی» جایی بود که همیلتون در آن کار می‌کرد. همان آزمایشگاهی که او و همکارانش کد‌های اولین کامپیوتر قابل حمل را نوشتند. همیلتون در این‌باره می‌گوید:

«زمانی که وارد کار شدم، هیچ‌کس تصوری از کار نداشتم. مثل غرب وحشی بود. درس دانشگاهی درباره کارمان نبود و ما هم آموزشی ندیده بودیم.»

این اتفاقات یک دهه پیش از پیدایش مایکروسافت و تقریبا ۵۰ سال پیش از پیش‌بینی معروف مارک اندرسون (موسس شرکت نت‌اسکیپ و سازنده موزاییک یا همان مرورگر وب) رخ داده بود. آن زمان دنیا تصور و ایده‌ای از جهان کامپیوتر نداشت. حتی پرونده اولیه‌ای که درباره ملزومات مهندسی ماموریت آپولو بود از واژه «نرم‌افزار» استفاده نکرده بود. نکته‌ای که دیوید میندل، استاد هوانوردی دانشگاه ام‌آی‌تی در کتاب «آپولوی دیجیتال» به آن اشاره کرده است:

«نرم‌افزار در برنامه قرار داده نشده بود و حتی در کاغذهای بودجه هم نامی از آن نیامده بود!»

مارگارت همیلتون

زمانی که پروژه آپولو فاش شد، اهمیت و ارزش نرم‌افزار هدایت‌گر آن برای همگان مشخص شد. مارگارت در سال ۱۹۶۵ مسئول نرم‌افزار پردازنده پرواز کامپیوترهای آپولو شد. اتفاقی هیجان‌انگیز که آمریکا وابسته به آن بود. فشار کاری باعث شب‌بیداری‌های همیلتون شده بود. او یک بار بعد از مهمونی خیلی دیر وقت به آزمایشگاه رفت تا کد ناقصی را که نوشته بود تصحیح کند. ترس از اشتباه آن‌قدر برایش جدی بود که مارگارت درباره‌اش می‌گوید:

«همیشه تصور تیترهای روزنامه را می‌کردم که درباره اشتباه پیش آمده نوشته‌اند و پیکان تقصیر را به سمت من گرفته‌اند.»

تا میانه سال ۱۹۶۸ بیش از چهارصد نفر روی نرم‌افزار آپولو کار می‌کردند، نرم‌افزاری که قرار بود آمریکا را برنده رقابت سفر به ماه کند. همان‌طور که بعد‌ها معلوم شد این نرم‌افزار به دنیا و نه فقط آمریکا کمک کرد. کار همیلتون و همکارانش بر روی این برنامه داشت صنعت چهارصد میلیارد دلاری فضانوردی را تغییر می‌داد.

باز آلدرین بر ماه. عکس توسط نیل آرمسترانگ گرفته شده‌است. (آرمسترانگ در انعکاس شیشه کلاهخود دیده می‌شود)

برنامه‌نویسی برای مارگارت، سوراخ کردن متمادی کارت‌های پانچی بود که شبانه در دسته‌های بزرگ روی غول پردازنده مرکزی شرکت “Honeywell” پردازش می‌شدند تا کار آپولوی کاوش‌گر را شبیه‌سازی کنند. همیلتون آن روزها را این‌گونه به خاطر می‌آورد: «ما مجبور بودیم همه چیز را پیش از پرواز شبیه‌سازی کنیم.»

وقتی که کد خوب کار می‌کرد به مرکز رایتون منتقل می‌شد. در آنجا گروهی از زنان مشهور به «زنان کوچک کهنسال» سیم‌های مسی را از طریق حلقه‌های مغناطیسی رد می‌کردند. (در اینجا سیمی که از هسته رد می‌شد «۱» و سیمی که در اطراف هسته قرار می‌گرفت «۰» بود.)

مشخصات برنامه نوشته شده برای آپولو

حافظه کامپیوتر آپولو به شدت قوی، فناناپذیر و متصل بود. سفینه آپولو دو ماشین تقریبا مشابه را حمل می‌کرد: اولی «ماژول ماه» بود که روی ماه می‌نشست و دیگری «ماژول فرمان» بود که فضانوردان را از زمین به ماه می‌برد و برمی‌گرداند. این کامپیوتر تقریبا ۳۲ کیلویی قابل جابجایی بود. در این کامپیوتر که توسط مهندسان ام‌آی‌تی مفهوم‌سازی شده بود به جای ترانزیتورها از مدارهای مجتمع استفاده می‌شد. میندل می‌گوید که این یکی از اولین سیستم‌های هدایت‌گر پردازنده کامپیوتری بود که توسط انسان طراحی شده بود. سیستم کنترل پرواز هواگرد تکنولوژی خودکار داشت. همان سیستمی که در مسیردهی کامپیوترها پیش‌رو است و در حال حاضر به شکل استاندارد در هواپیماهای جت به کار می‌رود.

برای مطالعه بیشتر:

برانسون، کارآفرینی که با موسیقی به فضا رفت

جف بزوس، خالق آمازونی

این سیستم بیش از ۱۲ هزار کلمه کامپیوتری را در حافظه دراز مدت ذخیره می‌کرد. تقریبا ۱۰۲۴ کلمه نیز در حافظه کوتاه مدت و قابل حذف قرار گرفته بود. داون آیلز از مهندسین ام‌آی‌تی می‌گوید: «این اولین‌بار بود که کامپیوتری بسیار مهم در سفینه فضایی قرار می‌گرفت و مسئولیتی سنگین را به انجام می‌رساند.» او با شوق بیش‌تر اضافه می‌کند: «ما نشان دادیم که می‌توان انجامش داد. آن هم در دوره‌ای که سرعت کامپیوترها بسیار پایین بود و حافظه کامپیوتری کوچکی در اختیار داشتیم.» بدون کار مهندسان ام‌آی‌تی، نیل آرمسترانگ نمی‌توانست به ماه سفر کند. و بدون نرم‌افزاری که آیلز، همیلتون و تیم مهندسان ام‌آی‌تی ساختند این سفیته هیچ بود.


در ماه ژوئیه سال ۱۹۶۹، دقایقی پیش از نشستن «آپولو ۱۱» روی دریای آسایش (یکی از دریاوارهای ماه) اهمیت برنامه نوشته شده مشخص شد. «آپولو ۱۱» پیش از فرود و در مرحله‌ای حساس چندین خطا را تجربه کرد. اما نهایتا این توضیحات تکنیکی همیلتون و دیگران بود که مشکل پیش آمده را رفع کرد. پیام‌های خطا به این خاطر ظاهر شده بود که کامپیوتر با حجم بالای دستورهای کاری مواجه بود. سیستم در حال انجام محاسبات پیچیده‌ای بود که بیش‌تر آن‌ها برای نشاندن ماژول روی سطح ماه به کار می‌آمد. اما مهندسان در هیوستون می‌دانستند که به دلیل سیستم پردازش ناهمزمان آپولو، کامپیوتر تنها روی کاری که در حال انجام آن است تمرکز خواهد کرد که همان نشاندن سفینه بر روی دریای آسایش ماه بود. همیلتون می‌گوید زمانی که نرم‌افزار پی برد که توانایی کافی برای انجام تمام کارها را ندارد، خطاهای بیرون آمده را شناسایی و روی کاری که اولویت داشت تمرکز کرد.

اتفاقی که هرگز نمی‌افتد

روزی لورن، دختر چهار ساله همیلتون در حال بازی با نمایش‌گر شبیه‌ساز ماژول فرمان و صفحه کلید آن به نام  “DSKY” بود. در حالی که کیبورد را بالا و پایین می‌کرد، خطایی ظاهر شد. لورن شبیه‌ساز را با فرمان برنامه‌ای به نام “Po1” خراب کرد، در حالی که شبیه‌ساز در اواسط برنامه پرواز آزمایشی بود. دلیلی وجود نداشت که فضانوردان هم چنین خطایی را مرتکب شوند اما همیلتون می‌خواست کدی اضافه کند تا از بروز هر مشکلی جلوگیری کند. اما ناسا ایده‌اش را رد کرد. همیلتون می‌گوید: «بارها شنیدم که فضانوردان خطایی نمی‌کنند. آن‌ها یاد گرفته‌اند بی‌نقص باشند.» مارگارت به جای آن یک یادداشت نوشت که به مدارک اضافه می‌شد و برای مهندسان ناسا و فضانوردان قابل دسترس بود.

همه به همیلتون می‌گفتند این مشکل هیچ‌گاه روی نمی‌دهد و خیالش راحت باشد اما روی داد. نزدیک کریسمس ۱۹۶۸، پنج روز پیش از پرواز تاریخی «آپولو ۸» که فضانوردان را برای اولین‌بار به دور ماه گرداند این مشکل پیش آمد. «جیم لول» غیرعمدی “Po1” را زد. همیلتون همان موقع در طبقه دوم «لابراتوار اینسترومنتیشن» بود. تماسی از طرف هیوستون آمد که استفاده از “Po1”  تمام داده‌های جهت‌یابی را که لول جمع‌آوری کرده بود از بین برده است. بدون داده‌ها کامپیوتر آپولو قادر نبود مسیر بازگشت فضانوردان به خانه را پیدا کند. همیلتون و کدنویس‌های ام‌آی‌تی باید راه‌حلی می‌یافتند. بعد از ۹ ساعت بررسی لیستی به ضخامت ۸ اینچ برنامه، راه‌حل را یافتند. هیوستون داده‌های جهت‌یابی جدیدی بارگذاری کرد. همه چیز به خاطر تلاش مارگارت و پیش دستی لورن حل شد و فضانوردان به خانه بازگشتند.

به خاطر دستاوردها و کار مارگارت، قابلیت‌های انسان و آنچه می‌تواند انجام دهد نه تنها در فضا که بر روی زمین تغییر پیدا کرد. «مهندسی نرم‌افزار» که او آن را پایه‌گذاری کرد، صرفا در سفر انسان به ماه کاربرد نداشت. این مفهوم برای بسیاری از کارهای آتی انسان‌ به کار آمد.

مارگارت در دهه ۷۰ میلادی از ناسا و برنامه آپولو رفت. او تصمیم داشت کمپانی‌های نرم‌افزار جدیدی راه‌اندازی کند. او امروز شرکت خودش به نام «تکنولوژی‌های همیلتون» را دارد که تنها چند خیابان از ام‌آی‌تی فاصله دارد. همان‌جایی که مسیر شغلی‌اش و خط‌‌ دهی به انقلاب کدنویسی آغاز شد.