Що таке COBOL і чому так багато установ покладаються на нього?

Губернатор Нью-Джерсі нещодавно згаданий COBOL, 60-річна мова програмування. Що саме? І чому це все ще є стрижнем фінансового світу, незважаючи на те, що мало хто вміє ним користуватися?

Походження COBOL

Грейс Хоппr був феноменом. Вона здобула ступінь доктора математики в Єльському університеті, була професором у Вассарі і залишила ВМС США у званні контр-адмірала. Про її внесок у сферу обчислювальної техніки можна судити за кількістю фондів і програм, які мають створено в її пам’ять. The Національний енергетичний науково-обчислювальний центр назвав його Cray XE6 суперкомп’ютер за нею. На її честь ВМС також назвали свій ракетний есмінець USS Hopper. Девіз корабля «Aude et Effice» («Дерзай і роби») цілком міг бути придуманий, маючи на увазі Хоппера.

Спонукавшись створити мову програмування, ближчу до англійської, ніж розуміють комп’ютери з машинним кодом, Хоппер розробив перший компілятор. Це відкрило двері для перших компільованих мов, таких як FLOW-MATIC. Це принесло їй місце в конференції/комітеті з мов систем даних (CODASYL) 1959 року.

Вона також зіграла важливу роль у специфікації та розвитку Загальна ділово-орієнтована мова (COBOL). Перше засідання відбулося 23 червня 1959 р. і його звіт і специфікація мови COBOL послідував у квітні 1960 р.

COBOL був радикальним

COBOL містив деякі новаторські концепції. Можливо, найбільш значущою з них була можливість працювати на обладнанні різних виробників, що було безпрецедентним на той час.

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

Його словниковий запас зарезервованих слів (слів, які складають мову) налічує близько 400. Програміст об’єднує ці зарезервовані слова разом, щоб вони мали синтаксичний сенс і створили програму.

Будь-який програміст, який знайомий з іншими мовами, скаже вам, що 400 – це неймовірна кількість зарезервованих слів. Для порівняння, Мова C має 32, і Python має 33.

  Як оновити до Elementary OS Juno

Ще одна особливість COBOL – це сувора вимога, щоб певні рядки програми починалися з певних стовпців. Це похмілля з часів перфокарти. Сьогодні програмісти мають більше свободи при форматуванні COBOL, і їм більше не потрібно вводити все великими літерами. Це робить роботу з нею менш вимогливою та кричущою, але це все ще дуже творіння свого часу, як показано нижче:

IDENTIFICATION DIVISION.
      PROGRAM-ID. Hello-World.
      DATA DIVISION.
      FILE SECTION.
      WORKING-STORAGE SECTION.
      PROCEDURE DIVISION.
      MAIN-PROCEDURE.
           DISPLAY "Hello world, from How-To Geek!"
           STOP RUN.
      END PROGRAM Hello-World.

COBOL – ХІТ

Більшість транзакцій в банкоматах все ще використовують COBOL.

Як би незграбним це не здавалося сьогодні, COBOL був революційним, коли він був запущений. Він знайшов прихильність у фінансовому секторі, федеральному уряді та великих корпораціях та організаціях. Це було пов’язано з його масштабованістю, можливостями пакетної обробки та математичною точністю. Він був встановлений на мейнфреймах по всьому світу, прижився і процвітав. Як упертий бур’ян, він просто не загине.

Наша залежність від систем, які все ще працюють на COBOL, вражає. А звіт Reuters за 2017 рік поділився такою вражаючою статистикою:

Сьогодні використовується 220 мільярдів рядків коду COBOL.
COBOL є основою 43 відсотків усіх банківських систем.
Системи на базі COBOL обробляють 3 трильйони доларів щоденної торгівлі.
COBOL обробляє 95 відсотків усіх махінацій карток банкоматів.
COBOL робить можливими 80 відсотків усіх транзакцій з кредитними картками особисто.

Як бачите, важко прожити день без використання системи, яка залежить від COBOL. Банківські рахунки та послуги очищення чеків, а також публічна інфраструктура, як-от банкомати та світлофори, все ще працюють на цьому коді, написаному десятиліття тому.

COBOL – це проблема

Програмісти, які знають COBOL, або на пенсії, думають про відставку, або померли. Ми постійно втрачаємо людей, які мають навички підтримувати ці життєво важливі системи в працездатному стані. Нові, молоді програмісти не знають COBOL. Більшість також не хоче працювати над системами, для яких потрібно підтримувати старовинний код або писати новий код.

  Як знайти та вимкнути ресурсоємні розширення Chrome

Це така проблема, що Білл Хіншоу, ветеран COBOL, був змушений вийти на пенсію, щоб заснувати Ковбої COBOL. Ця приватна консалтингова фірма обслуговує відчайдушних корпоративних клієнтів, які ніде не можуть знайти кодерів, які знають COBOL. «Молоді люди» в COBOL Cowboys (девізом якого є «Не наше перше родео») за 50 років. Вони вважають, що 90 відсотків бізнес-систем із списку Fortune 500 працюють на COBOL.

Звісно, ​​приватні підприємства, корпорації та банки не єдині, кому необхідно подрібнювати величезні обсяги фінансових даних. Федеральні, провінційні та місцеві служби мають однакові вимоги. Як і всі інші, вони використовують для цього мейнфрейми та COBOL.

Жахливий вплив пандемії коронавірусу призвів до розриву серця, смертей та економічної невизначеності для власників бізнесу, співробітників і самозайнятих. Величезна кількість звільнених і звільнених співробітників у Нью-Джерсі очолювали губернатор звернувся до досвідчених програмістів COBOL щоб прийти на допомогу застарілим внутрішнім системам держави. Це напружено, щоб впоратися з 326 000 нових реєстрацій.

The Відкритий проект мейнфрейма проводить волонтерську ініціативу допомоги. Якщо ви думаєте, що зможете допомогти, вони будуть раді почути від вас.

Нью-Джерсі не самотній у цьому скрутному становищі. Понад 10 мільйонів людей зареєструвалися по безробіттю, і ця цифра зростає. Коннектикут намагається обробити чверть мільйона нових реєстрацій на державних системах 40 років.

Це широко поширена і глибоко вкорінена проблема. А Звіт Урядової служби звітності за 2016 рік перераховані системи COBOL, що працюють на мейнфреймах віком до 53 років. Сюди входять системи, які використовуються для обробки даних, пов’язаних з Департаментом у справах ветеранів, Міністерством юстиції та Управлінням соціального захисту.

Чому б не перенести та оновити, наприклад, вчора?

Оновлення цих застарілих систем не так просто, як здається. Системи є життєво важливими, цілодобовими точками опори, на яких орієнтуються фінансові, урядові та бізнесові світи. Код старий, багатошаровий і, часто, погано або повністю недокументований. Це також має працювати, весь час. Цю перспективу порівнюють зі зняттям гвинтів з літака і спробою встановити на нього реактивні двигуни — під час польоту.

  Чи може мій iPhone або iPad отримати вірус?

Крім ризику, економічний аргумент для переходу на сучасні системи також є важким. Гроші, витрачені на те, щоб ці мейнфрейми та програми COBOL працювали, вражають. Чи повинні установи викинути все це і почати заново, поки цей код COBOL все ще працює та функціонує? Це важкий крок для дошки, яка, ймовірно, не особливо технічно схильна. Перехід на COBOL не буде дешевим і не швидким.

«Я щойно пройшов конверсію, щоб перейти з COBOL на Java», — сказав Хіншоу. «Їм знадобилося чотири роки, і вони ще не зроблені».

Коли Commonwealth Bank of Australia замінив свою основну платформу COBOL у 2012 році, на це знадобилося п’ять років з остаточною вартістю 749,9 мільйонів доларів (1 мільярд австралійських доларів).

І ось тоді все йде за планом. банк Великобританії, БСБ, був змушений перейти з системи на основі COBOL у 2018 році через викуп. Це не пішло добре. Оскільки банк днями не міг торгувати, вартість міграції склала 330 мільйонів фунтів стерлінгів. Це було на додаток до бюджетних витрат на інженерні роботи для фактичної міграції. TSB також втратила 49,1 мільйона фунтів стерлінгів від фінансових шахрайств, поки її системи плавилися.

Компенсація клієнтам перевищила 125 мільйонів фунтів стерлінгів, і банку довелося витратити 122 мільйони фунтів стерлінгів на найм нового персоналу для вирішення 204 000 випадків скарг клієнтів. Виконавчий директор пішов у відставку, і компанія все ще зачищає збитки через два роки після події.

Загадка COBOL

Речі не можуть залишатися такими, як є, але перспектива щось зробити з цим навряд чи є привабливою. Тим не менш, єдиний спосіб покращити ситуацію – це проводити контрольовані, обережні міграції на сучасне програмне та апаратне забезпечення.

Щоб досягти цього без збоїв, втрати даних і простоїв, знадобляться сучасні знання та гроші, які становлять 50 відсотків рівняння. Інша половина – це досвід та час COBOL. На жаль, це два інгредієнти, які ми майже закінчили.

Можливо, до міста приїде нова порода ковбоїв COBOL.