COBOL: Definition, historie og moderne funktioner
COBOL: Fra 1959's forretningssprog til moderne objektorientering — historien, centrale funktioner og hvorfor COBOL fortsat er vital i moderne IT og forretningssystemer.
COBOL er et programmeringssprog, der blev udviklet i 1959 og hurtigt blev et af de dominerende sprog til forretnings- og administrationssystemer. Navnet COBOL står for COmmon Business-Oriented Language. Sproget blev skabt for at give et redskab til at beskrive forretningsproblemer på en måde, som var uafhængig af den underliggende hardware, så programmer kunne være mere flytbare mellem forskellige maskintyper. Ligesom SQL anvender COBOL en syntaks, der ligger tæt op ad naturligt sprog, hvilket gør mange COBOL-sætninger læsbare for ikke-specialister. Som eksempel er ADD YEARS TO AGE et gyldigt udtryk.
Der findes flere versioner og standarder af COBOL. Sproget blev først specificeret i slutningen af 1950'erne og standardiseret løbende: vigtige milepæle er de store revisioner i 1968/1974, den gennemgribende revision COBOL-85 og senere moderniseringer. En vigtig ny standard var COBOL 2002, som introducerede bl.a. objektorienterede elementer. Siden da er standarden blevet revideret yderligere, og den seneste internationale standard er fra 2014 (ISO/IEC 1989:2014), som indeholder moderniseringer for bedre interoperabilitet, nye funktioner og forbedret sprogstruktur. Generelt gælder det dog, at ældre varianter (især fra før 1985) ofte ikke er fuldt kompatible med senere standarder uden tilpasninger.
Historiske holdninger og debat
I sit brev til en redaktør i 1975 med titlen "How do we tell truths that might hurt?" bemærkede datalog og Turing Award-modtager Edsger Dijkstra, at "brugen af COBOL forkrøbler hjernen; undervisning i det bør derfor betragtes som en kriminel handling". I dette brev kritiserede Dijkstra også flere andre sprog, der blev brugt på det tidspunkt. Kritikere har gennem tiden peget på COBOLs verbøse, deklarative stil og manglende højniveau-abstraktioner (især i de tidlige standarder).
Computerforskeren Howard E. Tompkins var uenig og forsvarede struktureret COBOL: "COBOL-programmer med indviklet kontrolflow har faktisk en tendens til at 'lamme hjernen'", men det skyldes, at "der er for mange sådanne forretningsprogrammer, der er skrevet af programmører, som aldrig har haft gavn af struktureret COBOL, som de har lært godt...". Denne debat illustrerer forskellen mellem sprogdesign og praktisk anvendelse: misbrug eller dårlig stil kan gøre ethvert sprog svært at vedligeholde.
Sprogfunktioner og modernisering
COBOLs design lægger vægt på klare sektioner og læsbarhed. Nogle centrale træk:
- Klare afsnit som IDENTIFICATION DIVISION, DATA DIVISION og PROCEDURE DIVISION, som adskiller programmetadata, datadefinitioner og programlogik.
- Rige datatyper til forretningsbehov, fx nøjagtige decimaltal (pakkede decimaler), record-strukturer og felter med faste længder.
- Stærk understøttelse af batchorienteret behandling og transaktionsbehandling, som gør sproget velegnet til løn, finans og regnskab.
- Struktureret programmering (blokstrukturer, kontrollerede løkker, procedurer) indført senere for at forbedre læsbarhed og vedligeholdelse.
- Moderne tilføjelser i nyere standarder: objektorienterede konstruktioner (fra 2002), support for programmeringsmoduler, funktioner, forbedret fil- og databaseintegration, XML-håndtering og bedre interoperabilitet med andre sprog og platforme.
Moderne anvendelser og værktøjer
På trods af sin alder bruges COBOL stadig i stor stil i kritiske forretningssystemer. Banker, forsikringsselskaber, offentlige myndigheder og større virksomheder kører ofte systemer, som er skrevet i COBOL, fordi de er robuste, skalerbare og blevet finjusteret gennem årtier. Mange af disse systemer kører på hovedrammeplatforme (mainframes) som IBM z/OS og bruger transaktionsmonitorer som CICS samt databaser som DB2 eller IMS.
Der findes både kommercielle og open source-kompilere og udviklingsmiljøer til COBOL. Eksempler inkluderer:
- IBM Enterprise COBOL til z/OS
- Micro Focus Visual COBOL og andre produkter fra Micro Focus
- GnuCOBOL (tidligere OpenCOBOL), som oversætter COBOL til C og derefter bruger en C-kompiler
Moderne integrationsmuligheder gør det muligt at:
- Kalde COBOL-programmer fra Java eller .NET og vice versa
- Exponere forretningslogik som webservices eller REST/JSON-endpoints
- Bearbejde XML/JSON og arbejde med Unicode for internationalisering
Kritik, vedligeholdelse og fremtid
COBOL kritiseres ofte for at være gammeldags og verbøst, men mange af disse kritikpunkter stammer fra ældre stil og manglende moderne praksis. Store code-baser i COBOL kan være svære at ændre, især når dokumentation og uddannelse mangler. Samtidig er der en betydelig efterspørgsel efter udviklere, der forstår COBOL, fordi mange systemer stadig er i drift, og migrering til nyere platforme kan være kompleks og dyr.
Organisationer vælger ofte en af tre veje: bevare og modernisere eksisterende COBOL-kode (fx ved at anvende moderne værktøjer, wrapper-teknikker og automatiseret test), omskrive systemer i nyere sprog (costly og risikabelt) eller erstatte funktionalitet med kommercielle standardløsninger. Hvilken tilgang der er bedst, afhænger af systemets kritikalitet, kompleksitet og forretningskrav.
Afsluttende bemærkninger
COBOL er et sprog med en lang historie og en fortsat praktisk relevans i mange sektorer. Dets styrke ligger i stabilitet, klar fokus på forretningsbehov og et stort volumen af eksisterende, veldokumenterede forretningsregler implementeret i produktionssystemer. Samtidig har nyere standarder og værktøjer givet sproget muligheder for at indgå i moderne arkitekturer og teknologistakke.
Søge