על חוק התפשטות השגיאה (כן, כן – יש דבר כזה), תוצאותיו של טיול תת-קרקעי בארץ הקוד-אש והאם כבר אפשר לראות את האור בקצה הפרוגרמה? פוסט קיץ לח ודביק עם קורס מזורז במבוא לתורת השגיאות, שאין בו כלום מלבד: באג יזע ודמעות.

אפצח בבדיחה רטובה: מספרים שכאשר יצא המכרז לחפירת תעלת סואץ, התמודדו על הזכות לחפור את התעלה גם שני אחים תאילנדים. כשראה אותם המהנדס פרדיננד דה-לספס, הוא חייך ושאל אותם: איך בדיוק אתם מתכוונים לחפור את התעלה? ענה לו אחד האחים: מאוד פשוט. אני מתחיל לחפור מצד צפון, ואחי מדרום. עד שניפגש באמצע – והופ, יש תעלה.
הקשה עליו דה-לספס, ומה יקרה אם תהיה לכם טעות בחישוב ולא תפגשו? השיב לו התאילנדי בבטחון גמור: אם זה יקרה, אז אתה תקבל שתי תעלות במחיר אחד.
טיול תת-קרקעי
לח. לח ודביק. זה הקיץ במיטבו בארץ הקוד-אש. אז החלטנו לעשות טיול תת-קרקעי, בתקווה להימלט מהשמש הקופחת לה כמנהלת פיתוח ביום שחרור גירסה.
והנה, לתדהמתי כי רבה, התברר כי הבדיחה דלעיל כלל אינה בדיחה. וההוכחה בתמונה. שתי מנהרות במחיר אחד. אי-שם לפני מילניום שלם פחות או יותר, איזה ארכי-טקט טמפלרי קדמון פישל בחישובים, והופ, שתי מנהרות במחיר אחד.
אגב, זה לא עזר. הזענו כדבעי. דבקה חולצתנו לגבינו כדבוק קוד ישן שלא ניתן להסירו.
בין אולטרה-אידיוט לאינפרה-חמור
וחשבתי לעצמי, מילא הארכי-טקט הטמפלרי. הרי קוראות הפינה הנאמנות כבר ודאי יודעות, כי על דיאגרמותיו של הארכי-טקט ניתן לסמוך כקליפת השום. ואני לא יכול מלהתאפק ולחזור שוב על ציטטתו המוצלחת של המהנדס החכם משבוע שעבר, המבוססת על מילותיו הנאורות והכה-נכונות של צ'רצ'יל (שעוד ניתקל בו בהמשך הפוסט, למי שלא תתעלף מהחום עד לסיומו):
הארכי-טקטורה היא היכולת לחזות מה יקרה בעתיד, בתוספת היכולת להסביר לאחר מעשה מדוע זה לא קרה
אז זה לגבי הארכי-טקט הצלבני. אבל מה לגבי המהנדסים? אותם פשוטי העם, החופרים ברגבי התוכנה של ארץ הקוד-אש, שעמלו-עבדו בפרך בלי לראות את האור שבקצה הפרוגרמה. מה אתם סתומים? אתם לא מבינים שמשהו פה לא בסדר? עובדים כמו עדר של חמורים. כולם נמצאים על הסקאלה שבתת-הכותרת של פיסקה זו. אי שם בין האולטרה-אידיוט לאינפרה-חמור. מקודדים ובוכים. עוד לא למדתם שאסור לסמוך על כל ארכי-טקט מצוי, לא אז ובטח שלא היום.
התפשטות תרמית
אבל כיון שאני אדם חיובי מיסודו, אמנם יסוד שחבוי תחת מגדל רב-קומות של ציניות ארסית, אנסה ללמד זכות על אותם זאבי האימפלמנטציה, עדר של חמורים, שרצים לקיים את מאמרו של הארכי-טקט ללא קושיה וטענה.
זה הכל בגלל החום כאן בארץ הקוד-אש. כידוע לכל, ישנה תופעה פיסיקלית ידועה הקרויה התפשטות תרמית, או במילים פשוטות: גופים מתפשטים בחום. ויתר על כן. לרוב החומרים יש נטייה להפוך ממוצק לנוזל כשהחום עולה. ואם הוא ממשיך לעלות הם הופכים לגז ומתפוגגים לאיטם.
ותוכנתו היקרה גם היא גוף (הרי כך אנו מכנים את הקוד שבתוך כל פונקציה: ה- Function body), וגם היא מתרחבת ומתפשטת בחום. זהו-זה. זה חוק תוכנתי-פיסיקלי בלתי נמנע ואין עצה ואין תבונה כנגד הפרוסס.
ההתפשטות התרמית של הקוד היא המקור לאחד מעקרונות התכנות ההישרדותי הבסיסיים ביותר הספגטיפיקציה – הקוד תמיד הולך ומסתבך. הרי על פי החוק השני של התרמודינמיקה, בכל מערכת הבלאגן תמיד גדל. ותוכנתנו היקרה הינה מופת ודוגמא, רול-מודל אמיתי לחוק זה.
ובקיץ, ככל שהחום עולה, והתותחים היחידים שמסוגלים למנוע את הקטסטרופה נמצאים בחופש, אזי התוכנה הולכת ומסתבכת. ועם התגברות החום והלחות היא הופכת לגז של דו-תסבוכת התוכנה ומתפוגגת בענן של באגים ספורדיים.
חוק התפשטות השגיאה
עד כאן לימוד הזכות על זאבי האימפלמנטציה. גם ככה נהיה לי חם. כי בכל זאת משהו פה לא עובד. תראו את הקטע עם המנהרות של הטמפלרים. אז נכון. יש מצב שהארכי-טקט ירום-קודו עשה איזו טעות קטנטנה, שגרמה למהנדסים לעבוד פי מאה יותר קשה. או כמו שכבר כתבתי פעם בפוסט הפילוסופי "אמור זה של של באג":
צעד קטן לארכי-טקטורה, ריצת מרתון בפרוגרמה
והנה בסוף יצא מזה משהו. במחיר של תעלה אחת קיבלנו שתיים. מנהרה דו-סטרית. מה שאוהבים לקרוא אצלנו בבראנז'ה זה לא באג זה פיצ'ר.
אבל אצלנו? קדחת. זה לא באג, זה קטסטרופה. התחיל הארכי-טקט המצוי בטעות קטנה ומינורית, ובאו זאבי-האימפלמנטציה והפכו אותה לקטסטרופה של ממש.
יש מי שיהיו מופתעים מהתופעה, אך זה רק כיון שהם טרם נחשפו לעוד חוק קטנטן אבל חשוב, הלא הוא חוק התפשטות השגיאה. זהו מושג השאול מעולם המיפוי והמדידה, וגם מתורת הכאוס, אבל ביטויו ההיי-טקי המקובל הוא:
עוצמתו וחומרתו של באג תמיד ילכו ויחמירו כלל שהפרוגרמה מתקדמת
בקיצור כל החארטה הזאת על זה שזה יולי-אוגוסט, וכולם נמצאים באחד משלושה מצבים: בחופשה, מתכננים את החופשה או מתאוששים מהחופשה. כל זה לא יכול להיות תירוץ. כל ההתפשטות התרמית הזאת, היא פשוט תָּרמית.
האמת, שעוד הייתי עובר על כל האמור לעיל בשתיקה, כבאג שאין לו הופכין, לו רק התופעות הנ"ל הייתה מתרחשת רק ביולי-אוגוסט. אה-מה-מה, שנראה שזה המצב הרגיל פה בארץ הקוד-אש, בה אחוזי הלחות והקומבינות גבוהים במיוחד.
והמהנדס החכם (והמזיע) אומר: לא אוכל להציע לכם אלא באג יזע ודמעות (פרקי הדיבאג)
Picture by: Marco Solbx, googlemaps