Язык программирования для банковских программ

Обновлено: 08.07.2024

В 1950-е году было очень мало стандартных языков программирования, и большинство компьютеров работали на персональных вариантах. В 1959 году Министерство обороны США собрало 40 экспертов из правительства и компьютерной индустрии для создания Конференции по языкам систем обработки данных (CODASYL). Они вдохновились стандартным языком программирования FORTRAN, который использовался в научном сообществе, а также языками MATH-MATIC и FLOW-MATIC. В 1960 году COBOL был готов к коммерческому запуску, а к 1970 стал самым популярным компьютерным языком мира.

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

Интересные отсылки

  • В 1959 году, разочаровавшись в скорости разработки языка, один из членов CODASYL по имени Говард Бромберг заказал за $15 надгробие с надписью COBOL и отправил его Чарльзу Филипсу, директору отдела системных исследований Министерства обороны США.
  • В фильме 1984 года «Терминатор» перед глазами главного героя появляются кусочки кода COBOL неизвестного происхождения. YouTube-канал Behind the Screens изучил их и обнаружил, что они были напечатаны в выпусках компьютерного журнала Nibble за 1984 год, а в некоторых из них были указаны координаты четырех советских спутников.

Почему бы не обновиться?

Сейчас с трудом можно найти новых программистов на COBOL, поэтому возникает очевидный вопрос: почему бы не перейти на более современные технологии?

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

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

Австралийский опыт

В 2012 году Банк содружества начал заменять систему COBOL на программу, разработанную немецкой компанией SAP. После того, к чему это привело, вряд ли многие банки захотят последовать примеру Австралии.

Процесс занял пять лет и обошелся в более чем $749,9 миллиона. За это время произошло множество неприятностей. Например, в июне 2015-го в системе произошел сбой, из-за чего пропало 600 тысяч платежей и операций по списанию средств. Через три месяца случился еще один крупный сбой, из-за которого клиенты банка не могли пользоваться карточками, платежными приложениями и оплачивать счета. Некоторые успели понадеяться, что банк простил им задолженности, потому что на какое-то время у них обнулился остаток долга.

Другие древние языки

Можно ли считать COBOL «мертвым» языком программирования? Как ответил на Quora один программист, не существует мертвых языков, но зато есть много зомби. Они не добились такого же успеха, как COBOL, но их все равно можно найти в пыльных математических лабораториях различных университетов.

Основная сфера применения — банковская сфера, телефонные операторы, правительственные агентства.

Содержание

История


Руководителем проекта по созданию Кобола была женщина — Грейс Хоппер , часто ее называют "бабушка Кобола". Грейс делала свои первые шаги программирования в резерве ВМС США, набирая машинный код для компьютера Harvard Mark I в течение Второй Мировой Войны. В конце 1950-х она пришла к мысли, что языки ЭВМ можно было бы сделать похожими на человеческий язык, и тем самым более понятными, чем используемые тогда ассемблер и машинный код. В 1959 году совещание в Пентагоне даёт начало компьютерному языку, который позднее станет известен как “Кобол” (COBOL) и будет основным средством бизнес-вычислений в последующие 40 лет. [Источник 1]

“Кобол”, сокращённо от Common Business-Oriented Language (Общий бизнес-ориентированный язык программирования), был одним из первых компьютерных языков. И, наряду с “Фортраном”, он был одним из первых языков программирования, основанных на английской лексике.Всего было выпущено пять стандартов языка: COBOL-60, COBOL-68, COBOL-74, COBOL-85, COBOL 2002.

Спецификация COBOL

COBOL-60

Язык был утвержден исполнительным Комитетом 3 января 1960 года, и отправлен в государственную типографию. Заявленные цели языка определялись эффективной и портативной программой для легкого написания,а также для того, чтобы пользователи могли переходить на новые системы с минимальными усилиями и затратами.

Спецификации были представлены исполнительному Комитету на 4 сентября. Они не оправдали ожиданий: Джозеф Wegstein отметил, что "он содержит шероховатостей и требует некоторых дополнений", и Боб Бемер позже описал их как "мешанина". Комитет дал срок до декабря для улучшения языка. [Источник 2]


COBOL-61 - COBOL-65

Многие логические ошибки были найдены в COBOL 60. Неохотно краткосрочный комитет принялся за тотальную зачистку и к марту 1963 г., сообщалось, что COBOL-это синтаксис определяющийся как Algol, несмотря на то,что смысловые неясности остались.Ранние компиляторы COBOL были примитивными и медленными.

В конце 1962 года, IBM объявила, что COBOL будет их основным языком разработки, а развитие COMTRAN прекратится.

Спецификация COBOL была пересмотрена три раза в течение пяти лет после ее публикации. COBOL-60 была заменена в 1961 году на COBOL-61. Этот позже был заменен на COBOL-61 расширенные характеристики в 1963 году, который представил сортировки и отчет писателя объектов.Были добавлены объекты, исправлены недостатки, выявленные Honeywell в конце 1959 года.COBOL издание в 1965 году принес дополнительные пояснения к спецификации и появились средства для обработки массового хранения файлов и таблиц.

COBOL-68

Начались усилия по стандартизации COBOL и по преодолению несовместимости между версиями. В конце 1962 года ISO и ANSI сформировали группы для создания стандартов. ANSI произвел стандартный COBOL Х3.23 в августе 1968 года, который впоследствии стал основой для более поздних версий.Эта версия стала известна, как американский Национальный Стандарт COBOL и был принят ISO в 1972 году.

COBOL-74

К 1970 году, COBOLстал самым широко используемым языком программирования в мире.

Независимо от ANSI комитета, комитет CODASYL работает над совершенствованием этого языка программирования. CODASYL рассказала о новых версиях в 1968, 1969, 1970 и 1973, включая такие изменения, как новое межпрограммное общение, отладки и объединения файлов, а также улучшенную обработку строк и библиотек. И хотя CODASYL была независима от ANSI комитета, CODASYL был использован ANSI для идентификации функций для гарантирования реализации. В 1974 году ANSI опубликовал пересмотренный вариант COBOL, содержащий такие новые функции, как сегментацию модуля.

COBOL-85

В июне 1978 года начались работы по пересмотру COBOL-74. Предложенный стандарт существенно отличался от предыдущего, вызывая опасения по поводу несовместимости и конверсионных расходов. Г-н Брофи описывал предыдущие преобразования как "непродуктивные" и "трата наших программных ресурсов".

COBOL 2002 и объектно-ориентированный COBOL

В 1997 году, группа компании Gartner подсчитали, что в общей сложности из 200 миллиардов строк 80% всех бизнес-программ производились на COBOL.

В начале 1990-х годов начались работы по добавлению объекта-ориентации в следующей полной ревизии COBOL. Объектно-ориентированные средства были взяты из С++ и языка smalltalk.Некоторые производители (в том числе микро-Фокус, компания Fujitsu, и корпорация IBM) представила объектно-ориентированный синтаксис, основанный на проекты полного пересмотра. Окончательный утвержденный стандарт ISO был утвержден и опубликован в конце 2002 года.

COBOL 2014

Между 2003 и 2009, три технических отчеты выпустились с описанием объекта доработки в XML обработке и набора классов для COBOL.

COBOL 2002 страдал от плохой поддержки: нет компиляторов полностью поддерживающих стандарт. Это было из-за отсутствия пользовательского спроса на новые функции.

COBOL 2014 включает в себя следующие изменения:

  • Портативные арифметические результаты были заменены на стандарт IEEE 754
  • Основные характеристики были сделаны необязательными, такие как VALIDATE объекта.
  • Перегрузка метода
  • Динамическая емкость таблицы

Языковые особенности

Синтаксис

Cobol имеет английский синтаксис, который используется, чтобы описать почти все в программе. Например, условие может быть выражено x IS GREATER THAN y или более кратко, как x GREATER y или x > y. Можно использовать и более сложные условия, при этом нужно удалить повторяющиеся условия и переменные. Например, a > b AND a > c OR a = d можно сократить до a > b AND c OR = d. В следствие этого, синтаксис COBOL имеет более чем 300 запросов,и некоторые из ключевых слов являются альтернативой простому или множественному числу написания одного и того же слова, которое предоставляет дополнительные английские предложения; например, IN и OF ключевые слова могут быть взаимозаменяемы, как IS и ARE или VALUE и VALUES.

Каждая COBOL программа состоит из четырех основных лексических единиц: слов, литералов, картинок персонажа-строки и сепараторов. Слова включают зарезервированные слова и пользовательские идентификаторы. Они не превышают 31 символ и могут включать буквы, цифры, дефисы и подчеркивания. Литералы включают цифры (например, 12) и строки (например 'Hello!'). Сепараторы включают в себя пробел, запятые и точки с запятой.

COBOL требует чёткого структурирования файлов с исходным кодом программ. Каждая из них должна состоять из четырёх частей (в терминах COBOL - разделов):

  • Раздел идентификации записывается название программы, её автор, а также различные комментарии по поводу того, что программа должна делать (и что она делает на самом деле).
  • Раздел среды описывает периферийное оборудование, необходимое для работы программы.
  • Раздел данных описываются типы и структуры данных, которые используются в программе (в некотором роде этот раздел - аналог раздела type из Паскаля)
  • Раздел процедур находится, собственно, то, что сейчас называют программным кодом, то есть, алгоритмическая часть программы.

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

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

COBOL часто критиковали за его многословие. Сторонники говорят, что он был предназначен для того, чтобы облегчить программу обслуживания.COBOL был также предназначен для легкого использования и освоения программистами,но и в то же время понятным для не технического персонала, такого как диспетчеры.Стремление к доступной читаемости привело к использованию английского языка и его структурных элементов, таких как существительные, глаголы и т.д. [Источник 3]

Влияние на другие языки программирования

Структуры данных COBOL повлияли на последующие языки программирования. Его записи и файловая структура влияет на PL/I и Паскаль. Явная структура файла предшествовала развитию систем управления базами данных и, в связи с этим, произошел значительный прогресс, по сравнению с массивом Фортран.

COBOL-это COPY сооружение, хотя и считалось примитивным,но в итоге повлияло на развитие директивы include.

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

Масштабы использования

Кобол обычно критикуется за многословность и громоздкость, поскольку одной из целей создателей языка было максимально приблизить конструкции к английскому языку. (До сих пор Кобол считается языком программирования, на котором было написано больше всего строк кода). Так широко известно высказывание Дейкстры: “Использование Кобола калечит ум. Его преподавание, следовательно, должно рассматриваться как уголовное преступление”.

В то же время, COBOL имел прекрасные для своего времени средства для работы со структурами данных и файлами, он стал первым языком, в котором появился тип данных “запись”. Это обеспечило ему долгую жизнь в бизнес-приложениях, по крайней мере, в США.

Согласно исследованию Gartner от 2001 года (в случае с данным конкретным языком это вполне можно назвать “недавно”), 85% мирового объема бизнес-информации обрабатывалось на языке COBOL, а к текущему моменту объем кода, написанный этим языком программирования, начинает снова увеличиваться. Компания Micro Focus, занимающаяся разработкой и продажей инструментов модернизации COBOL, заявляет, что 70% мирового бизнеса до сих пор активно использует этот язык. Общая стоимость используемого в настоящее время кода COBOL оценивается в 2 триллиона долларов США. До сих пор ежегодно пишутся миллиарды новых строк кода на COBOL. [Источник 4]

Сейчас трудно представить себе разработчика, в арсенале которого есть только один язык программирования. Большинство технических специалистов инвестиционных банков выше среднего ранга, как правило, владеют двумя и более. В свою очередь, кадровые специалисты становятся все более взыскательны к навыкам программирования, которые может предложить кандидат. Так какие же языки с наибольшей вероятностью позволят вам получить заветную должность?


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

Java

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

Стоит отметить, что особую популярность среди работодателей он имеет в банках США. В европейских же вакансиях, вероятно на волне популярности Python, он упоминается все реже и реже, несмотря на возросшее количество вакантных технических должностей.

Python

Как и ожидалось, Python находится среди двух наиболее распространенных языков — вместе с Java он упоминается примерно в 5 тысячах резюме. Ранее он использовался в основном для расчета цен и рисков, но с каждым годом область его применения не прекращает расширяться. Во многих крупных банках по всему миру он пользуется даже большим приоритетом, чем Java.

Отчасти такой рост популярности может быть связан с тем, что благодаря его уникальной архитектуре, даже неспециалист способен применять Python для решения своих задач.

И пусть на данный момент он не является столь же значимым, как Java, навыки владения Python могут серьезно повлиять как на ваши шансы получить должность, так и на будущую зарплату в ней.

C++

Являясь опорой многих банков, C++ тем не менее, не прекращает терять в популярности среди молодого поколения программистов. Даже кратковременное возвращение на вершину благодаря возможностям к обработке больших объемов информации в высокочастотном трейдинге не спасло его нынешних позиций.

Cobol

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

Впрочем, навыки владения Cobol трудно назвать невостребованными — попав в оперирующий им банк, вы можете рассчитывать в среднем на 20% надбавку к заработной плате именно благодаря редкости этого языка. Большинство молодых программистов им просто не владеет.


Специально для «Клерка» Сергей Сердюк , преподаватель курса «Java-разработчик с нуля» в Нетологии и ex-главный разработчик в Альфа-Банк вместе с Жанной Журавлевой , директором по персоналу «Корус Консалтинг СНГ» (входит в группу компаний Сбербанка) рассказывают, можно ли поменять финансовую сферу на разработку и остаться работать с банковскими продуктами, почему именно Java и как осуществить переход максимально комфортно.

Возможно, работая в банке на позиции финансиста, вы задумывались, что хотите поменять специальность, но вам не хотелось уходить из своей компании и терять в деньгах? Мы нашли идеальный способ. Вы можете освоить другую перспективную специальность и остаться в своей компании. Например, стать Java-разработчиком.

Переход в IT даст больше возможностей для работы из дома и творческой самореализации. Да-да, а почему не приложить руку к созданию продукта, которым будут пользоваться миллионы?

В России последние десять лет идет массовый перенос банковских сервисов в онлайн. Значит, нужны те, кто сможет эти сервисы создавать, улучшать и обслуживать. Так что не сомневайтесь, без работы не останетесь.

Почему Java и причем здесь банки?

Более 3 миллиардов устройств уже сейчас работают с использованием Java (статистика с сайта Oracle). Это мобильные, веб, офисные приложения, приложения для автомобилей и даже кофе-машины.

То есть Java решает потребности большинства компаний.

Это подтверждает уважаемое сообщество программистов TIOBE. На протяжении многих лет Java занимает первое место в списке топ-20 индекса TIOBE. Список состоит из пятидесяти языков программирования и обновляется один раз в месяц.

Банки нуждаются в современных мобильных приложениях, банкоматах, ЭДО, банк-клиентах. Все это должно работать быстро и стабильно: выдерживать нагрузку обслуживая в сотни тысяч пользователей и, конечно, не сбоить.

В технической среде пока нет альтернатив, которые позволят совместить время на разработку, качество, вычислительную точность и скорость, поэтому Java и другие JVM языки в банках безальтернативно заняли свою позицию.

Быть Java-разработчиком перспективно

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

Java-разработчик непосредственно коммуницирует с создателем идеи приложения и продумывает реализацию каждого шага.

Сколько получают в банковском IT

Как и везде, зарплата любого разработчика, зависит от опыта и навыков. Есть градация в профессии:

  1. junior (начинающий);
  2. middle (средний);
  3. senior (опытный).

У этих градаций нет строго описанных критериев. А уровень описываемых компетенций от компании к компании может разниться. Поэтому уровень дохода лучше соотносить относительно опыта:

Такие зарплаты реальны в Москве и Питере. В регионах уровень дохода в большинстве сфер ниже, в том числе, и в разработке. Это правило может не распространяться на банки, потому что там уровень зарплат выше среднего значения, в принципе.

Еще вас ждет официальное трудоустройство, белые зарплаты, льготное кредитование сотрудников.

Как на практике?

Не стоит критично реагировать на переход финансиста в IT-разработку.

Мифы в Java-разработке

Развеем два распространенных мифа.

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

Однако многие нужные материалы есть в сети только на английском языке. Спойлер: за вас переводить их никто не собирается. Для новичков они слишком сложны и потому бесполезны.

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

Куда пойти учиться?

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

Даже онлайн, обучаясь в команде, можно получить необходимую поддержку и найти единомышленников.

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

Читайте также: