COBOL: język z 1959 roku, który nadal obsługuje światowe banki
Kiedy wypłacasz pieniądze z bankomatu, płacisz kartą lub odbierasz przelew – gdzieś w tle pracuje kod napisany w języku, którego większość programistów nigdy nie widziała. COBOL powstał w 1959 roku i ma dziś ponad 65 lat. Szacuje się, że nadal przetwarza około 3 bilionów dolarów dziennie i obsługuje systemy, od których zależy globalna gospodarka.
Spotkanie w Pentagonie, które zmieniło świat finansów
W maju 1959 roku Departament Obrony Stanów Zjednoczonych zwołał w Waszyngtonie konferencję, która miała rozwiązać narastający problem: każdy producent komputerów stosował własny, niekompatybilny język programowania. Wojsko i duże korporacje utrzymywały setki różnych systemów, które nie mogły ze sobą rozmawiać – a każda migracja kosztowała fortunę.
Na spotkaniu komitetu CODASYL zasiedli przedstawiciele IBM, Sperry Rand, Honeywella i innych ówczesnych gigantów, a także admirał Grace Hopper – pionierka programowania, która forsowała ideę języka zbliżonego do angielskiego, zrozumiałego nie tylko dla matematyków, ale i dla biznesmenów oraz urzędników.
Efektem prac był COBOL – COmmon Business-Oriented Language. Specyfikacja powstała w rekordowym tempie, a już w 1960 roku uruchomiono pierwszy program w COBOLu jednocześnie na dwóch różnych maszynach, udowadniając, że przenośność kodu jest możliwa. Dla świata komputerów było to nic mniejszego niż rewolucja.
Język, który mówi po angielsku
Kluczowym założeniem twórców COBOLu było to, żeby kod był czytelny jak zdania w języku angielskim. W praktyce oznaczało to, że nawet menedżer bez technicznego wykształcenia mógł – przynajmniej w teorii – przeczytać program i zrozumieć, co robi. Zamiast tajemniczych symboli i skrótów, COBOL posługiwał się pełnymi słowami:
- ADD SALARY TO TOTAL-PAYROLL – dodaj wynagrodzenie do sumy listy płac
- MOVE CUSTOMER-NAME TO REPORT-LINE – przenieś nazwę klienta do linii raportu
- IF BALANCE IS LESS THAN ZERO PERFORM OVERDRAFT-ROUTINE – jeśli saldo jest ujemne, wykonaj procedurę przekroczenia limitu
Ta filozofia miała swoją cenę – programy w COBOLu były długie i werbalne, zajmowały dużo miejsca na kartach perforowanych. Ale była też ogromną zaletą: kod był samodokumentujący się, łatwy do audytu i weryfikacji przez księgowych czy prawników.
COBOL był też pionierem w obsłudze danych finansowych. Obsługiwał precyzyjne liczby dziesiętne bez błędów zaokrągleń, które nękają języki oparte na arytmetyce zmiennoprzecinkowej. Dla banku przetwarzającego miliony transakcji różnica jednego grosza pomnożona przez milion operacji to problem nie do zaakceptowania. COBOL rozwiązał go od samego początku.
Liczby, które otwierają oczy
Gdyby ktoś powiedział w 1990 roku, że COBOL będzie kluczową technologią XXI wieku, nikt by nie uwierzył. A jednak dane mówią same za siebie:
- Szacuje się, że na świecie działa od 220 do 250 miliardów linii kodu COBOL – więcej niż kodu w Javie i C++ razem wziętych.
- Systemy COBOL przetwarzają dziennie transakcje o wartości szacowanej na 3 biliony dolarów.
- Około 95% transakcji bankomatowych na świecie przechodzi przez systemy napisane lub zasilane przez COBOL.
- Blisko 80% transakcji kartami płatniczymi jest przetwarzanych przez kod oparty na COBOLu.
- Rządowe systemy w USA obsługują za pomocą COBOLu wypłaty zasiłków, emerytur i świadczeń dla setek milionów obywateli.
IBM – który nadal produkuje mainframe'y, czyli wielkie serwery korporacyjne, na których COBOL działa najchętniej – szacuje, że każdego dnia wykonywanych jest więcej transakcji w COBOLu niż wyszukiwań w Google. To zdanie brzmi nieprawdopodobnie, ale jest prawdziwe.
COVID-19 ujawnił ukrytą zależność
Przez dekady COBOL był tematem zamkniętym w kręgach specjalistów IT. Przeciętny człowiek nigdy o nim nie słyszał. Pandemia COVID-19 zmieniła to w ciągu kilku tygodni.
W marcu 2020 roku, gdy lockdown doprowadził do masowych zwolnień, systemy do obsługi zasiłków dla bezrobotnych w całych Stanach Zjednoczonych zaczęły się sypać pod ogromnym obciążeniem. W stanie New Jersey gubernator Phil Murphy stanął przed kamerami i powiedział coś, co zelektryzowało świat IT: ogłosił pilne poszukiwanie ochotników znających COBOL, bo stanowe systemy z lat 70. nie są w stanie obsłużyć nowego ruchu.
New Jersey nie był wyjątkiem. Podobne problemy miały Connecticut, Kansas i Indiana. Systemy obsługi zasiłków były napisane w COBOLu w latach 60. i 70. – i nigdy nie zastąpiono ich nowoczesnymi rozwiązaniami, bo działały wystarczająco dobrze. Aż do czasu, gdy musiały obsłużyć dziesięciokrotnie większy ruch niż zwykle.
Apel gubernatora wywołał lawinę komentarzy w branży IT. Dla wielu był to pierwszy moment, gdy zdali sobie sprawę, jak głęboko COBOL tkwi w infrastrukturze, od której zależy codzienne życie milionów ludzi.
Kryzys następców – kto przejmie COBOL?
Dziś przeciętny programista COBOL ma ponad 55 lat. Wiele uczelni wykreśliło COBOL z programów studiów w latach 90., gdy moda na Javę i programowanie obiektowe osiągnęła szczyt. Przez dwie dekady branża żyła w przekonaniu, że mainframe'y i COBOL znikną – i po co uczyć martwego języka? Problem w tym, że COBOL nie zniknął. Za to programiści, którzy go znają, znikają – na emeryturę.
- IBM uruchomił program Master the Mainframe, żeby zachęcić młodszych programistów do nauki COBOLu i środowisk mainframe.
- Firma OpenText (dawniej Micro Focus), której narzędzia COBOL są standardem w branży, inwestuje w modernizację ekosystemu i umożliwia uruchamianie kodu COBOL w chmurze.
- Część banków uruchomiła programy wewnętrzne, w których doświadczeni specjaliści COBOL szkolą młodszych kolegów, zanim wiedza odejdzie razem z nimi na emeryturę.
Paradoks jest taki: COBOL jest językiem, za który płaci się dziś bardzo dobrze – właśnie dlatego, że tak mało kto go zna. Programista COBOL z doświadczeniem w systemach mainframe może liczyć na stawki porównywalne z senior developerami w najbardziej modnych technologiach.
Co historia COBOLu oznacza dla Twojej firmy?
Jeśli prowadzisz małą lub średnią firmę, prawdopodobnie nie piszesz w COBOLu i nigdy nie będziesz. Ale historia tego języka ma dla Ciebie bardzo praktyczne przesłanie.
Twoja firma prawie na pewno zależy od systemów COBOL – pośrednio. Każdy przelew bankowy, każda transakcja kartą, każde rozliczenie z ZUS czy urzędem skarbowym – gdzieś w łańcuchu przetwarzania czai się COBOL. Gdy te systemy zawodzą (jak podczas pandemii), skutki odczuwają wszyscy.
Ale jest też bardziej bezpośrednia lekcja: legacy IT to nie tylko problem wielkich banków. Wiele firm z sektora MŚP korzysta z oprogramowania, które ma 10, 15, a nawet 20 lat. Systemy ERP z początku wieku, bazy danych na przestarzałych serwerach, aplikacje, których producent już nie istnieje. Mechanizm jest ten sam co w przypadku COBOLu: działają, więc po co ruszać? – aż do momentu, gdy przestają działać w najmniej odpowiednim momencie.
Regularne audyty IT, planowanie migracji i dokumentowanie krytycznych systemów to inwestycja, która w razie kryzysu może uratować ciągłość działania firmy. COBOL nauczył nas, że ignorowanie technologicznego długu nie sprawia, że problem znika – on tylko rośnie.
| Wskaźnik | Wartość |
|---|---|
| Rok powstania | 1959 |
| Szacowana ilość kodu w użyciu | 220–250 miliardów linii |
| Wartość transakcji dziennie | ok. 3 biliony USD |
| Udział w transakcjach bankomatowych | ok. 95% |
| Udział w transakcjach kartami płatniczymi | ok. 80% |
| Średni wiek programisty COBOL | ponad 55 lat |
Masz w firmie stare systemy IT? Sprawdź, czy nie stanowią ryzyka
Podobnie jak COBOL w bankach, przestarzałe oprogramowanie i infrastruktura IT w firmach MŚP mogą działać latami – aż do momentu krytycznej awarii. NovaSys przeprowadzi audyt Twojej infrastruktury i wskaże obszary ryzyka, zanim staną się kosztownym problemem.