«Код-спагетти» ценой в сто миллиардов. Как язык программирования из 60-х мешает нормально функционировать целой стране

leer en español

«Код-спагетти» ценой в сто миллиардов. Как язык программирования из 60-х мешает нормально функционировать целой стране

Найти выход из этого технологического тупика почти невозможно.

image

Устаревший язык программирования COBOL, который десятилетиями лежал в основе государственных и финансовых систем, вновь оказался в центре внимания. Пандемия Covid-19 показала, что зависимость от таких технологий может обернуться серьёзными проблемами — от нехватки специалистов до многомиллиардных экономических потерь.

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

Несмотря на кризис, отказаться от языка не удалось. Даже после модернизации системы в Нью-Джерси ключевые процессы по-прежнему работают на мейнфреймах с COBOL. Такая зависимость объясняется масштабом внедрения: к началу 2000-х около 80 процентов из 300 миллиардов строк кода в мире были написаны именно на нём. Сегодня COBOL продолжает обслуживать государственные базы данных и ежедневно обрабатывает финансовые операции на триллионы долларов.

Язык появился в 1959 году при участии представителей американской компьютерной индустрии, включая Грейс Хоппер. Разработчики стремились создать универсальный инструмент, который можно использовать на разных машинах без переписывания программ. COBOL задумывался как максимально понятный — с синтаксисом, близким к английскому языку, чтобы работать с ним могли даже непрофессионалы.

Однако на практике читаемость оказалась иллюзией. В крупных программах структура быстро превращалась в запутанный код-спагетти, особенно из-за активного использования переходов GO TO. Математик Эдсгер Дейкстра резко критиковал такой подход, считая, что он разрушает логическое мышление и делает код непонятным.

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

Сегодня крупные компании, включая IBM, пытаются предложить инструменты для автоматизированного перевода COBOL-систем на современные языки с помощью генеративного ИИ. Но автоматическая миграция часто создаёт гибридный код, который сохраняет старую структуру и теряет преимущества новых технологий.

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