COBOL-ohjelmointikieli: historia, ominaisuudet ja nykykäyttö
Tutustu COBOLin historiaan, keskeisiin ominaisuuksiin ja nykyaikaisiin käyttötapauksiin — miksi perinteinen liikekieli elää yhä yritysjärjestelmissä.
COBOL on ohjelmointikieli, joka kehitettiin ensimmäisen kerran vuonna 1959 liiketoiminnan tietojenkäsittelytarpeita varten. Nimi COBOL tulee sanoista COmmon Business-Oriented Language. Kielen suunnittelun taustalla oli tavoite kuvata liiketoimintaongelmia selkeällä, laitteistoriippumattomalla tavalla — teksti muistuttaa luonnollista kieltä ja on siksi helposti luettavissa myös ei-asiantuntijoille. Kielen kuuluisa englanninkielinen tyylisuunta näkyy esimerkiksi lauseessa ADD YEARS TO AGE, joka on kelvollinen COBOL-lauseke.
Lyhyt historia
COBOLin kehitystä koordinoi 1959 perustettu ryhmä (mm. US Department of Defense ja yksityiset yritykset). Kieli hyväksyttiin nopeasti laajempaan käyttöön ja standardisointi aloitettiin 1960-luvulla. Merkittäviä standardeja ovat mm. COBOL-68, COBOL-74 ja COBOL-85. Vuosisatojen vaihteessa standardiin lisättiin merkittäviä laajennuksia: vuonna 2002 standardi toi mukanaan muun muassa olio-ominaisuuksia, ja uusin ISO-standardi on vuodelta 2014.
Ominaisuudet ja syntaksi
- Selkeä, englanninkaltainen syntaksi, joka tekee koodista luettavaa: komentojen nimet ja lauserakenteet ovat kuvaavia.
- Jaettu rakenne: ohjelmat on perinteisesti jaettu IDENTIFICATION, ENVIRONMENT, DATA ja PROCEDURE -osioihin, jotka selkeyttävät ohjelman eri vastuualueita.
- Tietue- ja kenttäkeskeinen käsittely: vahva tuki tietueille (records), riveille ja kentille, joka sopii liiketoimintadatan käsittelyyn.
- Tarkka desimaalilaskenta (packed decimal / COMP-3 ja muut järjestelyt), joka on tärkeää rahoitus- ja kirjanpitolaskennassa.
- Perinteisesti proseduraalinen, mutta uudemmat standardit tukevat oliopohjaista ohjelmointia, käyttäjän määrittelemiä funktioita ja tietotyyppejä.
- Tiedostokäsittely ja suurten eräajojen (batch) sekä transaktiojärjestelmien (esim. CICS, IMS) tuki.
- Alkuvaiheessa COBOL oli kiinteässä muodossa (fixed-format), mutta myöhemmissä standardeissa on tullut vapaaformaattisia piirteitä.
Standardit ja yhteensopivuus
COBOLin kehityksessä on ollut useita standardiversioita. Merkittäviä virstanpylväitä ovat 1968, 1974, 1985, 2002 ja 2014. Monet ennen vuotta 1985 julkaistut kieliversiot eivät ole täysin yhteensopivia uudempien standardien kanssa, ja siksi vanhan koodin siirtäminen moderniin ympäristöön voi vaatia muokkausta. Vuoden 2002 standardi toi suuriin kielilisäyksiin — erityisesti oliomallin tuen — ja vuonna 2014 julkaistu standardi sisältää korjauksia ja päivityksiä vanhempiin määritelmiin.
Vastustus ja puolustus
COBOL on herättänyt voimakkaita mielipiteitä. Vuonna 1975 tietokonetiedemies ja Turing-palkinnon saaja Edsger Dijkstra kirjoitti kirjeessään toimittajalle tunnetun kritiikin: "Miten kerromme totuuksia, jotka saattavat satuttaa?", ja hän totesi että "COBOL:n käyttö rampauttaa mielen; sen opettamista pitäisi siksi pitää rikoksena." Dijkstra kritisoi kirjeessään myös muita tuon ajan kieliä ja painotti rakenteellisen ohjelmoinnin merkitystä.
Toisaalta alan tutkijat ja kehittäjät puolustivat kieltä. Esimerkiksi tietojenkäsittelytieteilijä Howard E. Tompkins oli eri mieltä: hän korosti, että ongelma ei ole COBOL sinänsä, vaan usein huonosti kirjoitettu ja erittäin mutkikas liiketoimintasovellus. Tompkins kirjoitti, että "COBOL-ohjelmat, joissa on mutkikas kontrollin kulku, ovat todellakin taipuvaisia 'rampauttamaan mielen', mutta tämä johtuu siitä, että 'on olemassa liian monia tällaisia liikesovellusohjelmia, jotka ovat kirjoittaneet ohjelmoijat, jotka eivät ole koskaan hyötyneet strukturoidun COBOLin opettamisesta hyvin...'".
Nykykäyttö ja elinkaari
Vaikka COBOL on vanha kieli, sitä käytetään edelleen laajasti erityisesti pankki- ja vakuutusalalla sekä julkisissa hallintojärjestelmissä. Syitä kielen pitkäikäisyydelle ovat sen vakaus, tehokkuus suurien tietomäärien käsittelyssä, tarkka desimaalilaskenta ja valtava asennuskanta, josta monet organisaatiot ovat riippuvaisia.
Modernissa käytössä COBOL-ohjelmia ajetaan usein pääteympäristöissä (esim. IBM-z-mainframe), mutta myös uudelleenisännöinti (rehosting) ja integrointi moderneihin sovellusarkkitehtuureihin on yleistä. Tyypillisiä lähestymistapoja ovat:
- COBOL-koodin suorittaminen alkuperäisessä ympäristössä ja käyttöliittymien tai web-palveluiden liittäminen päälle.
- Koodin porttaus tai uudelleenkirjoitus muihin kieliin tilanteissa, joissa se on järkevää.
- Käyttämällä työkaluja, jotka mahdollistavat COBOLin kutsumisen Java- tai .NET-ympäristöistä tai päinvastoin.
Työkalut ja yhteisö
COBOLin kehitykseen ja ylläpitoon on saatavilla monia moderneja työkaluja: kaupallisia kääntäjiä ja IDE:itä sekä avoimen lähdekoodin toteutuksia. Tunnettuja alustoja ovat mm. IBM:n mainframe-ympäristöt, kaupalliset tuotteet kuten Micro Focus sekä avoimen lähdekoodin projektit, jotka mahdollistavat koodin kääntämisen ja testauksen nykyaikaisissa ympäristöissä. Lisäksi on tarjolla migraatiotyökaluja, automaattisia refaktorointityökaluja ja testikehyksiä COBOL-projektien hallintaan.
Hyvät käytännöt ylläpitoon ja modernisointiin
- Pidä dokumentaatio ajan tasalla ja rakenna kattavat automaattiset testit (unit-, integraatio- ja regressiotestit).
- Suosi asteittaista modernisointia: wrapperit, palvelutasolla tapahtuva uudelleenarkkitehtuuri ja rajapintojen (API) luominen.
- Kouluta kehittäjiä ja siirrä osaamista eteenpäin — COBOL-osaajista on edelleen kysyntää ylläpitotehtävissä.
- Arvioi huolellisesti uudelleenkirjoituksen kustannukset vs. rehosting- tai integraatiovaihtoehdot.
Yhteenvetona: COBOL on historiallisesti merkittävä ja edelleen laajalti käytetty kieli erityisesti liiketoimintajärjestelmissä. Vaikka kieli on saanut kritiikkiä, sen vahvuudet suurten eräajojen, tarkkojen talouslaskelmien ja pitkään jatkuneen käytön takia pitävät sen relevanttina monille organisaatioille. Modernit standardit ovat lisänneet uusia ominaisuuksia, kuten oliopohjauksen, ja nykyratkaisut mahdollistavat COBOLin integroinnin nykyaikaisiin järjestelmiin.
Etsiä