COBOL – ärikeskne programmeerimiskeel: määratlus, ajalugu ja versioonid
Tutvu COBOLiga — ärikeskne programmeerimiskeel: päritolu 1959, olulised versioonid, areng (OO, kasutajatüübid) ja praktilised näited ärirakendusteks ning moderniseerimiseks.
COBOL on programmeerimiskeel, mis töötati välja 1959. aastal. See oli üks esimesi arvuti programmeerimiskeeli. Nimi COBOL tähendab COmmon Business-Oriented Language. COBOL loodi, sest inimesed soovisid keelt, mida nad saaksid kasutada probleemide kirjeldamiseks viisil, mis ei sõltuks kasutatavast riistvarast. Sarnaselt SQL-ile kasutab COBOL süntaksit, mis on lähedane loomulikele keeltele. Näiteks ADD YEARS TO AGE on kehtiv väljend. COBOList on olemas mitu erinevat versiooni. Kõige uuem on aastast 2002. Üldiselt ei ühildu keele versioonid enne 1985. aastat uuemate versioonidega, mis pärinevad aastast 1985 ja hiljem.
1975. aastal märkis arvutiteadlane ja Turingi auhinna laureaat Edsger Dijkstra oma kirjas toimetusele pealkirjaga "Kuidas öelda tõde, mis võib haiget teha?", et "COBOLi kasutamine halvab mõistuse; selle õpetamist tuleks seetõttu pidada kriminaalseks süüteoks". Selles kirjas kritiseeris Dijkstra ka mitmeid teisi sel ajal kasutusel olnud keeli.
Arvutiteadlane, kelle nimi oli Howard E. Tompkins, ei olnud sellega nõus ja kaitses struktureeritud COBOLi: "COBOL-programmid, millel on keerukas kontrollivoog, kipuvad tõepoolest "halvama aju", kuid see oli tingitud sellest, et "liiga palju selliseid ärirakendusi on kirjutatud programmeerijate poolt, kes ei ole kunagi saanud kasu struktureeritud COBOLi hea õpetuse...".
Viimastel aastatel on COBOLi laiendatud, et võimaldada objektorienteeritudprogrammeerimist, kasutaja poolt määratletud funktsioone ja kasutaja poolt määratletud andmetüüpe.
Ajalugu ja tekkimine
COBOL-i arendasid 1959. aastal kokku mitmed arvutiteadlased ja tööstuse esindajad, peamiselt organisatsiooni CODASYL (Conference on Data Systems Languages) algatusel. Grace Hopperi töö ja ideed loetavast, ärikesksest programmeerimisest mõjutasid keele loomist, kuid COBOL ei ole ühe inimese kui autoritöö — see oli standardiseeritud koostöö tulemus. Esialgne standard ilmus 1960. aastate alguses ja keele disain rõhutas äriloogika väljendamist selge, peaaegu ingliskeelse süntaksi abil.
Keele põhistruktuur
Traditsiooniliselt on COBOL-i lähtekood jaotatud neljaks põhiosaks (divisions):
- IDENTIFICATION DIVISION – programmi metaandmed (nimi, autor jne);
- ENVIRONMENT DIVISION – keskkonna- ja failikonfiguratsioon;
- DATA DIVISION – andmeväljade ja salvestusüksuste määratlused (nt PIC-klausel põhinevad kirjeldused);
- PROCEDURE DIVISION – programmiloogika ja käsud.
COBOL tugevdab aritmeetikat ja rahandusarvestust, toetades täpseid kümnendmurru arvutusi (packed decimals ja sarnased esitused), mida finantssüsteemides sageli nõutakse.
Versioonid ja standardid
- COBOL-60 / 1960. aastad – esialgsed variandid ja laialdane levik.
- COBOL-68 – esimene ametlik standardiseerimise samm.
- COBOL-74 – parendused ja täiendused.
- ANSi COBOL 1985 – oluline ümberkujundus, mis parandas ühilduvust ja tõi kaasa standardiseeritud süntaksi; sellest ajast alates on sageli räägitud ühilduvusprobleemidest varasemate (enne 1985) variante ja uuema standardi vahel.
- COBOL 2002 – lisati objektorienteeritud programmeerimise (OOP) omadused, kasutaja määratletud andmetüübid ja funktsioonid.
- COBOL 2014 – ISO/IEC uuendused ja täiendused; paljud kaasaegsed kompilaatorid tuginevad sellele või kombineerivad omadusi mitmest standardist.
Omadused, tugevused ja nõrkused
- Tugevused:
- Hea loetavus — lähedane ärikeelele, lihtne ärirakenduste loogikat mõista;
- Stabiilsus ja töökindlus — paljud kriitilised süsteemid (pangad, kindlustus, valitsus) töötavad COBOLi baasilt;
- Täpne kümnendmurru aritmeetika, oluline finantssüsteemides;
- Suured ja hästi testitud tööriistad ning kompilaatorid (nt IBM Enterprise COBOL, Micro Focus, GnuCOBOL).
- Nõrkused:
- Verbosi ja mõnikord mahukas süntaks võrreldes kaasaegsete keeltega;
- Algajad leiavad vanemate standardite ja konkreetsete laienduste õppimise keeruliseks;
- Pärandkoodi hooldus võib olla keeruline, kui dokumentatsioon puudub ja oskuste puudus on suur.
Rakendused ja tänapäevane kasutus
COBOL on olnud ja on endiselt laialdaselt kasutusel ärirakendustes, eriti pankades, kindlustusseltsides, riigiasutustes ja muudes valdkondades, kus on vaja töödelda suuri koguseid finantsandmeid ja teha täpseid aritmeetilisi operatsioone. Paljud suured ettevõtted ja avaliku sektori süsteemid jooksevad peaasjalikult peamälusüsteemidel (mainframes), kus COBOL-i rakendused on kriitilised.
Tänapäeval kasutatakse mitmeid lähenemisi COBOL-koodi ülalpidamiseks ja moderniseerimiseks:
- koodi säilitamine ja moderniseeritud kompilaatorite kasutamine (nt IBM, Micro Focus);
- COBOL-komponendina toimimine teiste süsteemide kõrval — veebiteenuste/REST-API-de, Java- või .NET-sildade abil;
- automaatne migratsioon modernsetesse keeltesse (tavaliselt keeruline ja riskantne);
- avatud lähtekoodiga lahendused nagu GnuCOBOL (endine OpenCOBOL) võimaldavad väiksematel organisatsioonidel COBOLi kasutada ilma kommertskompilaatorita.
Kriitika ja haridus
Nagu artikli alguses mainitud, on COBOL saanud ranged hinnangud (nt Dijkstra kriitika). Oluline on eristada keelt endast ja seda, kuidas seda kasutatakse: halb struktuur või halvad praktikad võivad põhjustada kehva koodi ükskõik millises keeles. Samas on tänapäeval olemas head programmeerimispõhimõtted, struktureeritud programmeerimine ja testimispraktikad, mis aitavad COBOL-koodi hoida loetavana ja hooldatavana. Paljud organisatsioonid koolitavad uusi COBOL-arendajaid just selleks, et hoolitseda olemasolevate süsteemide eest.
Väljavaated
Kuigi COBOL ei ole tänapäeva tehnoloogiate kõige trendikam keel, on sellel jätkuvalt oluline roll olemasolevate ärisüsteemide toetamisel. Organisatsioonide valik säilitada, moderniseerida või migreerida COBOL-koodi sõltub riskidest, kuludest ja ärivajadustest. Paljud süsteemid toimivad hästi ning migratsioon ei ole alati õigustatud — seetõttu COBOL püsib maailmas olulise pärandkeelena.
Kokkuvõte: COBOL on ärikeskne programmeerimiskeel, mille tugevused on loetavus, täpsus rahandusarvutustes ja suur levik kriitilistes ärisüsteemides. Keele areng on kulgenud standardiseerimise teel (1960ndatest kuni 2014. aasta standardini), lisades viimastel aastakümnetel näiteks objektorienteeritud võimalused. Kuigi keel on saanud kriitikat, on selle praktiline väärtus ja paljude organisatsioonide sõltuvus sellest endiselt märkimisväärne.
Otsige