Пандемия 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 — это поучительная история: то, что кажется эффективным на бумаге, со временем может стать опасным бременем. Несмотря на свои недостатки, язык остаётся глубоко интегрированным в критическую инфраструктуру, и его удаление оказалось гораздо сложнее, чем предполагалось.