Привет, Хабр! Меня зовут Дарья Фролова, я редактор направления спецпроектов в МТС Диджитал. Хочу предложить вам вспомнить, что сегодня за дата — и я сейчас не про первый день последнего месяца лета. Спойлер: поговорим о Грейс Хоппер и ЯП. Жду вас под катом!

Что там с 1-м августа?

Именно в этот день, но в 1967 году Грейс Хоппер заняла пост директора Группы языков программирования в Департаменте информационных систем ВМФ США. Она разработала валидационное программное обеспечение для языка COBOL и его компилятора — это было частью его стандартизации. Считается, что сам COBOL родился в 1959 году. Основой для него послужил FLOW-MATIC, который был разработан для компьютера UNIVAC I в Remington Rand под руководством той же Грейс Хоппер.

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

Отдельная заслуга Грейс Хоппер — введение стандартизации к тестированию компьютерных систем и компонентов. Важно, что сделано это было и в отношении ранних языков программирования — Fortran и COBOL.

О Грейс уже много писали на Хабре, так что повторяться не буду. Напомню только, что она была тем человеком, который убедил министерство обороны США заменить огромные вычислительные системы сетью из малых (для того времени) компьютеров. Любой пользователь такого узла мог получить доступ к нужной информации из локальной сети. Ну а потом сама эта концепция стала частью современного интернета.

Грейс Хоппер получила признание военных, ученых и обычных людей. В ее честь были названы корабль USS Hopper (DDG-70) и суперкомпьютер Cray XE6. Многие ее идеи и проекты до сих пор с нами — включая тот самый COBOL, древний по современным меркам язык программирования.

А COBOL до сих пор используется?

Представьте себе, да. Язык, которому исполнилось 65 лет, действительно остается в ходу.

Конечно, компании постепенно отказываются от COBOL. Но в ряде сфер он пока что незаменим — на его основе работают системы, связанные в основном с финансами: банковская отрасль, фондовые биржи, социальные сервисы (биржа труда в США как пример). А вот инфографика, которая показывает актуальность языка в 2017 году (немного устарело, но все же):

Так что популярность ЯП не падает, а держится на плаву и иногда даже растет. В августе 2023 года COBOL вышел на 15 место в рейтинге среди ЯП. А в июле этого года занял 19 место в рейтинге TIOBE.

TIOBE — популярный рейтинг. Он формируется на базе таких критериев:

  • количество запросов о языке в популярных поисковиках;

  • активность обсуждения на профильных ресурсах;

  • количество вакансий с указанием языка.

Получается, COBOL до сих пор запрашивают в некоторых вакансиях. Похоже на правду: еще в 2020 году разработчиков, владеющих этим ЯП, приглашали в американскую службу занятости. Оказалось, она во многом зависит от старых технологий.

Еще одно доказательство — в 2022 году количество строк кода, написанных на COBOL, составило 800 млрд. Востребованность языка оказалась настолько высокой, что несколько лет назад 75-летний программист Билл Хиншо основал новую организацию, которая занималась поддержкой решений на базе COBOL.

Пример программы на COBOL — это обычный Hello World:

Пример программы на COBOL — это обычный Hello World:
      	IDENTIFICATION DIVISION.
       	PROGRAM-ID. HELLO-WORLD.
    	*
     	ENVIRONMENT DIVISION.
    	*
     	DATA DIVISION.
    	*
     	PROCEDURE DIVISION.
     	PARA-1.
       	DISPLAY "Hello, world.".
    	*
         	EXIT PROGRAM.
       	END PROGRAM HELLO-WORLD.

Но ситуация постепенно меняется. Корпорация IBM разработала набор инструментов, позволяющий портировать COBOL-программы на Java — Watsonx Code Assistant. В основу положена модель генерации кода CodeNet — она может понимать не только COBOL и Java, но и около 80 других языков программирования. Платформа обучена на огромном массиве данных, у нее 20 млрд параметров.

Компания предложила свое решение партнерам, и они постепенно переходят со старой инфраструктуры на новую. Не только в США, но и в других странах, где до сих пор используется COBOL.

По оценкам IBM, сейчас 220 миллиардов строк кода действуют на мэйнфреймах и прочих системах. Обновленная версия языка обеспечивает точность вычислений, по-прежнему трудно достижимую в других ЯП. Например, COBOL может выполнять математические операции с точностью до 38 знаков после запятой, с усечением.

Так что наследие Грейс Хоппер и ее коллег продолжает жить среди нас и приносить пользу. Ну а вы теперь знаете, о чем можно рассказать сотрудникам и друзьям в первый день последнего месяца лета.

Комментарии (5)


  1. Sazonov
    01.08.2024 14:26

    В каких таких современных языках сейчас есть труднодостижимая точность вычисления до 38 знаков после запятой? (Опять учёные что-то с журналистами сотворили)


    1. ukmsz
      01.08.2024 14:26

      У кобола фиксированная точка, количество разрядов до и после точки задается программистом


  1. x89377
    01.08.2024 14:26
    +1

    Руководитель разъёмы паяет, редактор COBOL. Хорошие спецпроекты МТС. Жаль вакансий нет.


  1. SpiderEkb
    01.08.2024 14:26
    +1

    Пример программы на COBOL — это обычный Hello World

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

    Но ситуация постепенно меняется. Корпорация IBM разработала набор инструментов, позволяющий портировать COBOL-программы на Java — Watsonx Code Assistant.

    Рекламы много, вот только не видел ни одного восторженного отзыва типа "Вау!!! Перевели с кобола на джаву - он сразу стало быстрее работать и при этом меньше ресурсов потреблять - смогли заменить один дорогой мейнфрейм на пару дешевых мелких серверов".


    1. Serge3leo
      01.08.2024 14:26

      смогли заменить один дорогой мейнфрейм на пару дешевых мелких серверов".

      Хм, да только одна регламентная перезагрузка какого-нибудь бытового Linux-а раз в год, недопустимо снижает коэффициент доступности. Этот инструмент для переноса ПО со старых мейнфремов IBM на новомодные мейнфреймы IBM, и, как бы понятно, не в деньгах счастье.