Gubernator New Jersey niedawno zwrócił uwagę na język COBOL, który ma już 60 lat. Czym tak naprawdę jest ten język programowania? I dlaczego wciąż odgrywa kluczową rolę w sektorze finansowym, mimo że niewielu ludzi potrafi z niego korzystać?
Historia COBOL
Grace Hopper to postać wyjątkowa. Uzyskała doktorat z matematyki na Yale, była profesorem na Vassar College i służyła w marynarce wojennej USA jako kontradmirał. Jej wkład w rozwój informatyki jest widoczny w licznych fundacjach i programach, które powstały w jej honorze. Narodowe Centrum Obliczeniowe Badań Energetycznych nazwało swój superkomputer Cray XE6 jej imieniem, a marynarka wojenna nazwała niszczyciel rakietowy USS Hopper. Motto statku „Aude et Effice” („Dare and Do”) wyraźnie odzwierciedla ducha Hopper.
Aby stworzyć język programowania bardziej zbliżony do języka angielskiego niż do kodu maszynowego, Hopper opracowała pierwszy kompilator, co umożliwiło rozwój pierwszych języków kompilowanych, takich jak FLOW-MATIC. W 1959 roku dołączyła do Konferencji / Komisji Języków Systemów Danych (CODASYL).
Hopper odegrała kluczową rolę w tworzeniu Wspólnego Języka Biznesowego (COBOL). Pierwsze spotkanie związane z tym projektem miało miejsce 23 czerwca 1959 roku, a specyfikacja języka COBOL została opublikowana w kwietniu 1960 roku w dokumentach.
Rewolucyjny COBOL
COBOL wprowadził wiele nowatorskich idei. Najważniejszą z nich była zdolność do działania na różnych sprzętach, co w tamtych czasach było niezwykle rzadkie.
Język został starannie zaprojektowany, aby zapewnić programistom niemal angielskie słownictwo. Jego celem było przetwarzanie ogromnych ilości danych z matematyczną precyzją.
COBOL posiada blisko 400 zastrzeżonych słów, które programiści łączą w struktury, tworząc sensowne programy. Dla porównania, Język C. ma tylko 32 zastrzeżone słowa, a Python 33.
Jednym z ciekawszych aspektów COBOL jest ścisła zasada, że niektóre wiersze programu muszą zaczynać się w określonych kolumnach, co wynika z czasów kart dziurkowanych. Dziś programiści mają większą swobodę w formatowaniu kodu COBOL i nie muszą już pisać wszystkiego wielkimi literami, co ułatwia jego użycie. Oto przykład prostego programu w COBOL:
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 w praktyce
Wiele transakcji bankomatowych nadal opiera się na języku COBOL.
Mimo że COBOL może wydawać się przestarzały, w momencie swojego powstania był to język rewolucyjny. Zyskał uznanie w sektorze finansowym, w administracji rządowej oraz w dużych korporacjach z powodu swojej skalowalności i zdolności do przetwarzania danych z wysoką precyzją. Jego obecność na komputerach mainframe na całym świecie sprawiła, że stał się nieodzownym elementem infrastruktury, która nie zniknie łatwo.
Nasze uzależnienie od systemów działających w COBOL-u jest zaskakujące. Raport Reutersa z 2017 roku ujawnia szokujące dane:
W obiegu znajduje się 220 miliardów linii kodu COBOL.
COBOL stanowi podstawę 43% wszystkich systemów bankowych.
Systemy oparte na COBOL-u obsługują codziennie transakcje o wartości 3 bilionów USD.
COBOL odpowiada za 95% operacji na kartach bankomatowych.
COBOL obsługuje 80% wszystkich osobistych transakcji kartą kredytową.
Jak widać, trudno jest przeżyć dzień bez interakcji z systemem opartym na COBOL-u. Usługi takie jak konta bankowe, obsługa czeków oraz infrastruktura publiczna, w tym bankomaty i sygnalizacja świetlna, wciąż działają na kodzie stworzonym wiele lat temu.
Wyzwania związane z COBOL-em
Programiści znający COBOL są albo na emeryturze, albo wkrótce zamierzają przejść na emeryturę. Wciąż tracimy specjalistów zdolnych do utrzymania tych kluczowych systemów. Młodsze pokolenie programistów nie zna COBOL-a i często nie jest zainteresowane pracą z przestarzałym kodem.
Problem ten stał się na tyle poważny, że Bill Hinshaw, doświadczony programista COBOL, postanowił przejść na emeryturę, aby założyć COBOL Cowboys, firmę konsultingową, która pomaga zdesperowanym klientom korporacyjnym w znalezieniu programistów COBOL. „Młodzież” w COBOL Cowboys, której motto brzmi „Not Our First Rodeo”, ma średnio pięćdziesiąt lat. Uważają, że 90% systemów biznesowych wśród firm z listy Fortune 500 działa w COBOL-u.
Nie tylko prywatne firmy, banki i korporacje muszą radzić sobie z ogromnymi ilościami danych finansowych. Również rządy na poziomie federalnym, stanowym i lokalnym mają podobne potrzeby, korzystając z komputerów mainframe i COBOL-a.
Ogromny wpływ pandemii COVID-19 przyniósł wiele wyzwań, w tym nagłe zwolnienia pracowników w New Jersey, co skłoniło gubernatora do wezwania doświadczonych programistów COBOL do pomocy w modernizacji starych systemów. To zadanie stało się jeszcze trudniejsze w obliczu 326 000 nowych rejestracji.
New Jersey nie jest odosobnione w tej sytuacji. Ponad 10 milionów osób zarejestrowało się jako bezrobotne, a liczba ta wciąż rośnie. Connecticut ma trudności z przetworzeniem ćwierć miliona nowych rejestracji na przestarzałych systemach państwowych.
Jest to powszechny i poważny problem. Zgodnie z raportem Rządowego Biura Odpowiedzialności z 2016 roku, wiele systemów COBOL pracuje na komputerach mainframe, które mają ponad 53 lata. Obejmuje to systemy używane przez Departament ds. Weteranów, Departament Sprawiedliwości oraz Administrację Ubezpieczeń Społecznych.
Dlaczego nie dokonaliśmy migracji i aktualizacji już wczoraj?
Uaktualnienie tych starych systemów nie jest proste. Systemy te są kluczowymi punktami wsparcia, na których opierają się finansowe, rządowe i biznesowe operacje. Kod jest często złożony, wielowarstwowy i źle udokumentowany, a ich działanie musi być ciągłe. Porównano to do sytuacji, w której usuwasz śmigła z samolotu, próbując jednocześnie zainstalować silniki odrzutowe.
Poza ryzykiem, argument ekonomiczny dla migracji do nowoczesnych systemów jest również skomplikowany. Koszty utrzymania starych komputerów mainframe i aplikacji COBOL są ogromne. Czy instytucje powinny zainwestować w nowoczesne rozwiązania, gdy stare systemy wciąż działają? To niełatwe zadanie dla zarządów, które zazwyczaj nie są szczególnie techniczne. Migracja z COBOL-a nie będzie ani tania, ani szybka.
i nadal nie są skończone.”
Kiedy Commonwealth Bank of Australia wymienił swoją platformę COBOL w 2012 roku, proces ten trwał pięć lat, a całkowity koszt wyniósł 749,9 mln USD (1 miliard USD w Australii).
Jeśli wszystko idzie zgodnie z planem, to jeszcze nie jest koniec. Bank brytyjski TSB musiał w 2018 roku zmodernizować swoje systemy oparte na COBOL z powodu wykupu. Proces ten nie przebiegł pomyślnie. Bank nie mógł prowadzić transakcji przez wiele dni, co kosztowało 330 milionów funtów, a to dodatkowo obciążyło zaplanowane koszty migracji. TSB poniósł także straty w wysokości 49,1 miliona funtów z powodu oszustw finansowych, a odszkodowania dla klientów przekroczyły 125 milionów funtów. W efekcie dyrektor generalny zrezygnował, a firma nadal zmaga się z konsekwencjami tego zdarzenia dwa lata później.
Zagadnienie COBOL-a
Obecna sytuacja nie może pozostać bez zmian, ale perspektywa zmiany nie jest zachęcająca. Jedynym sposobem na poprawę sytuacji jest kontrolowana i przemyślana migracja do nowoczesnego oprogramowania i sprzętu.
Aby przeprowadzić tę migrację bez zakłóceń, z minimalizacją ryzyka utraty danych i przestojów, potrzebna jest nowoczesna wiedza oraz fundusze, co stanowi 50% problemu. Druga połowa to doświadczenie związane z COBOL-em. Niestety, te dwa elementy są już w znacznym stopniu ograniczone.
Może w przyszłości pojawi się nowa generacja kowbojów COBOL-a.
newsblog.pl