Какво е COBOL и защо толкова много институции разчитат на него?

Губернаторът на Ню Джърси наскоро споменатия COBOL, 60-годишен език за програмиране. Какво точно е то? И защо той все още е основната опора на финансовия свят, въпреки факта, че малко хора все още знаят как да го използват?

Произходът на COBOL

Грейс Хопr беше феномен. Тя спечели докторска степен по математика от Йейл, беше професор във Васар и напусна ВМС на САЩ с чин контраадмирал. Нейният принос в областта на компютрите може да се съди по броя на фондациите и програмите, които имат е създаден в нейна памет. В Национален изчислителен център за енергийни изследвания нарече своя Cray XE6 суперкомпютър след нея. Военноморските сили също кръстиха своя разрушител с управляеми ракети USS Hopper на нейно име. Мотото на кораба „Aude et Effice“ („Действай и направи“) може би е било измислено с мисълта за Хопър.

Подтикнат да създаде език за програмиране, по-близък до английския, отколкото компютрите с машинен код разбират, Хопър разработи първия компилатор. Това отвори вратата за първите компилирани езици, като напр FLOW-MATIC. Това й спечели място в Конференцията/Комитета по езици на системите за данни (CODASYL) от 1959 г.

Тя също играе важна роля в спецификацията и развитието на Общ бизнес ориентиран език (COBOL). Първата среща се състоя на 23 юни 1959 г. и нейният доклад и спецификация на езика COBOL последвано през април 1960 г.

COBOL беше радикален

COBOL съдържаше някои революционни концепции. Вероятно най-значимото от тях беше възможността да работи на хардуер, произведен от различни производители, което беше безпрецедентно по това време.

Езикът беше сложен и осигуряваше почти английски речник, с който да работят програмистите. Той е проектиран да обработва огромни обеми данни и да бъде изключително математически точен.

Неговият речник от запазени думи (думите, които съставляват езика) е близо 400. Програмист нанизва тези запазени думи заедно, така че да имат синтактичен смисъл и да създават програма.

Всеки програмист, който е запознат с други езици, ще ви каже, че 400 са невероятен брой запазени думи. За сравнение, C език има 32 и Python има 33.

  Как да използвате функцията за споделяне на екрана на Google Meet

Друга странност на 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, е удивителна. А Доклад на Ройтерс през 2017 г сподели следната зашеметяваща статистика:

Има 220 милиарда реда код на COBOL, които все още се използват днес.
COBOL е основата на 43 процента от всички банкови системи.
Системите, задвижвани от COBOL, обработват 3 трилиона долара ежедневна търговия.
COBOL се справя с 95 процента от всички прекарвания с карти на банкомат.
COBOL прави възможни 80 процента от всички транзакции с кредитни карти лично.

Както можете да видите, е трудно да преживеете един ден без да използвате система, която зависи от COBOL. Банковите сметки и услугите за клиринг на чекове, както и публичната инфраструктура, като банкомати и светофари, все още работят с този код, написан преди десетилетия.

COBOL е проблем

Програмистите, които познават COBOL, или са пенсионирани, мислят за пенсиониране, или са мъртви. Постоянно губим хората, които имат уменията да поддържат тези жизненоважни системи работещи. Новите, по-млади програмисти не познават COBOL. Повечето също не искат да работят върху системи, за които трябва да поддържате древен код или да пишете нов код.

  Как да получите известия на работния плот за съобщения в Gmail във вашия браузър

Това е такъв проблем, че Бил Хиншоу, ветеран от COBOL, беше принуден да напусне пенсионирането си да основа COBOL Cowboys. Тази частна консултантска фирма се грижи за отчаяни корпоративни клиенти, които не могат да намерят никъде кодери, които разбират COBOL. „Младежите“ в COBOL Cowboys (чието мото е „Не нашето първо родео“) са на 50-те. Те вярват, че 90 процента от бизнес системите на Fortune 500 работят на COBOL.

Разбира се, частните фирми, корпорациите и банките не са единствените, които трябва да намалят огромни количества финансови данни. Федералните, провинциалните и местните държавни служби имат същите изисквания. Както всички останали, те използват мейнфреймове и COBOL за това.

Ужасното въздействие на пандемията на коронавирус доведе до сърдечни проблеми, смъртни случаи и икономическа несигурност за собствениците на фирми, служителите и самостоятелно заетите лица. Огромният брой напуснали и уволнени служители в Ню Джърси водеха губернатор да апелира за опитни програмисти на COBOL да се притекат на помощ на застаряващите задни системи на държавата. Те се напрягат да се справят с 326 000 нови регистрации.

В Отворен мейнфрейм проект провежда инициатива, базирана на доброволци, за да помогне. Ако смятате, че бихте могли да помогнете, те ще се радват да чуят от вас.

Ню Джърси не е сам в това затруднение. Над 10 милиона души са се регистрирали за безработица и тази цифра нараства. Кънектикът се бори да обработи четвърт милион нови регистрации върху 40-годишните системи на държавата.

Това е широко разпространен и дълбоко вкоренен проблем. А Доклад за 2016 г. от Службата за отчетност на правителството изброени COBOL системи, работещи на мейнфрейми на възраст до 53 години. Те включват системи, използвани за обработка на данни, свързани с Министерството на ветераните, Министерството на правосъдието и Администрацията за социално осигуряване.

Защо не мигрирате и надстройвате, като вчера?

Надграждането на тези наследени системи не е толкова просто, колкото звучи. Системите са жизненоважни, 24/7 опорни точки, върху които се въртят финансовият, правителственият и бизнес свят. Кодът е стар, многопластов и често лошо или напълно недокументиран. Също така трябва да работи, през цялото време. Перспективата е сравнявана със свалянето на витлата от самолета и опитите да го монтират с реактивни двигатели – докато са във въздуха.

  8 страхотни теми Mate за изтегляне

Като оставим настрана риска, икономическият аргумент за мигриране към съвременни системи също е труден. Парите, които са били вложени за поддържане на функционирането на тези мейнфрейми и COBOL приложения, са поразителни. Трябва ли институциите да изхвърлят всичко и да започнат отново, докато този COBOL код все още работи и функционира? Това е трудна позиция за дъска, която вероятно не е особено технически наклонена. Миграцията на COBOL няма да е евтина, нито бърза.

„Току-що преминах през преобразуване, за да премина от COBOL към Java“, каза Хиншоу. „Отне им четири години, и все още не са готови

Когато Commonwealth Bank of Australia замени основната си платформа COBOL през 2012 г, отне пет години на крайна цена от 749,9 милиона долара (1 милиард долара австралийски).

И тогава всичко върви по план. британска банка, TSB, беше принуден да мигрира от базирана на COBOL система през 2018 г. поради изкупуване. Не мина добре. Тъй като банката не беше в състояние да търгува в продължение на дни, цената на миграцията в крайна сметка беше 330 милиона паунда. Това беше в допълнение към предвидените в бюджета разходи за инженерните работи за действителната миграция. TSB също загуби 49,1 милиона паунда от финансови измами, докато нейните системи се стопяват.

Компенсацията на клиентите надхвърли 125 милиона паунда, а банката трябваше да похарчи 122 милиона паунда за наемане на нов персонал, за да се справи с 204 000 случая на жалби на клиенти. Главният изпълнителен директор подаде оставка и компанията все още почиства щетите две години след събитието.

Загадката COBOL

Нещата не могат да останат такива, каквито са, но перспективата да се направи нещо по въпроса едва ли е привлекателна. Независимо от това, единственият начин нещата да се подобрят е да се провеждат контролирани, внимателни миграции към съвременния софтуер и хардуер.

За да се постигне това без прекъсване, загуба на данни и престой ще изискват съвременен опит и пари, което е 50 процента от уравнението. Другата половина е опит и време на COBOL. За съжаление, това са двете съставки, от които почти свършихме.

Може би нова порода каубои на COBOL ще влезе в града.