Co to jest COBOL i dlaczego tak wiele instytucji na nim polega?

Gubernator stanu New Jersey niedawno wspomniany COBOL, 60-letni język programowania. Co to właściwie jest? I dlaczego nadal jest filarem świata finansów, mimo że niewiele osób wciąż wie, jak z niego korzystać?

Początki COBOL

Grace Hopper był fenomenem. Uzyskała doktorat z matematyki na Yale, była profesorem w Vassar i opuściła marynarkę wojenną Stanów Zjednoczonych w randze kontradmirała. Jej wkład w dziedzinie informatyki można ocenić na podstawie liczby fundacji i programów, które mają została stworzona w jej pamięci. Plik Narodowe Centrum Obliczeniowe Badań Energetycznych nazwał swój Cray XE6 superkomputer po niej. Marynarka wojenna nazwała również jej niszczyciel rakietowy USS Hopper. Motto statku „Aude et Effice” („Dare and Do”) mogło zostać wymyślone z myślą o Hopper.

Mając na celu stworzenie języka programowania bardziej zbliżonego do angielskiego, niż rozumieją komputery obsługujące kod maszynowy, Hopper opracował pierwszy kompilator. Otworzyło to drzwi dla pierwszych języków kompilowanych, takich jak FLOW-MATIC. Dzięki temu została członkiem Konferencji / Komisji Języków Systemów Danych (CODASYL) z 1959 roku.

Odegrała także kluczową rolę w specyfikacji i rozwoju Wspólny język biznesowy (COBOL). Pierwsze spotkanie odbyło się 23 czerwca 1959 roku, a jego sprawozdanie i specyfikacja języka COBOL nastąpił w kwietniu 1960.

COBOL był radykalny

COBOL zawierał kilka przełomowych koncepcji. Prawdopodobnie najważniejszym z nich była możliwość działania na sprzęcie produkowanym przez różnych producentów, co było wówczas niespotykane.

Język był dopracowany i zapewniał programistom niemal angielskie słownictwo. Został zaprojektowany do obsługi ogromnych ilości danych i jest wyjątkowo dokładny matematycznie.

Jego słownik słów zastrzeżonych (słów, które tworzą język) liczy blisko 400. Programista łączy te słowa zarezerwowane w łańcuchy, aby miały sens składniowy i tworzy program.

Każdy programista, który zna inne języki, powie ci, że 400 to niesamowita liczba zarezerwowanych słów. Dla porównania Język C. ma 32 i Pyton ma 33.

Innym dziwactwem języka COBOL jest surowe wymaganie, aby określone wiersze programu zaczynały się w określonych kolumnach. To jest kac z czasów karty dziurkowane. Obecnie programiści mają więcej swobody podczas formatowania języka COBOL i nie muszą już wpisywać wszystkiego wielkimi literami. To sprawia, że ​​praca z nim jest mniej nakazowa i niepewna, ale nadal jest to w dużej mierze dzieło swojego czasu, jak pokazano poniżej:

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

COBOL TO HIT

Kobieta korzystająca z zewnętrznego bankomatu.Większość transakcji bankomatowych nadal korzysta z języka COBOL.

Choć może wydawać się to niezgrabne, COBOL był rewolucyjny, gdy został wprowadzony na rynek. Znalazł przychylność w sektorze finansowym, rządzie federalnym oraz w dużych korporacjach i organizacjach. Wynikało to z jego skalowalności, możliwości obsługi partii i matematycznej precyzji. Został zainstalowany w komputerach mainframe na całym świecie, zapuścił korzenie i rozkwitł. Jak uparty chwast, po prostu nie umrze.

Nasze uzależnienie od systemów, które nadal działają w języku COBOL, jest zadziwiające. ZA raport agencji Reuters w 2017 r udostępnił następujące oszałamiające statystyki:

Obecnie w użyciu jest 220 miliardów linii kodu COBOL.
COBOL jest podstawą 43 procent wszystkich systemów bankowych.
Systemy obsługiwane przez COBOL obsługują codzienny handel o wartości 3 bilionów USD.
COBOL obsługuje 95 procent wszystkich operacji na kartach bankomatowych.
COBOL umożliwia 80% wszystkich osobistych transakcji kartą kredytową.

Jak widać, ciężko jest przetrwać dzień bez korzystania z systemu opartego na języku COBOL. Konta bankowe i usługi rozliczania czeków, a także infrastruktury publiczne, takie jak bankomaty i sygnalizacja świetlna, nadal działają na tym kodzie napisanym dziesiątki lat temu.

COBOL to problem

Programiści znający COBOL są albo na emeryturze, myśląc o przejściu na emeryturę, albo martwi. Stale tracimy ludzi, którzy mają umiejętności utrzymania tych ważnych systemów w działaniu. Nowi, młodsi programiści nie znają języka COBOL. Większość nie chce też pracować na systemach, dla których musisz utrzymywać stary kod lub pisać nowy kod.

To jest taki problem, że Bill Hinshaw, weteran COBOL-u, został zmuszony do przejścia na emeryturę, aby założyć COBOL Cowboys. Ta prywatna firma konsultingowa obsługuje zdesperowanych klientów korporacyjnych, którzy nigdzie nie mogą znaleźć programistów znających język COBOL. „Młodzież” w COBOL Cowboys (której motto brzmi „Not Our First Rodeo”) jest po pięćdziesiątce. Uważają, że 90 procent systemów biznesowych z listy Fortune 500 działa w języku COBOL.

Oczywiście prywatne firmy, korporacje i banki nie są jedynymi, które muszą gromadzić gigantyczne ilości danych finansowych. Usługi rządu federalnego, prowincjonalnego i lokalnego mają takie same wymagania. Jak wszyscy inni, używają do tego komputerów mainframe i języka COBOL.

Straszliwy wpływ pandemii koronawirusa doprowadził do złamanych serc, ofiar śmiertelnych i niepewności ekonomicznej dla właścicieli firm, pracowników i osób samozatrudnionych. Ogromna liczba zwolnionych pracowników w New Jersey przewodziła gubernator do odwołania się do doświadczonych programistów COBOL przyjść z pomocą starzejącym się systemom zaplecza. Te są trudne, aby poradzić sobie z 326 000 nowych rejestracji.

Plik Otwórz projekt Mainframe prowadzi inicjatywę pomocy opartą na wolontariacie. Jeśli myślisz, że będziesz w stanie pomóc, z przyjemnością usłyszą od Ciebie.

New Jersey nie jest sam w tej sytuacji. Ponad 10 milionów osób zarejestrowało się jako bezrobotni i liczba ta rośnie. Connecticut walczy o przetworzenie ćwierć miliona nowych rejestracji na 40-letnich systemach państwowych.

Jest to powszechny i ​​głęboko zakorzeniony problem. ZA Raport Rządowego Biura Odpowiedzialności za 2016 rok wymienione systemy COBOL działające na komputerach mainframe starszych niż 53 lata. Należą do nich systemy wykorzystywane do przetwarzania danych związanych z Departamentem ds. Weteranów, Departamentem Sprawiedliwości i Administracją Ubezpieczeń Społecznych.

Dlaczego nie przeprowadzić migracji i aktualizacji, na przykład wczoraj?

Aktualizacja tych starszych systemów nie jest tak prosta, jak się wydaje. Systemy to kluczowe, całodobowe punkty podparcia, na których obracają się światy finansowe, rządowe i biznesowe. Kod jest stary, wielowarstwowy i często słabo lub całkowicie nieudokumentowany. Musi też cały czas działać. Perspektywa została porównana do zdjęcia śmigieł z samolotu i próby wyposażenia go w silniki odrzutowe – podczas lotu.

Pomijając ryzyko, argument ekonomiczny za migracją do nowoczesnych systemów jest również trudny. Pieniądze, które zostały wpompowane w utrzymanie sprawności tych komputerów mainframe i aplikacji COBOL, są zdumiewające. Czy instytucje powinny to wszystko wyrzucić i zacząć od nowa, póki ten kod COBOL nadal działa i działa? To trudne zadanie dla deski, która prawdopodobnie nie jest szczególnie skłonna technicznie. Migracja COBOL nie będzie tania ani szybka.

„Właśnie przeszedłem konwersję, aby przejść z języka COBOL na Javę” – powiedział Hinshaw. „Zajęło im to cztery lata, i nadal nie są skończone. ”

Kiedy Commonwealth Bank of Australia wymienił swoją podstawową platformę COBOL w 2012 rokuzajęło to pięć lat, a jego ostateczny koszt wyniósł 749,9 mln USD (1 mld USD w Australii).

I wtedy wszystko idzie zgodnie z planem. Bank brytyjski, TSB, został zmuszony do migracji z systemu opartego na COBOL w 2018 roku z powodu wykupu. Nie poszło dobrze. Ponieważ bank nie był w stanie handlować przez wiele dni, koszt migracji wyniósł 330 milionów funtów. Stanowiło to dodatek do zaplanowanych kosztów prac inżynieryjnych związanych z rzeczywistą migracją. TSB stracił również 49,1 miliona funtów z powodu oszustw finansowych, podczas gdy jego systemy topniały.

Odszkodowania dla klientów przekroczyły 125 milionów funtów, a bank musiał wydać 122 miliony funtów, zatrudniając nowych pracowników, którzy zajmowali się 204 000 skarg klientów. Dyrektor generalny zrezygnował, a firma nadal usuwa zniszczenia dwa lata po tym wydarzeniu.

Zagadka COBOL-a

Rzeczy nie mogą pozostać takie, jakie są, ale perspektywa zrobienia czegoś z tym nie jest atrakcyjna. Niemniej jednak jedynym sposobem na poprawę sytuacji jest kontrolowana, ostrożna migracja do nowoczesnego oprogramowania i sprzętu.

Aby osiągnąć to bez zakłóceń, utrata danych i przestoje będą wymagały nowoczesnej wiedzy i pieniędzy, które stanowią 50 procent równania. Druga połowa to wiedza i czas COBOL-a. Niestety, to są dwa składniki, z których prawie się skończyliśmy.

Być może do miasta przyjedzie nowa rasa kowbojów COBOL-a.