Представьте себе: вы платите картой за кофе, переводите деньги другу или просто проверяете баланс на телефоне. На другом конце света банк проверяет вашу кредитную историю, а в каком-нибудь правительственном агентстве рассчитывают пенсию. Скорее всего, где-то на этом пути, в самой сердцевине этих операций, сработает строчка кода, написанная на языке, который старше ваших родителей. Его имя — COBOL. Созданный в 1959 году, он давно исчез из списков модных технологий. Кажется, он должен был кануть в Лету вместе с дискетами и ЭЛТ-мониторами. Но парадокс в том, что этот «динозавр» не просто жив — он является критически важным скелетом всей мировой финансовой и государственной системы. По разным оценкам, на COBOL до сих пор работает код, обрабатывающий львиную долю мировых финансовых транзакций на общую сумму в триллионы долларов ежедневно. Почему же мы не можем просто избавиться от этого наследия прошлого? Ответ — это история не о технологическом застое, а о колоссальной инерции, безупречной надежности и тех титанических рисках, которые прячутся под привычным нам цифровым фасадом.
Гири на ногах прогресса, которые удерживают весь корабль на плаву
Попробуйте представить программное обеспечение не как абстрактный код, а как огромное, сложнейшее здание, которое достраивали и перестраивали шесть десятилетий. Его коммуникации опутали всё вокруг, а фундамент уходит глубоко в землю. Это и есть реальность систем на COBOL. Их не писали за пару лет — их десятилетиями создавали, латали, дополняли и усложняли армии программистов. Каждый новый закон о налогах, каждый новый банковский продукт оставлял в этом коде свой след. В результате получились гигантские, запутанные, но невероятно отлаженные монолиты. Они подобны легендарным мэйнфреймам IBM, на которых они часто и работают, — не особенно быстрым по современным меркам, но способным без сбоев обрабатывать чудовищные потоки однотипных операций. Эксперты часто сравнивают попытку замены такой системы с ремонтом двигателя у самолета, находящегося в полете. Просто так его на землю не посадишь — он должен продолжать лететь.
Но дело не только в сложности. Дело в том, что COBOL был создан для задач, где точность и ясность важнее хитроумности. Его синтаксис, многословный и описательный, напоминает упрощенный английский. Это не код для быстрого прототипирования нейросети, это свод четких бизнес-правил. Как отмечала в одном из интервью бывший программист мэйнфреймов Дерек Бриттон, «COBOL был разработан для чтения, как английский язык, что делало его идеальным для долгосрочной поддержки бизнес-приложений, где точность и ясность кода критически важны». Когда вы видите строчку MULTIPLY HOURLY-RATE BY HOURS-WORKED GIVING GROSS-PAY, вы понимаете, что происходит, даже не будучи специалистом. В мире, где ошибка на один цент в расчете процентов по миллиону кредитов может обернуться катастрофой, такая прозрачность и проверенность временем бесценна. Современные языки часто выигрывают в гибкости, но проигрывают в этой железобетонной предсказуемости.
И наконец, вступает в силу простой бизнес-расчет: «Работает — не трогай». Любой директор по информационным технологиям в крупном банке скажет вам, что бюджет его отдела ограничен. И когда перед ним встает выбор — потратить сотни миллионов долларов и несколько лет на титанический и рискованный проект по миграции с COBOL (с гарантией бесконечных головных болей и сбоев) или вложить эти же деньги в новый удобный мобильный банк для клиентов, — выбор чаще всего очевиден. Клиент увидит и оценит новый интерфейс, но абсолютно не заметит, что где-то в глубине серверов расчетный движок стал на пару процентов современнее. Кризисная ситуация, как с системами выплаты пособий по безработице в США во время пандемии, лишь ненадолго высвечивает проблему, но не дает ни денег, ни готового решения для ее кардинального исправления.
Надвигающийся шторм: уходящие специалисты и растущие угрозы
Однако стабильность эта весьма зыбкая, и ее цена растет с каждым годом. Самая болезненная точка — это люди. Представьте себе типичного COBOL-программиста. Ему, скорее всего, за шестьдесят. Он начинал карьеру, когда персональных компьютеров еще не существовало, а данные вводились с перфокарт. Его знания — это не только синтаксис языка, но и глубокое понимание той самой уникальной бизнес-логики, которую он двадцать лет назад встраивал в код. Эти знания часто не записаны в мануалах — они хранятся в голове. И эти люди уходят на пенсию. А кто приходит им на смену? На факультетах компьютерных наук COBOL если и упоминают, то лишь в контексте истории. Молодые разработчики стремятся изучать Python для data science или JavaScript для фронтенда. В результате зарплаты оставшихся COBOL-гуру взлетают до небес, а найти нового сотрудника — почти нереально. Reuters как-то приводил данные, что лишь четверть учебных заведений в США вообще предлагают курсы по COBOL, и интерес студентов там близок к нулю.
Вторая гроза на горизонте — безопасность. Системы на COBOL создавались в совершенно ином мире. Мире закрытых мэйнфреймов, стоявших в охраняемых ЦОДах, без какого-либо доступа извне. Сегодня же этот код вынужден общаться с веб-сервисами, мобильными приложениями и облачными платформами. Каждый такой «мостик» — это потенциальная лазейка для злоумышленников. Сам по себе COBOL не «дырявее» других языков, но старый, монолитный код, который никто полностью не понимает, сложно проверять на уязвимости. Регуляторы в сфере финансов и госбезопасности уже бьют тревогу, требуя от компаний планов по обеспечению устойчивости этих legacy-систем. Но как можно эффективно защитить то, устройство чего известно лишь горстке стареющих специалистов?
Эта ситуация порождает порочный круг, который аналитики Gartner метко называют «технологическим долгом». До 80% IT-бюджета крупной организации может уходить не на развитие, а на «поддержку жизнедеятельности» — на то, чтобы просто сохранять текущие системы в рабочем состоянии. Каждая новая директива регулятора (например, о новых формах отчетности) оборачивается месяцами работы по поиску и модификации нужных фрагментов в древнем коде. Это делает бизнес неповоротливым. Пока конкуренты быстро внедряют новые технологии, компания, скованная legacy-системами, тратит все ресурсы на то, чтобы не отстать от обязательных требований, не говоря уже об инновациях.
Будущее: не похороны, а долгая реабилитация
Осознав масштаб проблемы, индустрия, наконец, отошла от идеи одномоментной революции. Сегодня речь идет об эволюции, об аккуратной интеграции старого мира в новый. Первый и самый популярный путь — это «омоложение» (modernization). Компании вроде Micro Focus и IBM предлагают инструменты, которые действуют как высокотехнологичный переводчик. Они позволяют «обернуть» старый код COBOL в современные интерфейсы (например, REST API), чтобы к нему могли обращаться новые приложения, написанные на Java или C#. Еще интереснее — компиляторы, которые позволяют запускать программы COBOL на обычных серверах под управлением Linux, а иногда даже автоматически конвертируют часть бизнес-логики на современные языки. Это не отказ от старого, а предоставление ему новой, более комфортной и дешевой в обслуживании среды обитания.
Второй фронт работы — кадровый. Крупные банки и страховые компании, такие как Bank of America, начинают действовать как учебные центры. Они набирают талантливых junior-разработчиков и внутри компании обучают их COBOL, параллельно давая знания о современной архитектуре. Это создает уникального специалиста-«переводчика», который понимает и старые мэйнфреймы, и современные облака. Его ценность на рынке огромна. Постепенно эта потребность доходит и до вузов: курс по управлению legacy-системами и технологическому долгу начинает звучать куда актуальнее и привлекательнее для студентов, чем сухой «язык COBOL».
Наконец, третья стратегия — это стратегическое окружение и постепенное вытеснение. Вместо того чтобы атаковать ядро системы, вокруг него выстраивают крепость из современных микросервисов. Новый функционал, онлайн-банкинг, личные кабинеты — всё это создается на современных стеках. А старая COBOL-система низводится до роли сверхнадежного «движка» для ключевых операций: расчета процентов, обработки базовых транзакций. К нему новые сервисы обращаются через четкие, хорошо защищенные шлюзы. Со временем, по мере старения и вывода из эксплуатации отдельных модулей старой системы, их заменяют новыми. Этот путь, который Федеральная резервная система США считает наиболее безопасным для финансовой стабильности, медленный, но верный.
Так что COBOL не умрет завтра. Он, как мамонт в вечной мерзлоте, будет еще долго оставаться с нами, постепенно оттаивая и открывая свои секреты новым поколениям инженеров. Его история — это не урок о консерватизме, а суровая правда о том, что настоящие, работающие технологии обладают колоссальной инерцией. Прогресс в больших системах — это часто не яркий взрыв, а кропотливая, неблагодарная работа по постройке мостов между эпохами. И пока эти мосты держатся, где-то глубоко в недрах дата-центров продолжает тикать ровный, немодный, но абсолютно незаменимый ритм старого, доброго COBOL.