COBOL: poslovni programski jezik — zgodovina, različice in značilnosti
COBOL: zgodovina, različice in ključne značilnosti poslovnega programskega jezika — od nastanka 1959 do modernih razširitev, združljivost in uporaba v podjetjih.
COBOL je programski jezik, ki je bil razvit leta 1959. Bil je eden prvih računalniških programskih jezikov. Ime COBOL pomeni COmmon Business-Oriented Language (jezik, usmerjen v poslovanje). COBOL je bil ustvarjen, ker so ljudje želeli jezik, ki bi ga lahko uporabili za opisovanje problemov na način, ki je neodvisen od uporabljene strojne opreme. Tako kot SQL tudi COBOL uporablja sintakso, ki je blizu sintaksi naravnih jezikov. Kot primer: ADD YEARS TO AGE je veljaven izraz. Obstaja več različnih različic COBOL-a. Najnovejša je iz leta 2002. Na splošno različice jezika pred letom 1985 niso združljive z novejšimi različicami iz leta 1985 in kasneje.
Računalniški znanstvenik in prejemnik Turingove nagrade Edsger Dijkstra je leta 1975 v pismu uredniku z naslovom "Kako povedati resnice, ki lahko bolijo?" zapisal, da "uporaba COBOL-a pohablja um; njegovo poučevanje bi zato moralo veljati za kaznivo dejanje". V tem pismu je Dijkstra kritiziral tudi več drugih jezikov, ki so se takrat uporabljali.
Računalniški znanstvenik z imenom Howard E. Tompkins se s tem ni strinjal in je branil strukturirani COBOL: "Programi COBOL z zapletenim kontrolnim tokom res težijo k 'pohabljanju uma'", vendar zato, ker "je preveč takšnih poslovnih aplikacijskih programov, ki so jih napisali programerji, ki niso nikoli imeli koristi od dobro naučenega strukturiranega COBOL-a ...".
V zadnjih letih je bil COBOL razširjen tako, da omogoča objektno usmerjenoprogramiranje, uporabniško definirane funkcije in uporabniško definirane podatkovne tipe.
Zgodovina in nastanek
COBOL je nastal konec 1950-ih in v zgodnjih 1960-ih v odgovoru na potrebe poslovnih uporabnikov po jeziku, ki bi bil razumljiv poslovnim strokovnjakom in neodvisen od strojne opreme. Pri razvoju so sodelovale različne organizacije in delovne skupine (med njimi so bili vplivi jezikov, kot je FLOW-MATIC). Zaradi njegove osrednje vloge v poslovnem procesiranju so ga hitro sprejeli banke, zavarovalnice, vladne institucije in druge organizacije z velikimi količinami transakcijskih in poročilnih podatkov.
Standardi in različice
- Prvi standardi so bili sprejeti v 60. letih (ANSI/ISO standardi), kasnejše pomembne revizije so bile COBOL-74 in COBOL-85 (1985), ki je uvedla številne jezikovne izboljšave in strukturirane konstrukte.
- Standard iz leta 2002 (ISO/IEC 1989:2002) je med drugim uradno vključil razširitve, kot so podpora za objektno usmerjeno programiranje in uporabniške funkcije.
- Po mojem zadnjem posodobitvenem znanju je bil standard dodatno posodobljen tudi v naslednjih letih (nazivno COBOL 2014/ISO/IEC 1989:2014), ki je prinesel manjše izboljšave in boljšo podporo sodobnim potrebam (npr. dodatki za obdelavo XML in druge interoperabilnostne izboljšave).
Pomembno je vedeti, da kljub standardom obstajajo razlike med implementacijami (kompilatorji) in da koda, napisana za zelo stare kompilatorje, včasih potrebuje prilagoditve, da teče na sodobnih sistemih.
Osnovna struktura in značilnosti jezika
COBOL je znan po naslednjih značilnostih:
- Razdeljenost programa: tipične division enote so IDENTIFICATION DIVISION, ENVIRONMENT DIVISION, DATA DIVISION in PROCEDURE DIVISION. To daje programu jasno strukturo med definicijo podatkov in izvajanjem logike.
- Berljivost: sintaksa je zasnovana tako, da je podobna angleškemu naravnemu jeziku — to olajša razumevanje poslovne logike tudi tistim brez poglobljenega računalniškega izobraževanja.
- Močna podpora za obdelavo podatkov: napredne možnosti za definiranje rekordov, polj, nivojev (level numbers) in PICTURE izrazov (za formate števil in besedil), podpora za decimalno aritmetiko in pakirano shranjevanje (npr. COMP-3).
- Datotečno in transakcijsko procesiranje: COBOL je tesno povezan z velikimi batch sistemi ter transakcijskimi kontrolnimi okolji (npr. IBM CICS) in upravlja velike tokove poslovnih transakcij.
- Fiksna postavitev in prosto oblikovanje: tradicionalno je imel COBOL stroga pravila glede stolpcev (80 stolpcev), vendar so novejši standardi in kompilatorji podpirali prostejšo, manj omejeno obliko zapisa kode.
- Razširitve: moderne različice dodajajo podporo za objektno usmerjenost, uporabniško definirane funkcije, delo z XML, Unicode in izboljšano interoperabilnost z drugimi jeziki in sistemi.
Uporaba danes
COBOL je pogosto uporabljen v kritičnih informacijskih sistemih velikih podjetij in javnih institucij, predvsem na glavnih računalnikih (mainframe) in v okoljih za obdelavo plačil, bankarstvo, zavarovalništvo ter državne evidence. Zaradi svoje zanesljivosti in optimiziranosti za obdelavo velikih količin podatkov ter zaradi lekseme zgodovinskih naložb v obstoječe aplikacije in podatkovne baze, COBOL še vedno poganja ogromno transakcij in poročil.
Kritike in zagovorniki
Dijkstrajeva ostrejša kritika iz leta 1975 (citirana zgoraj) odraža zgodnje pomisleke glede berljivosti in slabe prakse pri pisanju COBOL kode — predvsem pri neurejenih, ne-strukturiranih programih. Po drugi strani so zagovorniki, kot je Howard E. Tompkins, opozorili, da dobro strukturiran COBOL omogoča jasen in vzdržen poslovni programski kod. Danes se strinja veliko strokovnjakov, da so težave pogosto posledica slabe programske prakse in ne samega jezika.
Kompatibilnost, orodja in sodobni ekosistem
- Obstajajo številni komercialni in odprtokodni kompilatorji (npr. IBM COBOL za z/OS, Micro Focus COBOL, GnuCOBOL/OpenCOBOL), ki nudijo različne stopnje kompatibilnosti s standardi in dodatnimi orodji.
- Za modernizacijo so na voljo mostovi in vmesniki za klice med COBOL in sodobnimi jeziki (Java, C#, REST API-ji), orodja za prevajanje in refaktoriranje ter rešitve za zagon COBOL aplikacij v sodobnih infrastrukturnih okoljih (virtualizacija, kontejnarji).
- V zadnjih letih so se pojavila poročila o pomanjkanju izkušenih COBOL programerjev, zaradi česar so nekatera podjetja in države spodbujala izobraževanje in prepis starih sistemov ali iskanje strokovnjakov za vzdrževanje ključnih aplikacij.
Zakaj COBOL traja?
Čeprav jezik ni najbolj moderen po videzu, obstaja več razlogov za njegovo dolgotrajno uporabo:
- velike baze obstoječih aplikacij in podatkov, ki bi bile drage za popolno zamenjavo;
- visoka zanesljivost in učinkovitost pri obdelavi velikih količin transakcijskih podatkov;
- močna podpora za natančno decimalno aritmetiko in poslovne formate poročil;
- obstoječe operativno okolje in integracija s sistemi, kot so mainframe, kjer so stroški migracij pogosto bistveno višji od vzdrževanja.
Primer osnovne COBOL strukture
Tipičen COBOL program je razdeljen na divisions in v grobem izgleda takole:
IDENTIFICATION DIVISION. PROGRAM-ID. PRIMER. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. ... DATA DIVISION. WORKING-STORAGE SECTION. 01 AGE PIC 9(3). PROCEDURE DIVISION. ADD YEARS TO AGE. DISPLAY "AGE IS " AGE. STOP RUN.
Zaključek
COBOL je bil zasnovan kot jezik za poslovno obdelavo podatkov, z značilnostmi, ki poudarjajo berljivost, stabilnost in zanesljivost pri velikih količinah transakcijskih podatkov. Čeprav je bil deležen ostrih kritik, ostaja široko uporabljen v kritičnih sistemih po svetu. Sodobni standardi in implementacije so mu dodali nove zmogljivosti (vključno z objektno usmerjenostjo, izboljšano interoperabilnostjo in boljšimi orodji), zaradi česar COBOL ostaja pomemben del IT-infrastrukture mnogih organizacij.
Iskati