Программирование из преисподней или как дороже всего продать свою душу
Нет, речь идет не про язык Ада, на котором пишут бортовые системы самолетов и (что иронично) код для спутников. Его назвали в честь Ады Лавлейс, которая первая заценила вычислительную машину Беббиджа и начала писать к ней программы.
Ниже портрет той самой графини Ады Лавлейс. Теоретически, фотоаппараты в ее время уже изобрели, но настоящие аристократы все еще предпочитали картины. В конце-концов, фильтры нельзяграма появились совсем недавно, а у художников уже тогда был самый лучший из фильтров — «я плачу тебе за эту чертову картину».
Язык, о котором пойдет речь, по нынешним меркам кажется древним, но все же не настолько. Он относится к атомной эпохе. В 1954 году была запущена первая атомная станция в мире, Обнинская АЭС. В 1957 году Форд начал пиарить автомобиль с ядерным реактором, Ford Nucleon. В 1958 году запустили первую АЭС в США, Шиппингпорт. Мир приветствует мирный атом, и на той же волне в 1959 году появляется язык COBOL.



Минутка технооптимизма
На самом деле, атомная история тут не при чем. Кобол разрабатывали как удобный язык для обработки данных, и расшифровка его названия «common business-oriented language» (четкий язык для четких бизнес-пацанчиков) тонко намекает на основную сферу его применения. Про атомную эпоху и прочий популюкс я напомнила, чтобы сделать более понятным тот преждевременный оптимизм, который проявляли авторы языка.
В те времена компьютерный мир был сильно меньше и неудобнее. Современные мы привыкли, что компьютеры есть в каждом доме, языков программирования много, а книг и обучающих курсов чуть ли не больше, чем самих программистов. В пятидесятых отдельные детали компьютеров еще снабжались удобными ручками для переноски, а самым хайповым языком на рынке был ассемблер. Но компьютеры уже становились меньше и популярнее, электроэнергии становилось больше, и не за горами было установление и нового поколения языков.
Их появилось сразу много, каждый для своей цели. Фортран предназначался для научных расчетов, Лисп — для искусственного интеллекта, а Кобол — для финансов и финансистов. Как можно догадаться, примерно отсюда берет начало и история с торговлей душами.
Изначально за этот язык топило Минобороны США. Тем более что его писали не с нуля, а на основе языка FLOW-MATIC, который разработала контр-адмирал младшего ранга и любимая бабушка всея флота США Грейс Хоппер.





Первой продающей фишкой языка были расчеты с фиксированной точкой. В конце-концов, только ученым-в-океане-моченым нужно было думать, как приземлить бесконечное количество дробных значений от 0 до 1 на бездушные дискретные регистры центрального процессора. Бухгалтеры резать центы на кусочки желанием не горели.
Второй фишкой, еще более продающей, была читаемость кода. Вот пример на FLOW-MATIC:
Больше похоже на сочинение «как я провел лето и на что тратил карманные деньги», чем на компьютерную программу. Это не случайность, это задумано, и сама Грейс описывала задумку примерно так: «Проблема не в том, что люди не могут научиться математике, проблема в том, что они не хотят. […] Если вы хотите докопаться, что с данными должны работать люди, которые понимают математические символы — флаг вам в руки, попробуйте обучить какого-нибудь вице-президента, полковника или адмирала. Думаете, я не пробовала?» Короче говоря, проще написать язык без арифметики, чем достучаться до тех, кому просто не до того.
Кобол подхватил эту идеологию, что понравилось ребятам из большого бизнеса, и все банки США, а потом и всего мира начали очень оптимистично и повсеместно внедрять именно этот язык во все, вообще все, процессы.



Оп оп и тут код на Коболе, это как раз та эпоха
Казалось бы, что могло пойти не так? Отличный язык, глазами читается, бери и используй. А проблема, как обычно, оказалась в людях, которые брали и использовали средства языка не по назначению. Или не могли уместить в своих коротких извилинах весь объем большого и сложного проекта, из-за чего возникала проблема объяснить что-либо новым работникам.
Вся история развития языков программирования — это история, начатая Грейс Хоппер: проще приспособить компьютер к человеку, чем человека к компьютеру. Разрабатывались новые языки и новые парадигмы типа объектно-ориентированного программирования, программировать становилось все проще, программистов становилось все больше. Старые языки вымирали под давлением конкуренции или сильно менялись, новые языки появлялись, учитывая ошибки прошлого, и тоже вымирали, поколение за поколением.
Кобол — это динозавр атомной эпохи, крокодил от мира компьютеров, который жил своей жизнью без существенных идеологических изменений. Где-то начиная с 70х в среде программистов его стали ругать и ненавидеть. Наиболее известна цитата Эдсгера Дейкстры: "The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense." («Использование Кобола калечит ум. Его преподавание, следовательно, должно рассматриваться как уголовное преступление.») Да, это тот же Дейкстра, который алгоритм. Он был математиком, а не программистом, но в преподавании шарил, и к нему прислушивались.
Спрашивается, зачем этот мазохизм, и почему просто не взять другой язык. Не нравится, так не пиши. Свой напиши, если чешется.
Ну, в-нулевых, программисты — массово довольно токсичные и придирчивые люди, и поэтому почему бы и не поругаться. Во-первых, язык был достаточно массовым, и его много обсуждали просто по рабочей необходимости. Во-вторых, обсуждение — это непременная часть научного и технического прогресса, начало работы над ошибками.
Но основной причиной держаться за ненавистный язык всеми лапками (и тут мы добрались до торговли душой) было и остается легаси. Огромные объемы уже написанного кода, которые требовали поддержки, переноса на новое железо, дополнения новыми фишками и прочей повседневной рутины. Причем основной объем этого кода сосредоточился именно у тех людей, кто не просто умел считать деньги, а только этим и занимался — в банках и остальной финансовой сфере по всему миру.
Переписывать старый код, да так, чтобы ничего не сломалось, всегда дорого. А тут еще и область очень ответственная, от рядовых банкоматов до мировых финансовых потоков. Финансисты посчитали разные варианты и решили, что проще ставить зарплату для коболоведов повыше, чем подстаиваться под изменчивый и неприхотливый мир новых модных языков-однодневок. Надо сказать, в сравнении с Коболом так выглядит почти любой.
И вот, мы здесь. 2026 год, Европа сворачивает атомную энергетику, а Кобол все еще живее всех живых. Поезд прогресса едет вперед, этому древнему языку уже не учат в университетах, почти любой программист при его упоминании достает чеснок и святую воду, но при этом вся мировая финансовая система держится на Коболе и требует непрерывного человеческого внимания. Программистов на Коболе все меньше, а зарплаты, говорят, все выше. В основном, по слухам — вакансий не так много, и конкретных цифр на сайтах типа хедхантера не пишут. Типа «по результатам собеседования».
Я не знаю, за что именно этот язык так ненавидят. Отдельные куски выглядят непривычно, но не вызывают ужаса. Тот же Лисп с его бесконечными скобками и префиксной нотацией выглядит куда страшнее. Да и современный C++ может любого ежа напугать, честное слово, вот на него бы Дейкстра посмотрел. Скорее всего, чтобы по-настоящему понять всю степень адовости языка, нужно погрузиться внутрь и хотя бы несколько лет поработать с хорошим таким, нажористым легаси. Но страшно, очень страшно.
Говорят, Кобол — самый высокооплачиваемый язык в мире. Готовы ли вы рискнуть душой, чтобы это проверить?..
Автор - Катерина Беклемышева
Подписывайтесь, чтобы не пропустить новые посты!





