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

אני מאמין בניסים
האמת היא, שאני לא מבין איך קיים אפילו הייטקיסט אחד שאינו מאמין בניסים. הרי תעשייתנו היקרה היא תעשייה מלומדת בניסים, לא סתם היא נקראת תעשיית הניסים.
כל מי שחבר במגזרנו עתיר הקומבינות, הפרוססים, הבלאגן והספגטיפיקציה יודע על בשרו ומבין בקוד-קודו שאין מצב שכל העסק הזה יכול לעבוד בלי שיש פה איזה נס שמחזיק את כל התוכנה מלקרוס בכל רגע.
כל אלו שאיתרע מזלם ואינם חלק מהמגזר, חושבים לעצמם שאנחנו פה עובדים בצורה סופר מקצוענית, ושהכל מתוכנן היטב ונעשה באופן רציני, על ידי אנשים מנוסים שיודעים מה הם עושים ולמה.
אבל אנחנו, אנשי המגזר, וביתר שְׂאֵת חברי הפלג המזרח-תיכוני שלו, יודעים את האמת. בפועל הכל כאן בלאגן אחד גדול. כל ההיי-טק הזה הוא ספגטי אחד גדול.
אין בעל הקוד מכיר בניסו
יש מצב שכמה ג'וניוריות צעירות לא מאמינות לי. אבל זוהי האמת לאמיתה. הרי כל מה שמבדיל בין ג'וניורה לסניורה זה כמות הניסים שהיא עברה בקריירה שלה. כשמישהי אומרת שיש לה חמש שנות נסיון, כוונתה לחמש שנים של ניסים. הרי לא במקרה לנסיון ונס יש את אותו השורש.
אה-מה-מה? שרוב הניסים האלו הם ניסים נסתרים, קשה מאוד להבחין בהם למי שאינו מלוב"ן, כלומר מלומד בניסים. הרי עוד מראשיתו של ההיי-טק, בימי מרדכי ואסתר, כבר למדנו שלפעמים הנס הוא כל כך נסתר עד שנראה שהוא כלל לא התרחש.
שרדינ-באג
דוגמא נפלאה לתופעה הניסית שבתוככי ההייטק היא הבאג המכונֶה "שרדינ-באג", המוגדר באופן הבא: באג שאינו מתרחש עד לרגע בו מישהי קוראת את הקוד ומבינה שהקוד כלל אינו אמור לעבוד, ובאותו הרגע הקוד באמת מפסיק לעבוד. אגב, נראה שגם המן הרשע חטף שרדינ-באג כאשר אחשוורוש לא נרדם והתחיל לחפור בדוקומנטציית הזכרונות.
וכמובן, שהמסקנה מתופעות מיסטיות שכאלה היא לא לחפור יותר מדי.
פעם בכמה זמן מגיעים אלי ג'וניורים צעירים ותאבי אימפלמנטציה, ושואלים כל מיני שאלות על איך ולמה התוכנה שלנו "עובדת". וכל פעם מחדש אני נאלץ ללמדם תוכנה שבעל-פה, ואת הכלל הידוע: אין התוכנה רצה אלא כשהקוד סמוי מן העין.
עיקרון אי הוודאות
אסור בתכלית האיסור לנסות ולהבין איך לכל הרוחות כל העסק הזה עובד, למרות שברור לך שיש בפנים כמויות של באגים, וברור שזה לא אמור לרוץ. צריך לתת מקום לנס להתרחש. ברגע שמנסים לחפור בתוכנה ולהבין למה ואיך יכול להיות שזה עובד, אזי הקוד עצמו מרים את הראש, מסתכל ימינה ושמאלה, ואומר לעצמו שוואלה אבל באמת אין מצב שאני אמור לעבוד – ומיד הוא קורס לתוך ענן של באגים. ואז, גם דברים שכבר עבדו פרפקט הולכים לאיבוד.
ישנם דברים שעדיף לא לדעת איך הם עובדים. צריך לשמור על עיקרון אי הוודאות של התוכנה. עיקרון זה קובע כי:
בכל נקודה בזמן ובמרחב הפרוייקטלי לא ייתכן גם להבין איך התוכנה עובדת, וגם שהתוכנה תעבוד.
או שהקוד עובד, או שאתה מבין אותו. תן לדברים לרוץ לבד, ללא התערבות יד מקודדת.
ארור הבאג וברוך ה AI
וכל האמור עד קוד, נהיה נכון הרבה יותר בעידן הפוסט-גבינתי. עידן בו הניסים הנסתרים הפכו גלויים, וכל אדם מן השוק מייצר אפליקציות במחי פרומפט, בלי להבין כלום בתוכנה.
ובהקשר של חג הפורים, הרי נראה שמָסֵכַת ההייטקיסט נקרעה מעל פנינו. נכנסה בינה ויצא סוד. התגלה קבל עם וחברה שלמעשה גם אנחנו אף פעם לא ידענו איך הדברים עובדים, ורק עשינו את עצמנו, ובינתיים הרווחנו המון כסף.
ועכשיו נחשפה האמת. ומעתה והלאה נכנס הפרומפט ויצא קוד. השאלה רק לאן ילך הכסף.
אמנם דברים אלו עומדים בסתירה למה שכתבתי בפוסט הקודם, אבל לא ממש איכפת לי. כל הגבינות האלו ממש עושות בלאגן בתעשייתנו היקרה, ואני מרגיש ממש כאילו עד-דלא-ידע בין ארור הבאג לבין ברוך ה AI.
פורים שמח לכולם ויקויים בנו הפסוק: ונהפוך הוא, אשר ישלטו המהנדסים המה בבאגיהם.
והמהנדס החכם אומר: זה ההיי-טק בו לא מאמינים בניסים, אבל גורמים להם להתרחש.