Американская комиссия по пенсионному обеспечению работников на железных дорогах (United States Railroad Retirement Board, RBB) начала обновлять свою компьютерную инфраструктуру 50-летней давности. Она объявила поиск подрядчика, который способен помочь в модернизации компьютерных систем. Работа ожидается большая: программное обеспечение содержит 7 млн строк на языке программирования COBOL.

В наши дни COBOL не назовёшь очень модным языком программирования. Молодые разработчики нечасто выбирают его для изучения, а многие опытные специалисты уже на пенсии.

COBOL – один из первых языков программирования в мире. В 60-е годы он использовался для разработки бизнес-приложений. Несмотря на свой возраст, многие из тех систем работают до сих пор, и их модернизация – довольно большая проблема.

На иллюстрации слева – Грейс Хоппер, американский учёный и контр-адмирал флота США, одна из разработчиков Кобола и вообще создателей концепции машинно-независимых языков программирования. Её называют «бабушкой Кобола».

Возвращаясь к комиссии по пенсионному обеспечению железных дорог, по последним финансовым отчётам, в их распоряжении находится 200 основных приложений, которые работают на COBOL и специализированных мейнфреймах. В общей сложности это богатство содержит 4200 компьютерных программ и около 7 млн строк кода. Можно примерно оценить объём работы.

По документам, RBB собирается выделить на обновление ИТ-инфраструктуры чуть более $12 млн до окончания 2017 финансового года (то есть на два ближайших года). Вероятно, это только начало. Проект рассчитан на две фазы и может затянуться на несколько лет. RBB рассчитывает перейти на распределённую инфраструктуру с открытыми стандартами. План также предполагает «фундаментальную смену парадигмы с batch-ориентированных процессов на непрерывные транзакционные процессы. Желательно, чтобы в результате приложения работали более эффективно, имели простую, более понятную логику и были лучше задокументированы». Из этой фразы можно предположить, что в нынешнем состоянии программный код неэффективен, непонятен и плохо задокументирован.

Встреча с потенциальными подрядчиками состоится 21 в чикагской штаб-квартире RBB.

Проблема модернизации древних ИТ-систем особенно актуальна для США, где информатизация началась раньше других стран. Но такие ситуации, как у RBB, наверняка возникают и в наших краях.

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


  1. Rumlin
    11.05.2015 13:35

    Не представляю у нас, где у нас может возникнуть такое. Может, где в медучреждениях foxpro живет. Даже Фортран я встречал лет 15 назад и тогда это уже выглядело как экзотика (доценты на физфаке писали программы).


    1. EndUser
      11.05.2015 14:09
      +3

      Может быть и поныне пишут. Им удобнее пакетный ввод-вывод. В экранную форму-то, небось, сложновато ввести 70000 чисел.


    1. shpaker
      11.05.2015 14:21

      Ну например на моей работе, кем-то странным, было принято решение писать основную программу с которой работают на рабочих местах, в Delphi в связке с Firebird, в котором нужно хранить очень много данных. А время идёт, и обновления необходимы регулярно, а делфи уже совсем не торт.


      1. Rumlin
        11.05.2015 14:26
        +1

        Если решение было принято лет 10 назад, то вполне оправдано т.к. C++ существенно сложнее, а Delphi многие изучали в университете и найти разработчиков было проще.


        1. shpaker
          11.05.2015 14:46

          Не хочется в детали вдаваться, но срок гораздо меньше чем 10 лет. Да и не важно, вы же писали что не представляете где у нас такое возникнуть может, вот я вам и отвечаю что может, и ещё как ))


      1. Tonna
        11.05.2015 18:32
        +1

        Не вижу проблем с Delphi. На многих предприятиях до сих пор пишут на нем ПО.
        У меня сын на первом курсе ведущего московского ВУЗа еще паскаль изучает.


        1. idiv
          11.05.2015 19:36
          +5

          Для изучения программирования с нуля Паскаль самое оно (подготовка может быть у всех разная, а общая база нужна). Главное дальше развиваться, чего зачастую в наших ВУЗах не наблюдается.


          1. lubezniy
            11.05.2015 22:23
            +7

            А что, в рамках Delphi после вуза развиться нельзя?


            1. idiv
              12.05.2015 19:37

              Мое мнение, что для нулевых знаний Паскаль — самое оно, он несколько проще Делфи.

              Я имел ввиду, что в ВУЗах неплохо бы еще что-то серьезное давать, С, С++, Java (это то, что используется в моей специальности) С#, а не останавливаться на Паскале и ставить в диплом «программирование». Расширять кругозор, так как потом многим инженерным специальностям они понадобятся в той или иной мере (по крайней мере в западной классификации инженер должен иметь представление об этих языках).


      1. Impuls
        12.05.2015 07:59
        +1

        Скажу Вам больше. У меня на работе рабочие места писаны на: Delphi+Fortran+Firebird. Вот это умат. Правда сейчас проблемка с Fortran для win7 x64. Оттого потиху пилят под что-то другое. Ах да. Еще и с документацией проблемы, точнее ее вообще нет


      1. rtzra
        13.05.2015 12:39

        А чем «Делфи не торт»? Сложно найти разработчиков или «понаписано и недокументировано»?


    1. fundorin
      11.05.2015 15:54
      +1

      Возможно, на ГЭС, атомных электростанциях и в других режимных учреждениях.


    1. Spetros
      11.05.2015 16:58

      Недавно было сообщение о том, что 30-летний сервер HP используется библиотекой института научной информации по общественным наукам. И вроде как его и терминалы обновлять пока не собираются.
      geektimes.ru/post/248132


      1. vxsw
        11.05.2015 20:23

        Библиотекой ИНИОН? А этот сервер не сгорел?


    1. vsapronov
      11.05.2015 19:29

      Когда я учился в универе, то в одной конторе при факультете писали автоматический компилятор из кобола в джаву. Вроде бы проект был востребован — много мейнфреймов было, которые очень хотелось обновить. Но по-моему эти мейнфреймы были как раз в США…


    1. stalinets
      11.05.2015 19:40

      Недавний пример — сгоревшая библиотека, которая просила у народа компы на процессорах Intel от 80286 до 80486, потому что у них под такие компы заточен древний сервер…


      1. Rumlin
        11.05.2015 20:09
        +1

        Там больше от «денег нет», чем от древнего сервера.


        1. Crazybot
          12.05.2015 09:10

          Нет, т.к. они специально уточняли, что нужны именно такие машины и более новое приносить не нужно.


          1. wiz
            13.05.2015 14:43

            Бред какой-то. Процессоры такого класса сейчас чуть ли не в браузерах эмулируются.


            1. Rumlin
              13.05.2015 17:13

              Судя по публикациям — у них вопрос в софт и базе книг. Лет 30 наверное наполняли базу.


    1. AmberSP
      12.05.2015 09:32

      COBOL не знаю, а фортран очень активно используется в некоторых НИИ. Некоторые приложения для моделирования физических процессов написаны на нём, работают и выдают данные, которые хорошо соотносятся с экспериментальными. Так что никто это переписывать не собирается. Да и цена бага будет слишком высокая.


    1. kefirfromperm
      12.05.2015 10:55
      -1

      PowerBuilder


    1. Pinsky
      12.05.2015 11:22

      фортран и ныне жив)


  1. justaguest
    11.05.2015 15:56
    +2

    Давайте я буду первым, кто обратит внимание на этот совершенно заурядный факт: один из разработчиков языка программирования (!) — человек с очень высоким званием «контр-адмирал флота США»(!!), и этот военный человек еще является и учёным(!!!). Ну, и, что бы окончательно добить — это женщина.


    1. MuLLtiQ
      11.05.2015 17:02
      +22

      Вы впервые услышали о Грейс Хоппер? :)


    1. anderston
      11.05.2015 17:48
      +4


  1. SerJook
    11.05.2015 16:08
    -1

    Ну покрыть юнит тестами, да переписать


    1. Disasm
      11.05.2015 19:19
      +4

      Это же сколько тестов должно быть для 7 миллионов строк кода?


    1. bormotov
      11.05.2015 22:16
      +3

      люди хотят уйти от пакетной обработки, какими юнит-тестами, простите, этот уход нужно подкреплять?

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


  1. wiz
    11.05.2015 20:14
    +5

    Работка для опытных археологов.


    1. skiedr
      13.05.2015 00:17
      +1

      Ага, я тоже «Глубину в небе» Винджа вспомнил.


  1. andy128k
    11.05.2015 21:43
    -2

    «4200 компьютерных программ и около 7 млн строк кода»
    Не так уж и страшно. Если это отдельные программы и они логически отделены, то каждая по-отдельности (в среднем) не так уж и велика. Переписывать, конечно, много, но не так уж и неподъёмно.


    1. Alexeyslav
      12.05.2015 09:03
      +3

      По одной программе в день(фантастика!) нужно будет минимум 11 человеко-лет труда без болезней, выходных и отдыха.
      Типичный программист(где-то были исследования на эту тему) выдает в день 14 строк кода с написанием, отладкой и всем прочим. Сколько для этого нужно человеко-лет, сами посчитаете? А на это дело выделили всего 12млн$, т.е. немногим меньше чем 2$ за строчку кода который надо будет переписать. Большая часть из которых уйдет на орг.меры, т.е. не достанется конечным исполнителям.
      Я бы сказал, на первый взгляд это вообще нищенский бюджет под такую задачу.


      1. areht
        15.05.2015 10:54

        > Типичный программист(где-то были исследования на эту тему) выдает в день 14 строк кода с написанием, отладкой и всем прочим.

        Это для 50-ти летней проги на коболе.

        На новом коде всё оптимистичнее


      1. Pinsky
        15.05.2015 12:19
        +1

        >Типичный программист(где-то были исследования на эту тему) выдает в день 14 строк кода с написанием, отладкой и всем прочим.

        И 200 ответов на хабре.


        1. Alexeyslav
          15.05.2015 14:40

          Это 14 готовых строк, а пишет за день гораздо больше. Да и среднее это по больнице. Кто-то больше кто-то меньше, наверняка есть такие маги которые сразу пишут без ошибок как автомат и выдают по 1000 строк в день при этом не нуждаясь в отладке.


          1. Pinsky
            15.05.2015 16:29

            Знаю я одного такого мага — его код работает только на его машине.


  1. degs
    11.05.2015 23:40
    +4

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


    1. Mixim333
      12.05.2015 19:08

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