Пользователь
0,0
рейтинг
16 мая 2013 в 13:40

Разработка → COBOL: в поисках свежей крови

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

Есть ли смысл в наши дни IT-специалисту приступать к изучению COBOL? Может показаться, что в этом столько же смысла, сколько и в том, чтобы начать изучать Windows XP. Но, это далеко не так, COBOL — один из старейших языков программирования в мире, он живет и здравствует поныне в огромном количестве программ в банковской, финансовой, промышленной и других сферах по всему миру.
COBOL не вышел на пенсию, нет, но вот поколение программистов, написавших все эти приложения — они уходят на заслуженный отдых. Именно поэтому образуется нехватка знаний, чтобы поддерживать эти программы и поддерживать их в актуальном состоянии.
В пресс-релизе, на веб-сайте Micro Focus, Кевин Брерли, отвечающий за управление программными продуктами в компании Micro Focus, сказал:
В настоящее время COBOL поддерживает 90% бизнес-систем, используемых корпорациями из списка Fortune 500 и используется в 85% всех ежедневных финансовых (бизнес) транзакций. Отсюда вывод — обучение языку COBOL в университетах даст студентам знания, полезные в жизни, они смогут их использовать дальше — в организациях, напрямую связанных с бизнесом. Без этого же, риски для бизнеса, использующего COBOL, будут повышаться.

Хорошей новостью является то, что Micro Focus расширила программу поддержки учебных заведений, предприятий и студентов с целью помочь образованию нового поколения разработчиков на языке COBOL.
По словам Micro Focus, новая программа поддержки будет стимулировать развитие языка COBOL в учебных заведениях, будут проводиться соревнования с последующими награждениями с возможностью стажировок.
Брерли также добавил, что предприятия сегодня должны понимать — мир движется вперед, и чтобы не отставать — необходимо преодолеть разрыв в уровнях квалификации между поколениями разработчиков, объединить их и их знания.

Micro Focus предоставляет эту программу бесплатно, включая продукты Enterprise Developer и Visual COBOL. А также всю необходимую документацию.

Статистика

В то же время, редактор известного журнала CRN, Sander Hulsman пишет, что в 73% университетов регулярное преподавание COBOL не развивается. Интересно, что такое положение дел не совпадает с мнением директоров высших учебных заведений. Из опрошенных по всему миру 119 директоров, 58% заявили, что преподавать и развивать Cobol необходимо. Также отметим, что 27% процентов университетов по-прежнему продолжают преподавать этот старейший язык программирования.

Увы, в учебных заведениях COBOL вытесяняется языками Java, C# и C++ (наиболее популярным языком является Java).
Это потверждает и Huib Klink, старший консультант по продажам компании Micro Focus: «Новые языки программирования, такие как Java и C#, очень популярны среди студентов. Но язык COBOL прочно закрепился на предприятиях и еще долго будет спрос на COBOL-программистов. Наше исследование показало, что семь из десяти университетов, по крайней мере в ближайшие десять лет, по-прежнему будут работать с приложениями, написанными на языке COBOL. А 25% вместо десяти называют двадцать лет».
И, повторяет, сказанные выше слова Кевина Брерли: если не изучать COBOL — повысятся риски, связанные с бизнесом.

Из постов на Хабре также может быть интересно интервью с Грейс Хоппер («бабушка COBOL») и высказывание Дейкстры об этом языке.

P.S. Пара примеров кода на COBOL

В списке, подсвечиваемых Хабром языков, нет Кобола, однако…
Самая короткая программа:
 $ SET SOURCEFORMAT"FREE"
IDENTIFICATION DIVISION.
PROGRAM-ID.  ShortestProgram.

PROCEDURE DIVISION.
DisplayPrompt.
    DISPLAY "Я сделал ЭТО".
    STOP RUN.


Умножить два введенных числа:
$ SET SOURCEFORMAT"FREE"
IDENTIFICATION DIVISION.
PROGRAM-ID.  Multiplier.

DATA DIVISION.

WORKING-STORAGE SECTION.
01  Num1                                PIC 9  VALUE ZEROS.
01  Num2                                PIC 9  VALUE ZEROS.
01  Result                              PIC 99 VALUE ZEROS.

PROCEDURE DIVISION.
    DISPLAY "Введите первое число : " WITH NO ADVANCING.
    ACCEPT Num1.
    DISPLAY "Введите второе число : " WITH NO ADVANCING.
    ACCEPT Num2.
    MULTIPLY Num1 BY Num2 GIVING Result.
    DISPLAY "Результат = ", Result.
    STOP RUN.


Материал переведен и обработан с сайтов:
  1. cfoworld.com.au (11.05.2013, автор не указан)
  2. computable.nl (14.05.2013, автор Sander Hulsman, доб. Dirk Munk)
@rasa
карма
58,7
рейтинг 0,0
Пользователь
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

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

  • +17
    Увы, в учебных заведениях COBOL вытесяняется языками Java, C# и C++

    И слава богу! Если в паре с паскалем начнут преподавать ещё и кобол, выпускающиеся студенты будут ещё более не годными. Сам кобол прекрасен и интересен многим специалистам, однако студентам и распространённые языки хоть как-нибудь знать было бы хорошо.
  • 0
    удалено
  • –1
    По Коболу читал только документацию к ЕС ЭВМ. Насколько я понял, он по подходу не отличается от XBase?
    Или есть какие-то важные отличия?
  • 0
    Наши программисты на COBOL до сих пор работают в терминалах: чёрный текстовый экран 80х20 символов; мышь поддерживается на зачаточном уровен, можно только ставить курсор в поля ввода; никакой многооконности или многозадачности; наименования программ, библиотек и баз данных — чуть ли не максимум восемь символов; всё управление командами через терминал.

    • +12
      Дак купите им уже нормальные компьютеры что ли.
      • 0
        А при чём здесь компьютеры-то?
        Компьютеры у них современные, по два больших монитора, вот только среда разработки — Чорный Терминал :)
        • +4
          Да я не серьёзно :-). Просто так описали красочно и хорошо «в тёмной-тёмной комнате...». Не удержался.
    • 0
      Хм, а я на python так программирую. Только шрифт в терминале такой, что помещается чуть поболее 80x20. Ну и многозадачность в мире unix испокон веков… А в остальном издалека процесс выглядит так же.
    • +1
      Наши админы тоже в терминалах работают. Чёрный текстовый экран 80х20 символов, мышь поддерживается на зачаточном уровне, а единственный цветной элемент — синий фон MC.
      И ничего, не жалуются :)
      • 0
        Купите им нормальные компьютеры.
    • 0
      80x25
  • +1
    Программисты SAP (там вариация COBOL'а — ABAP) — одни из самых высокооплачиваемых.
    • +4
      Но есть нюанс, написание программ на нем не доставляет большого удовольствия. Вот и приходиться выбирать между большими деньгами и интересной работой.
      • +2
        У меня постыдные оптимизационные мыслишки пробегают. Например написать транслятор из какого-нибудь приятного языка (Python) в Cobol.

        Или как тот парень, за часть зарплаты аутсорсить в Китай/Индию. Думаю там за двойную местную зарплату, по сравнению с «традиционными языками» аборигены выучат что угодно. Я же, пусть и платя дважды, всё равно останусь в плюсе, ибо слыхал о Cobol вакансии с оплатой $400k в год.
        • 0
          У меня постыдные оптимизационные мыслишки пробегают. Например написать транслятор из какого-нибудь приятного языка (Python) в Cobol.
          Лучше backend для LLVM. И приятных языков больше будет (правда, Python’а не будет), и примеры трансляции уже есть (трансляция в C и трансляция в javascript, как минимум).
        • +1
          Это конечно здорово. Но, повторюсь, есть один нюанс (с)
          Про кобол не скажу, но в абапе самое страшное не язык, а его окружение. Это совершенно безумные названия таблиц, функций и сущностей. Все это множится на не очевидную по началу логику и отсутствие вменяемой документации. Именно за это и платят такие деньги, разгребать индусский код на языке 70-ых годов — то еще удовольствие.
        • +1
          Такие мыслишки бегают у очень многих уже не одно десятилетие. Систем транслирующих что угодно в Кобол и Кобол во что угодно уже тьмы и тьмы. А воз и ныне там.
          Выучить Кобол это задача максимум на месяц для средненького программиста. Только смысла в этом ноль потому как разработка на Коболе это 95% инфраструктура и библиотеки и 5% язык. А инфраструктуру можно получить, например, работая в большом старом банке и имея доступ к мейнфреймам (и уж точно никакого интернета наружу).
    • +1
      У меня такое чувство, что рынок ABAP'еров уже сокращается.
      Во всяком случае, приходят кандидаты с ABAP'а.
  • 0
    Я думаю, что если бы Коболистам платили бы как АБАПовцем — то и люди бы учили этот язык и шли на нём работать.
    А так: КОБОЛ vs C# vs ABAP
    Т.е. з/п средние по рынку ( в отличие от ABAP). А зачем изучать допоторный язык?
  • +7
    В подобной статье хочется увидеть пару примеров кода на языке, который празднует день рождения :)
    • 0
      У языка, скорее, год рождения :)
      Пару простых примеров добавил.
  • –1
    Тащить систему на коболе и считать это своей карьерой… Подумаем, что станет с системами через 20-30 лет. Вам 50 лет, вы «новый» эксперт в коболе, и вот её выкидывают (наконец-таки) на свалку. И какие карьерные перспективы открываются у опытного кобалиста?
    • +5
      В этом предложении слово «кобол» можно заменить на любое другое. Например, на java.
      • +2
        Поиск вакансий на ХедХантере:
        Java: Киев = 242
        Delphi: Киев = 14
        Cobol: Украина ×

        Когда для java будет столько же вакансий сколько и для Кобола тогда их можно и сравнивать с точки зрения перспективности карьеры
        • +8
          Это лишь значит, что через 30 лет в Киеве 242 человека станут безработными, а не 0, как было бы с коболом ;)
          • +1
            Ну да, если не шевелить задницей в сторону новых технологий, то так и будет. Я же не зря привёл еще и Делфи в выборке.
      • 0
        Угу. Потому что «программист, строящий карьеру на языке Х» априори плохой программист и просто кодер.

        Я к тому, что изучение языка программистом не должно занимать много времени (если этот язык не несёт за собой серьёзные изменения в методологии разработки, понятно, что переход на ФЯП или даже на пролог будет тяжёлым). Если же человек строит будущую карьеру на умирающем языке — то это дурацкое решение для человека, у которого есть свобода выбора.
        • +3
          Я к тому, что изучение языка программистом не должно занимать много времени

          Не согласен. Язык это не только синтаксис и системные библиотеки. Это и всё остальные существующие библиотеки, баги в них, баги в языке, баги в разных версиях, паттерны использования возможностей синтаксиса, так же это коммунити, история и принципы разработки языка, знания о том что происходит на уровень ниже, производительность и потребление памяти во всём вышеперечисленном, деплой/администрирование рантайма и библиотек.

          Чтобы принимать архитектурные решения при создании программы, нужно это всё знать на перёд.

          Можно на всё забить, а библиотеки выбирать по принципу «самое популярное что гугль выдаёт», но тогда получится г***окод.
          • –1
            Вы знаете, если знать всё это, то человек всё равно останется кодером. Условно говоря, «знание всех багов в библиотеках» это отчаянно конъюктурное и переходящее знание. Его приобретение чуть-чуть улучшает эффективность, но не является критическим фактором.

            А вот решение «в этом месте у нас будет DSL, а вот тут мы будем использовать локальное хранение, а вот там — только persistent, да ещё и с дублированием в wal-логе» — это уже больше похоже на программиста.

            Алгоритмы, общее ощущение того, «как всё это работает» значит куда больше, чем всё, что вы перечислили. Скилл же «администрирования рантайма» важен, но не является прямым скиллом программиста. В девопсе этому учат за несколько дней.
            • +5
              Нет, полностью не согласен. Не получится такие решения «в этом месте у нас будет DSL, а вот тут мы будем использовать локальное хранение, а вот там — только persistent» эффективно принимать, изучив язык за пару недель (пару месяцев).

              Алгоритмы, общее ощущение того, «как всё это работает» значит куда больше, чем всё, что вы перечислили.

              Я и не говорю, что нужно обязательно игнорировать алгоритмы и общее ощущение того, «как всё это работает».

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

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

              Если, например, по заказу крупной фирмы, вам нужно сделать библиотеку к их API, которой будет пользоваться весь мир, на новом, неизвестном Вам языке, то ничего не выйдет со знаниями, полученными за несколько дней, даже назвение/неймспейс неудачное придумаете и библиотеки не удачные подключите.
  • +22
    Перед наступлением 2000 года один опытный программист срубил немало денег: специалистов по Коболу осталось мало, а программ, в которых надо было исправить «проблему-2000», — много. Однако чем ближе приближалось новое тысячелетие, тем страшнее было программисту его встречать. Поэтому он в итоге, не дожидаясь конца света, лег в глубокую заморозку и попросил разбудить его уже в 2001 году.

    Когда программист очнулся, вокруг него была странная футуристическая обстановка, а с огромного экрана видеофона на программиста пристально смотрел пожилой негр в яркой военной форме.

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

    — Почему же вы разбудили меня сейчас? Обнаружили ошибку?

    — Не совсем. Понимаете, приближается 10000 год, а вы — единственный человек на планете, который знает Кобол…
  • +7
    Очередная статья про Кобол с очередным однотипным содержанием. Практически везде мне говорят, что:
    • Кобол крут, потому что стар.
    • Кобол крут, потому что на нем держатся сотни бизнеса и подразделения DARPA.
    • Пока его никто не учит, кучка программистов-динозавров втайне от мейнстрима пилит стандарт 2002 года и диалекты вроде Visual COBOL.
    • Коболистов так мало, что им по этой причине много платят.


    И при этом я еще нигде не видел внятных ответов на вопросы вроде:
    • Действительно ли он так незаменим в принципе? Что такого есть в Коболе, что нельзя написать на более современных языках?
    • Какова динамика общего количества строк кода на Коболе, которые еще используются в промышленности?
    • Вместо того, чтобы бить тревогу о вымирающих коболистах, может быть, стоило бы предпринять меры по постепенному (понятно, что процесс будет не из быстрых, но все-таки он не будет бесконечным) переходу на более современные языки? Можно же использовать те же C bindings или на худой конец автоматические трансляторы (потому что наверняка будет легче выучить Кобол, чем разобрать получившееся после трансляции месиво) ?

    Буду благодарен, если мне ответят на эти вопросы.
    • +1
      1. Заменим. Ничего такого в нем нет
      2. Динамика не в пользу Кобола
      3. Эти меры постоянно предпринимаются (во всех возможных комбинациях)

      И тем не менее Кобол (т.е. работающий коммерческий софт на нём) проживёт еще очень и очень долго. И в ближайшие 20-30 лет спрос на Кобол-программистов будет точно.
  • +1
    Почему 55? Ему 55 в следующем году будет, ссылки кстати какие то странные,

    " В пресс-релизе, выпущенном в 2008 году (в честь 50-й годовщины языка), Кевин Брерли, отвечающий за управление программными продуктами в компании Micro Focus, сказал: " — ведет на прес-релиз от 14 марта 2013 года

    cfoworld ведет на 404

    • 0
      Спасибо, поправил все неточности из перевода.
      Ссылка из-за слеша на конце не работала — также поправил.
      • 0
        а еще на хабре есть аж 4 мини урока по КОБОЛу )))

        ЗЫ Это типа «самопиар» :-D
        • 0
          Как продвигается ваша книга?
          • 0
            после вашего комментария надеюсь оживет) «пендаль стыда и позора» он знаете ли важен для самоорганизации)

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