תכנות מול מציאות

שלבים הכרחיים בקישור תוכנה למציאות
תמונה של שפי
פרופסור יהושפט גבעון

בשנת 1986 פרסמו טרי וינוגרד מאוניברסיטת סטנפורד ופרננדו פלורס את ספרם "הבנת מחשבים וחשיבה: בסיס חדש לעיצוב", ובו טיעונים מנומקים להוכחת העמדה שמחשבים אינם מסוגלים להיות נבונים. חשוב לציין שווינוגרד היה אחד מאלה שהצליחו לפתח תוכנת בינה מלאכותית לפיצוח אחד הקשיים שעמדו בדרכה של הבינה המלאכותית: הבנת השפות שבני אדם מבינים היטב מגיל 4. הזכרתי אותו במאמר קודם שבו דנתי בחשיבה הבירוקרטית. בתולדות הבינה המלאכותית יש כמה גלים של הצלחות ואחת מהן הייתה התוכנה SHRDLU של וינוגרד לביצוע תרגום של היגדים בשפה רגילה הקשורה בהבנה של עולם של עצמים ממשיים פשוטים ולפעולה בו על ידי "רובוט": להניח את זה על זה ולהזיז את זה מזה. וינוגרד פיתח את התוכנה הזו במסגרת עבודת הדוקטורט שלו ב-MIT שפורסמה כדו"ח טכני AITR-235. מכיוון שהדו"ח נכתב לקהל הרגיל ולאו דווקא לאנשי מקצוע, אני ממליץ ליודעי אנגלית לאתר אותו ולקרוא אותו.

בעמודים 97-95 בספר מנסחים וינוגרד ופלורס את מה שלדעתם חייב להתבצע בבניית תוכנה שימושית כלשהי, בין שמדובר במתכנת רגיל, במנתח מערכות בניית בסיס נתונים או ב"מהנדס ידע" בניית תוכנה לפעולה מבוססת ידע בתחום כלשהו. כמוהם, אתייחס גם אני אל בונה התוכנה כאל תכנת יחיד:

שלב ראשון: אפיון ברור של תחום המשימה שלמענה נועדת התוכנה: "הגדרת עולם המשימה";

שלב שני: ניסוח של ייצוג תקף של תחום המשימה בטקסט מוגדר: "ייצוג פורמלי של עולם המשימה";

שלב שלישי: הרכבת הייצוג הפורמלי במערכת נתונים הקיימת ופועלת במחשב;

שלב רביעי: הגדרת הפרוצדורות העיקריות לביצוע המשימה במסגרת האובייקטים והפעולות הניתנות להגדרה במערכת הממוחשבת לייצוג המשימה.

וינוגרד ופלורס טענו שפרוצדורה רציונלית במרחב של עולם המשימה איננה אפשרית ללא הגדרה מפורשת וברורה של עולם המשימה, והיא תהיה יעילה רק אם הייצוג הפורמלי שייבחר יהלום כראוי ובאופן שימושי את תחום המשימה. יש כאן צורך בביצוע תקין של ארבע משימות נבדלות אך תואמות. בכל אחת מהן התכנת יכול להיכשל בהתעלמות ממרכיבים חשובים וביצירת עיוורון למשתמשים.

לדוגמה, כאשר בשלב ראשון מאפיינים את המוח כרשת של נוירונים דיגיטליים, השגיאה היא בצמצום עולם המשימה למה שמאופיין במדעי המחשב ונחקר כאוטומט סופי, שאינו מסוגל להתמודד עם המבנים הרקורסיביים של מרבית שפות אנוש. ולדוגמה, אם עולם המשימה רציף, הייצוג שלו (בשלב השני) בטקסט יהיה תמיד מוגבל ופגום. בשלב השלישי התכנת חייב לשים לב האם הייצוג הפורמלי חישובי או לא, כי לא כל ייצוג פורמלי ניתן לחישוב. בשלב הרביעי התכנת חייב לשים לב האם המערכת הממוחשבת (למשל, שפת התכנות) העומדת לרשותו, שלמה ומאפשרת ביטוי חישובי לכל הפרוצדורות העיקריות בעולם המשימה.

וינוגרד ופלורס התמקדו בהסברת שגיאות התכנתים הנובעות מההקשרים התרבותיים של עבודתם. ואני מצטט: "בכתיבת תוכנית מחשב, התכנת אחראי לאפיון תחום המשימה כאוסף של עצמים, תכונות ופעולות ולניסוח המשימה כמבנה של מטרות במונחים אלה. ברור הוא שאין כאן עניין של בחירה חופשית לגמרי. התכנת פועל במסגרת ההקשר של שפה, של תרבות, ושל הבנה מוקדמת – גם משותפת וגם אישית. התוכנה תהיה מוגבלת לנצח לפעולה בעולם הנקבע על ידי הביטוי המילולי המפורש של העצמים האפשריים, של התכונות האפשריות ושל היחסים האפשריים ביניהם. לכן, התוכנה מגלמת את העיוורון שבא יחד עם יצירת הביטוי המילולי הזה" (תרגום שלי, שם, עמ' 97).

המונח "עיוורון" נלקח ממשנתו הפילוסופית של היידגר, שלפיה כל שיטה מכילה נקודות עיוורון הגורמות לשגיאות הנובעות ממנה בהכרח. משנה פילוסופית זו סיפקה לכותבים חלק מההסברים להתנסויות הקונקרטיות שלהם במפגש של השימוש בתוכנות עם משימות מורכבות שונות. זה קרה בהתנסות של פלורס בניסיונותיו ליישם את הקיברנטיקה בכלכלה ובפוליטיקה ובהתנסות של וינוגרד במחקריו בבינה מלאכותית, שהתמקדו בעיקר בהבנה של היגדים בשפה אנושית טבעית. בעיון ביקורתי בהתנסותם התגלו כמה תופעות שלא מצאו הסבר במסגרת הבסיס המקובל לעיצוב מחשבים ותוכנה. הם לא הסתפקו בכינוי התופעות האלה "פרדוקסים". בששת הפרקים הראשונים של הספר הם הכינו את התשתית הפילוסופית הדרושה ליצירת ביסוס חדש לעיצוב מערכות תוכנה, ביסוס התואם את תובנותיהם הקונקרטיות ומסביר אותן.

מיותר לציין שלספר הזה לא הייתה השפעה כלשהי, לא על אלה שמעצבים תוכנות מסוג כלשהו, ולא על אלה שמעצבים את השימוש הפופולרי בהן. בוודאי לא על אלה המכשירים את המופקדים על חינוך ילדינו בתקווה, בת 60 השנים, שיצליחו לשפר את ההוראה או/ו הלמידה בעזרת הכלים הדיגיטליים מבלי להשקיע בהבנתם.

שיתוף ב facebook
Facebook
שיתוף ב twitter
Twitter
שיתוף ב linkedin
LinkedIn
שיתוף ב whatsapp
WhatsApp
שיתוף ב email
Email

4 תגובות

  1. בדרך כלל לא מסכימה אתך
    אבל מעריכה אותך על הדבקות שלך
    נלחם ללא ליאות תחת הדגלים שלך

  2. אתה מדבר בערך על ניתוח מערכות
    פעם מנתח מערכות היה התפקיד המרכזי בפיתוח מערכות מידע
    כיום שזנחו את הניתוח וכל מי שלמד קצת תכנות בונה מערכות בלי להכנס לעובי הקורה של התכנון ולא של הניהול מזוית הראיה של הארגון

    1. למנתח מערכות, תודה על תגובתך.
      אתה מתמקד בתכנות מנהלי. במנהל, פותחה מתודולוגיה מוצלחת מאד להתאים את התכנות למציאות המנהלית. מתודולוגיה זו מכילה את ניתוח המערכות לבניית מודל יעיל שמשקף את המשיאות בארגון נתון.

      המציאות המנהלית איננה חובקת את כל סוגי המציאות המשוועים לעזרה דומה ופלורס ווינוגרד נסחו תנאים אופרטיביים שמתודולוגיה דומה אולי תצליח לשרת בתחומים לאו דווקא מנהליים. בזה עסק המאמר. ולכן, לא רציתי לבזבז מקום יקר במאמר על ניתוח מערכות שלא הומצא לא בתכנות לשירות החינוך, לא בתיכנות לשירות המחקר המדעי, ועוד..

      שנה טובה לך ולכל יקיריך

כתיבת תגובה

האימייל לא יוצג באתר.

פרסום תגובה מהווה הסכמה לתנאי השימוש באתר.
התגובות יפורסמו לפי שיקול דעת העורך.

עשוי לעניין אותך

תמונה של רות

צדק לימודי

כיצד ניתן לצמצם פערים ולדאוג לשוויון במערכת החינוך