Csupán egyesek és nullák halmaza, de dollármilliárdok ezreit és hiperszenzitív adatok milliárdjait mozgatja meg évente, és már akkor majdnem 30 éves volt, amikor Phil Collins elénekelte a Groovy Kind of Love-ot 1988-ban? Ez a COBOL programnyelv, ami túlzás nélkül a bolygó digitális banki nyelve: egy olyan „digitális gőzgép”, amely a legmodernebb technológiák mögött is kikerülhetetlen.
Képzeljük el…
Egy verőfényes torontói őszi délutánon egy hetvenes évei közepén járó, jókedélyű öregúr takaros kis külvárosi családi házában egyszer csak megcsörren a telefon. A vonal végén az egyik legnagyobb kanadai bank felsővezetője, aki kissé szabadkozva – mintha épp rajtakapták volna, hogy az ujjával belekóstolt a délutáni szülinapi tortába – felvezeti a kérését Tamás bácsinak (nevezzük most így az anonimitását kérő idős ex-programozót), hogy némi módosításra, urambocsá “pár apró, de új funkcióra lenne szükségük” a bank alap rendszerében, és nagyon, de tényleg nagyon örülne, ha Tamás bácsi segítene a milliárdos vállalatnak, mivel a bank évek óta egyetlen olyan fejlesztőt sem alkalmaz már, aki képes lenne hozzányúlni ahhoz a COBOL nyelven íródott rendszerhez, ami többek közt a több száz millió pénzügyi tranzakcióért felel a bank életében. Akár egy érdekes kalandfilm kezdő jelenete is lehetne, ahol a szuper banki és állami titkokat fürkésző ügynökök, veterán fejlesztőkkel közösen hekkelik meg a világ digitális pénzügyi hálózatát.
És akkor jöjjön a csattanó: ez nem a képzelet szüleménye
A COBOL (COmmon Business Oriented Language) programozási nyelv ugyanis 61 éves és jelenleg még mindig megkerülhetetlen, ha bármilyen pénzügyi, biztosítási, vagy sok esetben állami informatikai rendszerről van szó. Egyszerűen azért, mert lecserélhetetlen. Pontosabban beláthatatlan méretű költség és időintervallum mellett is óriási kockázatot jelent a “babrálása”, nemhogy a teljes csere. Épp ezért a Tamás bácsihoz hasonló programozók még mindig nagy becsben vannak és épp ezért érthető, hogy miért van zabszem az ominózus helyen a világ pénzügyi informatikával foglalkozó fejlesztőinek. A karakter alapjául szolgáló illető például 2007-ben 60 éves korában hagyta ott az említett kanadai bankot, úgy, hogy 30 évig COBOL fejlesztőként dolgozott a pénzintézetnek.
De miért kiirthatatlan ez a programnyelv, miközben újabbnál újabb versenytársak bukkannak fel azóta is? Az ok egyszerű: a COBOL ugyanis elképesztően hatékony. Olyan, mint a világ legjobb szeletelőgépe: nincs semmi, de tényleg semmi, ami ennyire gyorsan és pontosan vágja a parizert, sose romlik el, felügyelet nélkül, 0-24-ben teszi a dolgát, viszont cserébe nem lehet vele mást szeletelni. Még téliszalámit sem. És paradox módon az a COBOL legnagyobb baja, ami a legnagyobb erénye: olyan régóta van velünk és olyan régóta biztosít stabil informatikai hátteret a banki tranzakciókhoz, állami rendszerekhez, egészségbiztosítási infrastruktúrákhoz és hasonló környezetekhez, hogy szó szerint kihaltak a szakemberek, akik érdemben hozzá tudnak nyúlni.
Pedig 1959-ben a COBOL nyelv születésekor pont az volt a cél, hogy legyen egy egységes, könnyen érthető, és ezáltal könnyen tanítható nyelv, ami az épp ébredező informatikai rendszerek origója lehet. Grace Hopper, aki matematikusként amellett, hogy az egyik úttörője volt a számítástechnikának, az Amerikai Haditengerészet ellentengernagya is volt, egy olyan programnyelvet szeretett volna megalkotni, amit szó szerint az utcáról beeső embereknek is hatékonyan lehet tanítani és ami így felválthatja a sokféle, egymással kommunikálni képtelen programnyelvet a világban. Mindkét cél sikerült: a COBOL egyfajta leíró nyelv, ami esetünkben azt jelenti, hogy (angol nyelven) könnyen olvasható parancssorokból áll. Ilyen például a TRANSFER A TO D (tedd át A-ból D-be), ebből pedig jól látható, hogy tényleg bárki megtanulhatta, ami által hirtelen hatalmas programozó bázisa lett a nyelvnek. A bevezetőben említett Tamás bácsi is így lett egyszerű banki postázóból az egyik legelismertebb COBOL fejlesztő.
Annak köszönhetően pedig, hogy sok volt a jó programozó, és hogy gyakorlatilag egy-egy új funkciót sokan, sokféleképpen és elég sokáig tudtak rommá ellenőrizni, a COBOL nyelvre épülő rendszerek elképesztően megbízhatóak. És ezt a stabilitást azóta is hozza ez a programnyelv, sokszor bármiféle leállás és akadás nélkül, amikor még a színes TV nem volt elterjedt a háztartásokban. A hírekben, amikor azt olvastuk, hogy például a COVID miatt munkanélkülivé vált amerikai felhasználók lefagyasztották az állami szervereket, ahol segélyért lehet folyamodni, igazak ugyan, de igazából a modern “kirakat”, vagyis maga a weboldal fulladt bele a hirtelen terhelésbe, a háttérben a mindennapi adatelemzésért és tranzakciókért felelős COBOL alapú rendszer zökkenőmentesen tette a dolgát.
Az ősök nyelve, ami mindent behálóz
Senki sem tudja mennyi COBOL nyelven írt kód van a világban, de szakértők szerint az amerikai pénzügyi és egészségbiztosítási tranzakciók 80%-a ma is ezt a rendszert használja, ami a mindennapi életünkre lefordítva azt jelenti, hogy az esetek 95%-ában, amikor lehúzzuk a bankkártyánkat, az valahol egy COBOL alapú folyamatot indít el.
“A második legértékesebb eszköz az Egyesült Államokban – az olaj után – a 240 milliárd sornyi COBOL kód” mondja Philip Teplitzky a megmaradt szakértők egyike, és ezen mondat súlyossága vetíti előre mekkora bajban vannak, vagy legalábbis lesznek a jelenleg ilyen rendszert használó állami és pénzügyi vállalatok. Ugyanis a COBOL nem szexi, nagyon nem. Így pokoli nehéz jóminőségű fejlesztői utánpótlást találni a rendszerhez, ráadásul mivel stabil, láthatatlan és régi, a mai világban oly vonzó és szupersebességgel változó startup világot is hidegen hagyja. Míg szinte minden hétre van egy fintech startup, ami fenekestül forgatja fel a bankkártyahasználatot, az utalást, a valutaváltást, vagy bármit a pénzügyi világban, addig ez az ősi “digitális gőzgép” rendíthetetlenül teszi a dolgát a háttérben és évente “sok száz magyarországnyi” GDP-nek megfelelő dollárt mozgat stabilan és biztonságosan.
Ugyanakkor mi, a felhasználók értelemszerűen új dolgokat szeretnénk, a bankok, pénzintézetek, állami szervezetek is így vannak ezzel, de megbolygatni az alaprendszert, az bizony egészen elképesztő feladat. Hogy csak egy példát hozzunk: ha valaki még emlékszik a 1999-ben szinte naponta előkerülő Y2K problémára, annak most elárulhatjuk; az is nagyrészt a COBOL-ról szólt. A COBOL – és még néhány korai programnyelv – ugyanis nem tud négyjegyű évszámokat kezelni, mivel minden egyes bájtnyi memória, amit meg tudtak anno spórolni a rendszer hatékonyságát-, ezáltal pedig a sebességet és a stabilitást növelve. Így a fejlesztők pl. csak 81-ként kezelték az 1981-es évszámot, ami ugye addig nem akkora probléma, amíg el nem jutunk 1999-ig. Mit jelent a 00? 1900-at? Vagy 2000-et? Vajon kiutal-e a rendszer 100 évnyi kamatot 2000 január közepén egy pár nappal azelőtt (00.01.06. mondjuk) nyitott számlára? A 60-as években ugyanis senki nem gondolta volna, hogy 40 év után még ezt a rendszert fogja használni a világ, így a fejlesztők egyszerűen nem tudták mi fog történni, ezért mindenki készült (legalábbis a bankszektorban) a digitális káoszra. A Y2K problémára végül frappáns és nem mellesleg eléggé pimasz “megoldást” találtak: ráböktek egy távolabbi évszámra és azt mondták, minden 45 vagy nagyobb évszámot 1900-as évekként kezel (tehát 44 az egyenlő 1944), míg minden 45-nél kisebb évszámot (például 33 az 2033) 2000-es évekként kezel a rendszer. 2045-ben meg majd ismét agyérgörcsöt kapnak az informatikusok, de az már legyen az ő bajuk. Vagyis igazából nem oldódott meg a Y2K probléma, csak eltolták. 45 évvel.
Ebből a megoldásból is jól látszik, hogy jelenleg azok a szakemberek számíthatnak hihetetlenül biztos és jól fizető állásra, akik hajlandóak ezt az ősi programnyelvet megtanulni, illetve készen állni arra, hogy ezt a tudásukat arra használják, hogy az alapoktól átalakítsák a jelenlegi háttérrendszert. Dolguk lesz bőven, hiszen egyes esetekben 40-60 éve stabilan futó alkalmazásokat és megoldásokat kell az alapoktól újragondolni úgy, hogy az új rendszer egyszerre legyen modern, bővíthető, időtálló és legalább olyan stabil, mint a COBOL. Mindezt úgy, hogy a felhasználók semmit se vegyenek észre. Szóval, ha ezt valaki úgy olvassa, hogy szívesen elhelyezkedne programozóként, van kedve unortodoxnak számító dolgokat is megtanulni, cserébe viszont a szakma nélkülözhetetlen aduásza lehet belőle, most már tudja, mi a dolga!