העולם המודרני בנוי על קוד עתיק. זו בעיה

שפות קידוד עתיקות
ז'נבייב פובלנו/טרנדים דיגיטליים

"איך לעזאזל הגענו לכאן שאנחנו ממש צריכים מתכנתי COBOL?" שאל מושל ניו ג'רזי פיל מרפי במסיבת עיתונאים לאחרונה.

תוכן

  • פורטרן
  • עדה
  • פסקל
  • BASIC / Visual Basic
  • COBOL

מתמודד עם מספר חסר תקדים של אַבטָלָה בקשות, המדינה נאלצה להרחיב את פלטפורמת תביעות האבטלה בת 40 השנים שלה באופן מיידי - שיפוץ שהניע מיידית חיפוש מטורף אחר מתכנתים שמכירים את שפת הקידוד בת עשרות שנים COBOL.

סרטונים מומלצים

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

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

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

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

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

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

פורטרן

כיסוי ידני של fortran

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

נבנה על ידי יבמ בשנות ה-50, Fortran (קיצור של תרגום נוסחה) הייתה אחת השפות הראשונות ברמה הגבוהה השתמשו במילים במקום במספרים ואפשרו למקודדים לכתוב תוכניות מהר יותר ב-500% מאשר בעת שימוש במכונה קוד. לא כמעט כל כך הרבה מפתחים לומדים את השפה היום.

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

הפעם האחרונה שהווארד נאלץ לכתוב תוכנית Fortran הייתה לפני כעשר שנים. הוא עבד בפדרל ריזרב והיה צריך להעביר נתונים בין שתי אפליקציות; אחד שנכתב ב-C והשני ב-Fortran. התוכניות הפסיקו לתקשר מכיוון שהספק הפסיק לספק את ספריית Fortran.

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

fortran punchard

עדה

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

משרד ההגנה (DOD) פיקח על הפיתוח של עדה בשנות ה-70 כדי לצמצם את מספר שפות התכנות בשימוש הצבא, שבאותה עת היה למעלה מ-400. עדה נבנתה להיות אמינה ללא ספק במצבים של חיים או מוות והתבצרה מפני שגיאות מתכנת. למרות שהשפה נמסרה ב-1980, הקונגרס לא הורה להשתמש בה בכל מערכות הממשלה עד 1995. שנתיים לאחר מכן, ה-DOD נטש את המנדט, תוך שהוא חושב שיהיה זול יותר וגמיש יותר להשתמש במערכות זמינות רחבות ומעודכנות. אבל זה עדיין בשימוש היום.

פסקל

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

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

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

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

BASIC / Visual Basic

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

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

באמצע שנות ה-80, חנוני מחשבים אוטודידקטיים היו פחות מתלהבים לגבי BASIC והתעניינו יותר בתוכנות של צד שלישי. ואז מיקרוסופט השיקה את Visual Basic ב-1991, שלא היה בדיוק עדכון של BASIC, אבל השתמשה בחלקן באותם הפקודות והמבנה והיה לו ממשק גרפי טוב יותר. אז השפה נוצלה על ידי עסקים רבים כדי לכתוב תוכניות גדולות וקטנות. למרות שמיקרוסופט אמרה שהיא הפסיקה את התמיכה ב-Visual Basic 6 (הגרסה העדכנית ביותר) ב-2008, אבל לשפה עדיין יש הרבה משתמשים. בדוק את ה מדד טיובה (אשר משרטט את שפות התכנות הפופולריות ביותר): VB עדיין ב-10 המובילים!

COBOL

פוסטר של קובול
פוסטר משנת 1969 המקדם שיעור MIT COBOL.

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

COBOL, ראשי תיבות של Common Business Oriented Language, הושק בשנת 1959 במטרה למשימות עיבוד נתונים כמו מעקב אחר תקציב, עסקאות בנקאיות וחשבונאות שכר. משרד ההגנה (DOD) עיצב את השפה במקור כפרויקט עצירה. ואז ה-DOD דרש מיצרני המחשבים לכלול את COBOL במכונות שהם מכרו והשפה התפשטה במהירות בעשורים הבאים. יותר מ-95% מהכספומטים ו-40% מהבנקים עדיין משתמשים בקוד COBOL, על פי 2017 כך דיווחה רויטרס.

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

חברות שמחדשות תוכניות אלה עושות זאת בדרך כלל בכמה דרכים שונות.

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

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

האם זה יהיה זול? ובכן, זה יהיה זול יותר. פרויקטים של Modern Systems נעים בדרך כלל במחירים בין 200,000 ל-10 מיליון דולר. חלק גדול מהפרויקט, מסביר עדנפילד, אינו תרגום הקוד, אלא בדיקה כדי לוודא שהוא עושה הכל נכון.

הסיבה שהעדכונים האלה לא קורים?

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

"אני מהמר לך שמדינת ניו ג'רזי הולכת לשים לב לנושא הזה עכשיו, אבל אני גם אתערב עליך שחצי מהקולגות שלהם יחשבו שזה לא יקרה להם, 'לא אני'".