Hľadáš dieru na trhu? Pridaj si COBOL do CV a banky sa o teba potrhajú!

COBOL, teda “Common Business Oriented Language” je 60-ročný programovací jazyk, na ktorom ešte dnes stojí veľa dôležitých medzinárodných služieb – rezervácie leteniek, spracovávania bankových transakcií… Mnohé firmy však majú smolu. Programátori vybavení týmto jazykom sú totiž prinajlepšom na dôchodku. Z tohto dôvodu je o COBOL veľký záujem a mzda, ktorú sú firmy ochotné zaplatiť za tento skill, začína na 2000€ brutto.

Vyvynutý v roku 1959 vznikol ako reakcia na rastúce ceny hardvéru a programátorov – trh si vyžadoval niečo jednoduhšie, niečo čitateľnejšie, niečo menej ako C a viac ako Python (čítaj s jemným sarkazmom). Múdre hlavy sa spojili a prišli s riešením (toto je už bez sarkazmu). Výsledkom bol jazyk tak inovatívny, že ešte aj dnes ho nájdete v nejednom IBM mainframe. Na Slovensku ho využíva napríklad aj Sociálna Poisťovňa.

COBOL je zodpovedný za efektívne, spoľahlivé, bezpečné a neviditeľné každodenné operácie svetovej ekonomiky. Každodenná logika používaná na spracovanie našich najdôležitejších údajov sa často vykonáva pomocou COBOL.

Zdroj: IBM (https://developer.ibm.com/languages/cobol/)

Prečo je o COBOL taký záujem? Príbeh z USA.

Pandémia COVIDu-19 dala naozaj zabrať svetovej infraštruktúre a zmenila veľa vecí. V USA napríklad zamestnanecký status 20 miliónov ľudí. Občania bez príjmu sa samozrejme snažili čo najrýchlejšie prihlásiť na úrad práce, aby mohli poberať štátnu pomoc. Jedným z mnohých výsledkov boli nefunkčné webstránky, problémy s internetovým pripojením a neprijaté sociálne dávky. Úradné weby jednoducho neboli pripravené zvládnuť takú návštevnosť a jedným z dôvodov bolo, že mnohé bežia na COBOL-e a nemal ich kto udržiavať.

Rýchlo sa prišlo na to, že COBOL komunita je nielen malá, ale že je dokonca v plienkach (nie v tých detských).

Poďme sa teda pozrieť na to, prečo je tento jazyk tak nepopulárny. Nemôže to byť až také zlé, či?

Kúsok syntaxu

Ako som naznačil už v úvode, COBOL je relatívne čitateľný programovací jazyk, pripomínajúci Python alebo SQL. Väčšina operácií sa dá opísať slovami. Ukážme si napríklad, ako sa v COBOLe porovnávajú dve premenné. Sú na to dokonca tri spôsoby.

x IS GREATER THAN y
x GREATER THAN y
x > y

Tu však jeho jednoduchosť končí. Ďalej je to už len pot a krv. V snahe udržať ho čo najčitateľnejší má cobol cez 600 anglických keywordov, ktorých funkciu si musí každý developer zapamätať. Niektoré kľúčové slová sú plurály iných (TIME a TIMES, VALUE a VALUES), zatiaľ čo slová ako napr. IN a OF vyjadrujú tú istú vec a možno ich použiť zameniteľne.

Čo sa týka samotného kódu, začiatočníci môžu byť prekvapení keď zistia, že každý riadok v COBOL kóde sa delí na niekoľko stĺpcov a že vôbec nie je jedno čo sa v každom stĺpci nachádza.

Starodávny programátorský papier využívaný pre kódovanie jazyka COBOL
(Zdroj: https://stackoverflow.blog/2020/04/20/brush-up-your-cobol-why-is-a-60-year-old-language-suddenly-in-demand/)

Stĺpce 1 až 6 sú určené na číslovanie riadkov. Každý program začína od riadku 100 (???). Stĺpec 7 sa volá “indikačné pole” a využíva sa na označenie riadkov, v ktorom sa nachádza komentár namiesto kódu. Samotný kód prebýva v stĺpcich 8 až 72.

Od začiatku bolo cieľom vytvoriť “self-documenting” jazyk (neviem čo to znamená ale ak ty áno, daj vedieť v komentári). Namiesto tradičných funkcií využíva COBOL divízie, sekcie, paragrafy a vety. A nezabudnime na to, že väčšina riadkov končí bodkou až na tie, ktoré z nejakehé dôvodu tak nekončia…

Fajnšmekrov možno poteší, že nové verzie jazyka COBOL dokonca implementújú OOP.

Ak si to dočítal/a až sem, je čas si puknúť kĺby v prstoch a trošku si zakódiť.

“Ahoj svet!” v COBOLe

Ako sme si teda hovorili, COBOL nepozná funckie tak, ako existujú napríklad v Jave. Keď si však porovnáme jednoduchý program v oboch jazykoch, veľmi rýchlo sa môžeme dovtípiť, o čo ide.

public class Hello {
        // toto je Ahoj Svet! v jazyku JAVA 
	public static void main(String[] args){
		System.out.println("Hello, world!");
	}
}
   100 IDENTIFICATION DIVISION.
   101*toto je Ahoj Svet! v jazyku COBOL 
   102 PROGRAM-ID. HELLO.
   103 PROCEDURE DIVISION.
   104     DISPLAY "Hello, world".
   105 END PROGRAM HELLO.

Poďme si teda prejsť jednotlivé riadky:

RIADOK 100 – IDENTIFICATION DIVISION.

Divízia (časť) určená pre identifikáciu programu, každý COBOL program musí mať aspoň jednu.

RIADOK 101 – Komentár začínajúci hviezdičkou (*).

RIADOK 102 – PROGRAM-ID. HELLO.

“PROGRAM-ID” je jeden z mnohých divíznych paragrafov a hovorí o mene programu.

RIADOK 103 – PROCEDURE DIVISION.

Divízia určená pre definíciu “procedúr” (krokov), ktoré ma program vykonať.

RIADOK 104 – DISPLAY. “Hello, world”.

Vypíš “Hello, world”.

RIADOK 105 – END PROGRAM HELLO.

Označenie konca programu.

Ak máš záujem ponoriť sa do jazyka COBOL hlbšie, odporúčam tento bootcamp.

Myšlienka na záver

Koronavírus rapídne urýchlil Štvrtú industriálnu revolúciu, celý svet sa už zrejme natrvalo presúva na internet a aj keby sme sa kolektívne radi zbavili neurotického “boomera” menom COBOL, momentálne to nie je možné. Bankové transakcie, návštevy najväčších webov, sčítanie ľudu, rezervácie miesteniek v lietadle – to všetko na ňom stojí a vzhľadom na to, že sa tieto služby nedajú len tak vypnúť, musíme ísť hrdo ďalej, kým niečo nevymyslíme.

Do tej doby si môžeš urobiť COBOL kurz, ponúkaný firmou IBM úplne zadarmo a užiť si pekne platenú prácu, v ktorej sa budeš môcť cítiť nenahraditeľne.

Leave a Reply

Your email address will not be published. Required fields are marked *