Пандемія COVID-19 виявила приховану кризу в американській інфраструктурі: штати покладалися на 60-річні системи COBOL (Common Business-Oriented Language) для виплати допомоги по безробіттю, і лише деякі розробники знали, як їх виправити. Це не просто історичний курйоз; неефективність COBOL обійшлася економіці США приблизно в 105 мільярдів доларів тільки в 2020 році. Незважаючи на це, COBOL продовжує функціонувати, забезпечуючи роботу всього від баз даних транспортних засобів до трильйонів доларів у фінансових транзакціях щодня.
Витоки повсюдної мови
COBOL з’явився у 1959 році завдяки комітету, який прагнув вирішити проблему високої вартості та складності раннього програмування. Мета полягала у створенні мови, яку міг би зрозуміти будь-який, навіть не програміст. Міністерство оборони США швидко підтримало проект, зобов’язавши використовувати компілятори COBOL у федеральних контрактах, забезпечивши його домінування під час холодної війни.
Успіх COBOL пояснюється його машинною незалежністю та швидким поширенням. Його дизайн був навмисно простим, з використанням простої англійської мови та сотень слів, таких як “is” і “then”, прагнучи до коду, що самодокументується. Однак ця читаність зникала у великих програмах, призводячи до сумнозвісного “спагетті-коду” через безумовного оператора GO TO.
Чому COBOL залишається необхідним
Незважаючи на критику з боку вчених-комп’ютерників, таких як Едсгер Дейкстра, який назвав його використання “злочином”, COBOL процвітав. Його сила полягає в його точності для фінансових додатків з використанням арифметики з фіксованою точкою замість плаваючої, що робить його ідеальним для точної обробки великих сум.
Недоліки мови були визнані ще на початку існування; дизайнер Жан Саммет визнала ключовою помилкою відсутність “параметризації”, через що зміни в одній частині програми впливали на всю систему. Ця складність робить сучасні оновлення виключно важкими, як видно на прикладі проблем Нью-Джерсі з його системою допомоги безробітним.
Майбутнє COBOL: ІІ та проблеми конвертації
Сьогодні такі компанії, як IBM, пропонують інструменти конвертації на основі ІІ, що обіцяють переписати системи COBOL сучасними мовами. Однак ці зусилля часто призводять до появи “JOBOL” – заплутаної гібридної системи, яка зберігає структуру COBOL, але втрачає читаність. Просто заміна COBOL на Java не вирішує проблеми, що лежать в основі.
Стійкість COBOL — це повчальна історія: те, що здається ефективним на папері, згодом може стати небезпечним тягарем. Незважаючи на свої недоліки, мова залишається глибоко інтегрованою в критичну інфраструктуру, і її видалення виявилося набагато складнішим, ніж передбачалося.
