История COBOL и где он работает сегодня

Язык старше твоих родителей до сих пор проводит платежи, пенсии и авиабилеты — разбираемся почему.

COBOL (COmmon Business-Oriented Language) — язык программирования, созданный в 1959 году специально для бизнес-задач: расчётов, учёта и обработки больших объёмов данных.

Зачем вообще понадобился новый язык в 1959 году

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

Тогда Министерство обороны США собрало комитет программистов и заказчиков (в нём заметную роль сыграла Грейс Хоппер — одна из первых в мире программистов и настоящая легенда индустрии) с одной целью: создать единый язык для бизнес-расчётов, который будет работать одинаково на компьютерах разных производителей. Так в 1959 году появился COBOL — Common Business-Oriented Language, «общий язык для бизнеса».

Обрати внимание на слово «общий» в названии. COBOL с самого начала не был языком для учёных или инженеров (для них уже существовал Fortran). Это язык именно для бизнеса: посчитать зарплату тысяче сотрудников, начислить проценты по миллиону вкладов, свести остатки на складе.

Что такое мейнфрейм и почему это важно

Мейнфрейм — это не просто «большой компьютер». Это специальный класс вычислительных систем, заточенных под одну задачу: надёжно и без остановки обрабатывать огромные потоки данных. Представь кассу супермаркета, которая работает 20 лет подряд без единого зависания, даже когда через неё проходит миллион чеков в час, — вот это и есть мейнфрейм, только в масштабе банка или налоговой службы.

Мейнфреймы производит в основном компания IBM, и именно на них исторически крутится COBOL. У этой связки есть простое объяснение: банкам и госструктурам не нужна модная разработка — им нужна система, которая посчитает всё день за днём, год за годом, без единой ошибки в round-трипе денег. COBOL и мейнфрейм вместе десятилетиями доказывают именно эту надёжность.

Где COBOL работает прямо сейчас

Самое удивительное в этой истории — COBOL не музейный экспонат. Он не «когда-то использовался», он используется прямо сейчас, пока ты читаешь этот текст.

  • Банки. Когда ты переводишь деньги через мобильное приложение, симпатичный интерфейс на экране — это только верхушка айсберга. Запрос уходит на сервер, а оттуда — в ядро банковской системы (core banking system), и это ядро у многих крупных банков написано на COBOL ещё в 1970–1990-х и с тех пор дополняется, а не переписывается с нуля.
  • Государственные реестры. Системы социального страхования, пенсионные фонды, налоговые службы во многих странах (в первую очередь в США) считают выплаты миллионам людей на программах, написанных десятилетия назад.
  • Страховые компании. Расчёт полисов и выплат — классическая COBOL-задача: чёткие правила, много данных, ноль права на ошибку.
  • Авиакомпании и логистика. Системы бронирования билетов и учёта грузов часто держатся на том же фундаменте.

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

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

Логичный вопрос: если COBOL такой старый, почему его просто не переписать на Python или Java? Три причины.

Во-первых, объём и риск. Речь идёт о миллионах строк кода, накопленных за 40–50 лет, где каждое правило — это чей-то реальный бизнес-кейс («если клиент открыл вклад до 1987 года и закрыл после реформы 1998-го — считать проценты по особой формуле»). Переписать это без единой ошибки почти невозможно, а цена ошибки в банковской системе — не баг в интерфейсе, а неправильно списанные деньги у миллионов людей.

Во-вторых, сама система работает. Она проверена десятилетиями, стабильна и предсказуема — а стабильность в финансовой сфере ценится куда выше, чем модный синтаксис.

В-третьих, дефицит COBOL-программистов создал парадокс: специалистов, знающих язык, всё меньше (многие уходят на пенсию), а спрос на них не падает — компании готовы хорошо платить именно потому, что желающих разбираться в старом коде немного. Так что знание COBOL — это не «устаревший навык», а скорее редкая и ценная специализация.

Частые заблуждения

Раз уж мы разбираемся в истории, стоит закрыть пару мифов сразу.

Миф 1: «COBOL — мёртвый язык». Неправда. Мёртвый язык — это тот, на котором не пишут новый код и не поддерживают старый. COBOL-код активно дописывают и поддерживают прямо сейчас, а в некоторых банках и госструктурах даже ведётся разработка новых модулей.

Миф 2: «COBOL работает только на древних машинах». Тоже неверно. Современные мейнфреймы IBM — это мощное, актуальное железо с современными процессорами; просто архитектура заточена под другие задачи, чем обычный сервер или ноутбук.

Итоги

  • COBOL создали в 1959 году как единый язык для бизнес-расчётов, который работал бы на компьютерах разных производителей.
  • Мейнфрейм — специализированный сверхнадёжный компьютер для обработки огромных потоков данных; COBOL исторически и сейчас тесно связан именно с ним.
  • COBOL прямо сейчас обслуживает банки, страховые, государственные реестры и логистику — не как музейный экспонат, а как рабочий инструмент.
  • Переписать COBOL-системы на современный язык рискованно и дорого, поэтому их поддерживают и дополняют, а не заменяют целиком.
Проверьте себя
1. Как расшифровывается аббревиатура COBOL и что это говорит о назначении языка?
ACOmmon Business-Oriented Language — язык создан специально для бизнес-расчётов
BCOmputer Based Operating Language — язык для написания операционных систем
CCOmpiled Basic Object Language — язык для объектно-ориентированного программирования
DConsole Oriented Business Language — язык для консольных приложений
2. Почему банки и госструктуры до сих пор не переписывают старые COBOL-системы на современные языки?
AПотому что современные языки не умеют работать с числами
BПотому что переписывание миллионов строк проверенного кода — огромный риск ошибок в финансовых расчётах, а старая система стабильно работает
CПотому что COBOL нельзя запустить ни на одном современном компьютере
DПотому что закон запрещает использовать другие языки в банках