באגים, מזוודות וסוכני FBI- על משבר התכנה
 



 






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

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

מכונית שמתקלקלת אחת לכמה שבועות היא מכונית שרק מזוכיסט יסכים לקנות: אנו מצפים לרמה מסוימת של אמינות מכלי הרכב שלנו . אך שגיאות ותקלות בתכנה, לעומת זאת, הן עניין מוכר ושגרתי עבור כל מי שנעזר במחשבים. כולנו נתקלו במסך השגיאה הכחול של 'חלונות', למשל, ה-Blue Screen of Death המפורסם. גם האייפון והאייפד, מוצרים הידועים כבעלי אכות גבוהה, 'קורסים' מדי פעם וצריך לאתחל אותם. למדנו לחיות עם תקלות תכנה ולקבלן ככמעט מובנות מאליהן. אין מה לעשות.











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

התוכנות הראשונות

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

תכנה היא רצף הוראות או פקודות המורות למעבד היכן נמצא המידע בזיכרון, ומה עליו לעשות עם המידע. אם נְדָמה את המידע שבזיכרון למוצרי מזון, תכנה היא המתכון המורה לנו מה עלינו לעשות עם המצרכים השונים בכל רגע נתון כדי ליצור עוגה, למשל. שגיאת תכנה- 'באג', בעגה המקצועית- היא טעות ברצף הפקודות: למשל, פקודה חסרה או שתי פקודות בסדר שגוי.

להמשך הכתבה