Популярный язык программирования представляет опасность для человечества: в чем дело

Самый распространенный язык программирования в истории, и одновременно главная головная боль IT-индустрии уже полвека.
Автор новостей
Программист за компьютером
COBOL называют асбестом мировой IT-сферыИсточник: Freepik

Один из самых распространенных языков программирования COBOL представляет опасность для человечества. Об этом сообщает Wired.

COBOL расшифровывается как Common Business-Oriented Language. Его придумали в 1959 году по заказу Министерства обороны США, и с тех пор он никуда не делся. Сегодня на нем написано большинство систем социального страхования, учета транспортных средств и выплаты пособий по безработице. Ежедневный объем финансовых операций, которые проходят через COBOL-системы, около 3 триллионов долларов.

Сам язык задумывался как революция доступности. Авторы хотели, чтобы программы на нем читались почти как обычный текст на английском языке, без сложных формул и символов. Для сравнения: в Java зарезервировано 68 служебных слов, в COBOL их сотни, включая обычные предлоги вроде «to» и «then». Идея была радикальной: пусть код пишут не только программисты, но и рядовые сотрудники компаний. Заодно программы должны были сами себя документировать, то есть из кода сразу было бы понятно, что он делает.

На практике все пошло иначе. Чем длиннее становились программы, а корпоративные системы быстро вырастали до десятков тысяч строк, тем меньше работала логика «читаемого кода». Отдельная беда — конструкция GO TO, встроенная в язык с самого начала. Она позволяла в любой момент перепрыгнуть из одной части программы в совершенно другую. В результате код превращался в то, что разработчики называют «спагетти»: формально рабочий, но крайне трудный для понимания и изменений.

программный код
Источник: Freepik

К этому добавилась архитектурная ошибка, которую признала одна из создателей языка Жан Саммет: в COBOL не было нормального механизма передачи данных между модулями программы. Разные части кода не общались друг с другом через параметры, они просто делили общую память. Это значит, что правка в одном месте могла непредсказуемо сломать что-то совсем в другом. Именно поэтому модернизация таких систем — не просто технический вопрос, а настоящий риск: одна неудачная правка способна обнулить чьи-то пенсионные выплаты или уронить банковский сервис.

Пандемия 2020 года сделала проблему видимой для широкой аудитории. Когда в США резко выросло число заявок на пособие по безработице, системы на COBOL просто не справились с нагрузкой. По грубым подсчетам, неэффективность этих систем стоила американской экономике около 105 миллиардов долларов за тот год. Штат Нью-Джерси в итоге обновил интерфейс своей системы, но бэкенд по-прежнему работает на мейнфрейме с COBOL внутри.

Сейчас несколько компаний, включая IBM, предлагают инструменты на базе генеративного ИИ для автоматического перевода COBOL на современные языки. Но у этого подхода есть фундаментальный изъян: машинный перевод воспроизводит структуру старого кода, а не переосмысляет ее. Разработчики уже придумали термин для результата — «ДЖОБОЛ» (JOBOL): формально это Java, но логика внутри осталась коболовской, с теми же запутанными зависимостями. Это все равно что перевести инструкцию с одного языка на другой слово в слово — текст изменился, а смысл стал еще более запутанным.

COBOL часто сравнивают с асбестом: материал, который когда-то казался идеальным решением, теперь повсюду и крайне опасен при попытке его убрать. Проблема не в том, что язык плохой сам по себе. Проблема в том, что десятилетия живого кода, написанного в разных стилях и разными людьми, превратились в систему, которую никто не понимает целиком, и которую слишком дорого трогать.

Также стало известно, что Perplexity представила Personal Computer. Подробности в статье.