מסמך אסטרטגיה שפורסם בפברואר השנה על ידי הבית הלבן (הבית, המקורי, לא הבייט!), היכה גלים בקהילות התוכנה וה-firmware בגלל המלצה מהפכנית. בואו נראה במה מדובר.
לפני שנים רבות, בתוכנית מערכונים בריטית כלשהי, התייצבה לפני המצלמה אחת מהדמויות הקבועות – קשיש נרגן וקמצן – עם אטלס פתוח ביד. "לאורך עשרות שנים של מלחמות," הסביר הקשיש, "מדינות באירופה נכבשו, פוצלו, שוחררו והתאחדו מחדש. השינויים האלה עלו בחייהם של עשרות מיליונים… אבל לי הם לא עלו אפילו אגורה אחת, כי שמרתי את האטלס הישן!"
המערכון הזה עלה בזכרוני כשקראתי את הדוח הטכני של הבית הלבן, שעוסק ביעד האסטרטגי של הגנת סייבר. הדוח הזה הוזכר לאחרונה בפורומים מקצועיים, כאשר חלק מהמגיבים רואים בו טחינת מים פוליטית רגילה, ואחרים חושבים שיהיו לו השלכות ממשיות על תעשיית התוכנה.
הרעיון, בגדול, הוא כזה: ככל שעולם הסייבר נעשה מרכזי יותר בחיינו, כך גם גדלה הסכנה בתקיפות שלו ובתקלות בו. חלק גדול מאוד מהתקיפות ומהתקלות שהתגלו עד היום (כ-70%, לדברי הדוח) קשור לנושאים של ניהול זיכרון – גישה או גלישה לא רצויות לאזורי זיכרון, כאלה שאינן חלק מהתפקוד המתוכנן והראוי של התוכנה. המציאות מוכיחה שוב ושוב שלא מספיק להגיד למתכנתים להיזהר, אז צריך לנקוט אמצעים דרסטיים יותר. אחד מהם הוא לעבור משפות התכנות הנפוצות והלא-בטוחות C ו-C++ לשפות שמנהלות את הזיכרון שלהן בצורה בטוחה יותר. אילו שפות? הדוח מזכיר, אם אינני טועה, רק את Rust, וגם זה בדרך אגב, אבל מסמך משלים של ה-NSA מציין במפורש את פייתון, ג'אווה, סי שארפ, גו, סוויפט, רובי, ראסט, עדה (Ada) – וגם את Delphi/Object Pascal. וזו כמובן האסוציאציה שלי לקשיש עם האטלס, כי גם אני שמרתי שנים רבות פינה חמה בלב לפסקל, בזמן שכל העולם כבר שכח אותה או ראה בה מוצג מוזיאוני נלעג, והנה היא נקראת שוב לדגל…
בעולם התוכנה ה"רגיל", למחשבים ביתיים או לסמארטפונים, סביר להניח שההמלצה תתקבל במשיכת כתפיים – הרי שם שפות מהרשימה ה"בטוחה" משמשות כבר שנים, ככל הנראה כבר באחוזים גדולים משמעותית מאלה של ה"מסוכנות". לעומת זאת, במערכות זמן-אמת ואמבדד, C ו-C++ עדיין שולטות ביד רמה, וכמה אנשים התחילו לתהות מה יקרה עכשיו.
מצד אחד, אפשר לטעון שכוחות השוק חזקים הרבה יותר מהצהרות פוליטיות: יצרני מיקרו-בקרים אינם מציעים קומפיילרים בשפות חלופיות, כל המפתחים כבר רגילים למצב הקיים, והאופציות החיצוניות המעטות שיש הן נישתיות מאוד, מוגבלות, ודורכות במקום במקרה הטוב, אם לא נכחדות ממש. פה ושם אפשר למצוא מישהו שמנהל "מסע צלב" עיקש להתאמה וקידום של שפה מסוימת, אך השטח בגדול נותר שמרני ומקובע.
מצד שני, אם גופים ממשלתיים יקחו את הדוחות החדשים ברצינות, הם עשויים לתעדף במכרזים חברות שיעברו לשפות "בטוחות", וכאן כבר יש כסף גדול שבהחלט יכול להשפיע על השוק המנומנם. אולי בעוד שנה-שנתיים Microchip, למשל, תציג קומפיילר פסקל למיקרו-בקרים שלה – לא כי מישהו שם יחשוב שזה באמת עדיף ונכון טכנולוגית, אלא פשוט כדי לנפנף בזה ולעקוף את המתחרים כשיגיעו המכרזים הגדולים, שיתנו קדימות לפלטפורמות שמאפשרות פיתוח בשפות המומלצות.
מבין השפות האלה, יש כמה שנראות פחות מתאימות לאמבדד: פייתון (או מיקרו-פייתון), למשל, איטית ומסורבלת מדי לרוב היישומים הפרקטיים, וסביר להניח שאותו הדבר נכון לכל שפה אחרת עם Garbage Collection. לעומת זאת, Ada עדיין בשימוש פעיל (למיטב ידיעתי) ביישומים קריטיים כמו תעופה וחלל, מה שמציב אותה בנקודת פתיחה נוחה למירוץ השפות החדש; פסקל די דומה לה ועדיין נצפית פה ושם (עובדה שהצליחה להגיע עד הדוח), ועל Rust שומעים די הרבה לאחרונה – שוב, בעיקר בזכות כמה משוגעים-לדבר, אבל זה לא פוסל אותה משימוש עתידי נרחב.
האם אני ממליץ לכם להתחיל ללמוד פסקל? חס וחלילה, כי כשיתחילו להגיע הצעות העבודה הרלוונטיות, אני רוצה להיות המועמד היחיד 😀