Спецпроекты

Язык для Fortune 500. COBOL справляет юбилей

2811
ПО Софт Интеграция

COBOL, один из старейших используемых языков программирования, отмечает очередную годовщину — ему исполняется 60 лет. Может, этот язык и не претендует на место в первой десятке по популярности, однако те, кто выбрал его, могут быть уверены в завтрашнем дне — по уровню зарплат COBOL может дать фору многим новомодным конкурентам. И сохранит актуальность еще много лет.

Как все начиналось

В начале 1950-х Грейс Хоппер (Grace Hopper), научный сотрудник корпорации Remington Rand и по совместительству младший лейтенант военно-морского флота США, принимала участие в создании компьютера UNIVAC I. Опыт работы на предыдущей системе — гарвардской Mark I, привел Грейс Хоппер к убеждению, что компьютерам нужен язык программирования, состоящий из команд на английском языке, а не из специальных символов. Эту ее идею несколько лет игнорировали, но со временем Грейс Хоппер все-таки удалось заинтересовать руководство своими разработками в области первых компиляторов, и в 1954 г. благодаря ей в Remington Rand появились одни из первых прототипов языков высокого уровня — MATH-MATIC и FLOW-MATIC.

Последний и был взят за основу языка COBOL (Common Business Oriented Language), созданного в 1959 г. в связи с назревшей в конце 1950-х необходимостью уменьшить затраты на программирование систем обработки данных, которые к тому времени начали все шире применять в бизнесе. Грейс Хоппер трудилась над новым языком не одна, но активно участвовала в его продвижении, организовывала обучающие курсы, участвовала в многочисленных отраслевых конференциях, так что ее даже прозвали «бабушкой COBOL».

Грейс Хоппер стала одним из первых преподавателей COBOL и его ярым пропагандистом

Важную роль в развитии и распространении COBOL сыграли военные — Пентагон активно содействовал организации ключевой встречи, на которой разработке языка дали зеленый свет, представители военных ведомств участвовали в работе комитета по созданию COBOL. А в 1960-1970-х годах в управлении американских военно-морских сил проходила программа внедрения COBOL в качестве внутреннего стандарта военного ведомства, в которой участвовала и Грейс Хоппер. К тому времени ей уже присвоили звание капитана.

Программы «на родном языке» — достоинства и недостатки

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

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

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

Секрет его бессмертия

В 2016 г. счетная палата США опубликовала отчет, согласно которому министерство внутренней безопасности, министерство по делам ветеранов и управление социального обеспечения страны по-прежнему пользовались системами на COBOL. А по данным консалтингового агентства COBOL Cowboys, на сегодня в мире все еще используется свыше 200 миллиардов строк кода на этом языке, в том числе в 90% компаний из рейтинга Fortune 500.

Сегодня COBOL развивает компания Micro Focus. В юбилейном интервью сайту zdnet.com Дерек Бриттон (Derek Britton), директор Micro Focus по маркетингу и модернизации приложений признал, что точно оценить размеры рынка трудно. Однако заявил, что количество организаций, в которых на данный момент эксплуатируются системы на COBOL, исчисляется десятками тысяч, а «численность конечных пользователей, взаимодействующих с написанными на этом языке приложениями, наверняка составляет десятки миллионов, учитывая, что 70% всех систем обработки транзакций в мире полагаются на COBOL».

800pxcommodoregracem.hopperusncovered.jpg
Заслуги Грейс Хоппер в деле развития информационных технологий были высоко оценены правительством США - она получила звание коммодора

Так или иначе, за годы активного использования на COBOL написали огромное количество кода для всевозможных корпоративных систем. Значительная его часть работает до сих пор, поскольку сопровождать имеющиеся системы, повышая мощность их аппаратного обеспечения и «прикручивая» современные компоненты при помощи средств интеграции чаще всего обходится дешевле, чем переписывать старый код на более развитые языки.

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

Причина «бессмертия» COBOL в других частях света в том, что наиболее широко он исторически использовался в финансовых учреждениях — банковских, страховых, биржевых, которые крайне консервативны и не склонны менять ИТ-платформы без крайней нужды. А в США на втором месте по масштабам применения COBOL, которому в нынешнем году исполняется 60 лет, находятся не менее консервативные госструктуры.

Так что, хотя COBOL и достиг пенсионного возраста, вряд ли он в скором времени выйдет в отставку, учитывая, к примеру, что некоторые приложения, реализованные на нем, сегодня переносят в облака — без переписывания на другие языки. За годы развития языка в нем появились объектные расширения и многие другие доработки. Последняя редакция стандарта ISO/МЭК для COBOL датируется 2014 годом, а в сентябрьском индексе популярности языков программирования он занимал 31 место, соседствуя с Transact SQL, Scala и Rust. Таким образом, все указывает на то, что COBOL, несмотря на почтенный возраст, не только не собирается на покой, но еще и может пережить всех нас.

Российская специфика

Можно отметить, что России, где багаж COBOL-систем отсутствует, популярность языка гораздо ниже, скорее всего он используется лишь для обеспечения взаимодействия с крупными зарубежными банками, чьи бэкенды скорее всего реализованы именно на этом языке.

Поиск соответствующих вакансий по странам бывшего СССР дает всего два результата. Гораздо лучше обстоят дела у ABAP, языка бизнес-приложений компании SAP, который несколько похож на COBOL и который называют его родственником — больше 650 вакансий. Специалисты также говорят об идеологическом родстве между COBOL и встроенным языком программирования систем «1С:Предприятие», хотя в целом это, конечно, совершенно другой инструмент.

Впрочем, опросы западных рекрутинговых агентств показывают, что и в мире с кадрами для COBOL все не так уж просто, и то, что средний возраст программистской команды, пишущей на этом языке, часто превышает полвека, никого не удивляет.


Персона месяца

Хорошо относимся к российскому ИТ-рынку и развиваем инсорс-разработку

Евгений Абакумов

ИТ-директор Росатома

Стратегия месяца

Периферийные вычисления перемещаются в центр внимания