ברברה ליסקוב: האדריכלית הראשונה של הפשטת נתונים
בשנת 1968 הפכה ברברה ליסקוב (Barbara Liskov) לאחת הנשים הראשונות בארצות הברית שקיבלו תואר דוקטור מהמחלקה למדעי המחשב. ארבעה עשורים לאחר מכן, הצהיר הפרובוסט של MIT בפני העולם כי בכל פעם שמישהו בודק יתרה בבנק באופן מקוון או מריץ חיפוש, הוא "רוכב על התנופה של מחקריה". בין שני הרגעים הללו היא בנתה את התשתית הרעיונית — הפשטת נתונים, טיפוסי נתונים מופשטים, וכלל פורמלי למתי טיפוס אחד יכול להחליף בבטחה טיפוס אחר — שמפעילה בשקט כמעט כל שפת תכנות שנכתבה מאז.
התחלה לא סבירה במחשוב
ברברה ג'יין הוברמן (Barbara Jane Huberman) נולדה ב-7 בנובמבר 1939 בלוס אנג'לס, הבכורה מבין ארבעה ילדים. היא למדה מתמטיקה עם חטיבה משנית בפיזיקה באוניברסיטת קליפורניה בברקלי, וסיימה את לימודיה ב-1961 כאחת משתי נשים בלבד בכיתתה שלמדו מתמטיקה. במקום לבחור בדרך קלה לקריירה טכנית בתקופה שכמעט לא היו כאלו לנשים, היא קיבלה עבודה כמתכנתת בחברת Mitre Corporation לפני שסטנפורד קיבלה אותה לתוכנית הצעירה שלה למדעי המחשב. עבודת הדוקטורט שלה משנת 1968 עסקה בתכנות סיומי משחק שחמט והפיקה את ה-"killer heuristic", טכניקה לגיזום חיפושים שעדיין דנים בה בתחום הבינה המלאכותית. המנחה שלה לדוקטורט היה ג'ון מקארתי (John McCarthy), ממייסדי תחום הבינה המלאכותית. היא מוכרת כאישה הראשונה בארצות הברית שקיבלה תואר דוקטור מהמחלקה למדעי המחשב.
CLU והרעיון של הפשטת נתונים
ליסקוב הצטרפה ל-MIT ב-1972 כדי להוביל את מה שהפך לקבוצת מתודולוגיית התכנות, ושם, באמצע שנות ה-70, היא עיצבה את CLU. באותה עת, רוב המתכנתים ארגנו תוכנה באופן פרוצדורלי, כשהם כותבים רצפי הוראות שטיפלו ישירות במבני נתונים והשאירו את השניים שלובים זה בזה בכל מקום. CLU הציגה "צבירים" (clusters) — מודולים עצמאיים שארזו טיפוס נתונים יחד עם הפעולות היחידות שמורשות לגשת אליו, ובכך הסתירו את הייצוג הפנימי לחלוטין משאר התוכנית. זו הייתה הפשטת נתונים, וקשה להפריז עד כמה היא עיצבה מחדש את הנדסת התוכנה: מבני המחלקות שעומדים בלב שפות כמו Java, C++, C#, ו-Ada עוקבים כולם אחר השושלת שלהם לצבירים של CLU. ליסקוב בנתה את השפה בעיקרה כטיעון, שבוצע בקוד עובד, שמערכות תוכנה גדולות יכולות להיבנות בצורה אמינה רק אם הן מחולקות לחלקים קטנים וניתנים לאימות עצמאי עם ממשקים נקיים.
Twenty questions, eight minutes on the clock, and a percentile measured against everyone who has taken it. No sign-up.
Take the IQ test →Argus, עמידות לתקלות ביזנטיות ומערכות מבוזרות
ליסקוב לא עצרה בתוכניות למכונה בודדת. בשנות ה-80 היא הובילה את הפיתוח של Argus, שפת התכנות ברמה גבוהה הראשונה שנבנתה במיוחד כדי לתמוך בחישוב מבוזר — תוכניות שרצות כהלכה גם כשהן מפוצלות בין מספר מכונות המתקשרות דרך רשת, רעיון שכיום הוא בסיסי לכל שירות ענן ויישום אינטרנט. מאוחר יותר היא פנתה לבעיה קשה עוד יותר: כיצד מערכת מבוזרת ממשיכה לתפקד כהלכה גם כאשר חלק מהמכונות המרכיבות אותה נכשלות באופן שרירותי או מתנהגות בצורה זדונית, תרחיש שמדעני מחשב מכנים "תקלה ביזנטית". הטכניקות המעשיות שהיא ותלמידיה פיתחו עבור עמידות לתקלות ביזנטיות מוטמעות כיום בתשתית ששומרת על שירותי אינטרנט רחבי היקף אמינים, ומאוחר יותר, הן עומדות בבסיסם של כמה פרוטוקולי קונצנזוס של בלוקצ'יין.
העיקרון שנושא את שמה
בהרצאת מפתח בשנת 1987, ליסקוב ניסחה את מה שיהפוך לידוע כעקרון ההחלפה של ליסקוב (Liskov substitution principle), שפורמל מאוחר יותר עם ג'נט ווינג (Jeannette Wing): אם תוכנית נכתבה כדי להשתמש באובייקטים מטיפוס נתון, היא אמורה להיות מסוגלת להשתמש באובייקטים של כל תת-טיפוס של אותו טיפוס מבלי שהתקינות של התוכנית תיפגע. זה נשמע כמעט מובן מאליו כשאומרים זאת בפשטות, וזו בדיוק הסיבה לכך שזה משנה — זה הופך אינטואיציה מעורפלת ש-"מחלקות משנה צריכות להתנהג כמו מחלקת האם שלהן" לקריטריון קפדני וניתן לבדיקה לתכנון מונחה-עצמים נכון. העיקרון הפך לאחד מחמשת עמודי התווך של "SOLID" הנלמדים כמעט אצל כל סטודנט להנדסת תוכנה, מקרה נדיר של שם של חוקר בודד שנכנס לאוצר המילים העבודה של תעשייה שלמה.
פרס טיורינג והכרה
בשנת 2008 העניק הארגון למכונות מחשוב (ACM) לליסקוב את פרס א.מ. טיורינג (A.M. Turing Award), הכבוד הגבוה ביותר במחשוב, "על תרומות ליסודות המעשיים והתיאורטיים של תכנות שפות ועיצוב מערכות, במיוחד בנוגע להפשטת נתונים, עמידות לתקלות ומחשוב מבוזר". היא הייתה האישה השנייה בלבד שזכתה בו. נשיאת MIT באותה עת, סוזן הוקפילד (Susan Hockfield), כינתה את תרומותיה "אידיאל של MIT: מחקר פורץ דרך עם יתרונות עמוקים", בעוד שהמחווה של הפרובוסט ל. רפאל רייף (L. Rafael Reif) הייתה מוחשית יותר: "בכל פעם שאתה מחליף אימייל, בודק את דף החשבון הבנקאי שלך באינטרנט או מריץ חיפוש בגוגל, אתה רוכב על התנופה של מחקריה". היא כבר קיבלה את מדליית IEEE ג'ון פון נוימן (John von Neumann) בשנת 2004; היכל התהילה הלאומי לממציאים צירף אותה בשנת 2012, ומאוחר יותר היא קיבלה את מדליית בנג'מין פרנקלין בשנת 2023. היא נותרה פרופסור של מכון MIT, התואר האקדמי הגבוה ביותר של האוניברסיטה, שהוענק לה בשנת 2008.
מדוע ברברה מכונה גאונה
המקרה של ליסקוב כגאונה הוא מקרה על הפשטה עצמה — המיומנות האינטלקטואלית הספציפית של מציאת הגבול הנכון לשרטט בתוך מערכת מסובכת כך שכל חלק יוכל להיות מובן, ומהימן, בזכות עצמו. הצבירים של CLU ועקרון ההחלפה שנושא את שמה אינם המצאות ראוותניות; הם תשובות מדויקות לבעיה שרוב המתכנתים בשנות ה-70 עדיין לא למדו לנסח בבירור, וזה חלק מהסיבה לכך ששמה נצמד לצמיתות לפתרון בתחום שלעיתים רחוקות נותן קרדיט ליחידים בצורה כזו. שפת הוועדה של פרס טיורינג — "יסודות מעשיים ותיאורטיים" — מסמנת בדיוק את זה: לא חפץ יחיד אלא דרך חשיבה על תקינות שהכלילה מעבר לשפות ועשורים. טענת הנגד הכנה היא שליסקוב עבדה בתוך מסורת מחקרית שכבר נעה לעבר מודולריות וטיפוסים מופשטים — טוני הור (Tony Hoare), ניקלאוס וירת (Niklaus Wirth) ואחרים רדפו אחרי רעיונות דומים בו-זמנית — ו-CLU עצמה מעולם לא הפכה לשפת ייצור בשימוש נרחב; השפעתה הגיעה ממקור שני, דרך השפות המאוחרות יותר שאימצו את מושגיה. הגאונות שלה, לפי העדויות, הייתה פחות המצאה טהורה מאשר בהירות בלתי רגילה: השגת ההפשטה הנכונה בדיוק לפני שמישהו אחר עשה זאת.
מורשת
הרעיונות של ליסקוב יושבים כעת בצורה בלתי נראית מתחת לתוכנה שמפעילה טלפונים, בנקים ומנועי חיפוש, ושמה שורד כקיצור — "האם זה מפר את החלפת ליסקוב?" — בתוך סקירות קוד שנערכות על ידי מהנדסים שאולי מעולם לא קראו את מאמריה. מעטים החוקרים שמשיגים את הצורה המסוימת והלא-זוהרת הזו של אלמוות: להיטמע כל כך לחלוטין בשכל הישר של תחום, עד שאנשים מפסיקים לזכור שאי פעם היה שם כלשהו שצורף לכך.