Programiranje

Kaj je COBOL? Razloženo programiranje COBOL

Nekatere tehnologije nikoli ne umrejo - preprosto zbledijo v lesenih delih.

Povprašajte povprečnega razvijalca programske opreme o COBOL (Common Business Oriented Language) in videli vas bodo, kot da omenjate karbonski papir, osvinčeni bencin ali rekord 78 vrt / min. V primerjavi s sodobnimi jeziki, kot sta Go ali Python - ali celo Pascal ali C! - COBOL deluje zgovorno, okorno, passé.

Toda COBOL je zdržal. COBOL je še zdaleč od zastarele tehnologije, s katero smo se z veseljem razšli, postal institucija. Množične zbirke kod COBOL so še vedno v uporabi po vsem svetu, mnoge od njih delujejo skoraj natanko tako, kot so bile ob prvem ustvarjanju. V hollywoodski govorici ima jezik COBOL "noge".

Torej, da, COBOL je še vedno pomemben in pravočasen - pravzaprav boleče. V zadnjih mesecih je COBOL spet vstopil v javno zavest, saj so države, kot je New Jersey, pozvale programerje, naj jim pomagajo premakniti svoje aplikacije COBOL v 21. stoletje.

V tem delu si bomo ogledali izvor COBOL-a, kako zasnova programskega jezika še danes izstopa in kaj naredi COBOL tako trajen in tako nerešljiv.

Zgodovina COBOL-a

COBOL je nastal konec petdesetih in zgodnjih šestdesetih let. Razvoj jezika je bil projekt, ki ga je sponzoriralo Ministrstvo za obrambo ZDA (DoD) in je vključeval konzorcij računalniških podjetij, vključno z IBM-om, Honeywellom, Sperry Random in Burroughsom. Cilj je bil ustvariti programski jezik z naslednjimi atributi:

  • Prenosljivost med računalniškimi sistemi, kar olajša selitev programske opreme tako med generacijami strojne opreme kot med proizvajalci strojne opreme.
  • Angleški podobnejša sintaksa kot drugi jeziki tistega časa (npr. FORTRAN) kot način spodbujanja širšega občinstva k programiranju, četudi na račun neke operativne hitrosti.
  • Sposobnost prilagoditve prihodnjim spremembam jezika.

Prve uradne specifikacije za COBOL so izšle leta 1960. V naslednjem desetletju je COBOL postal za privzeto izbiro za pisanje poslovnih aplikacij in ob izzivu kritikov. Eden od razlogov za njegovo hitro širjenje so bili omrežni učinki: IBM, eden od prvotnih sodelavcev pri tem jeziku, je postal agresiven začetnik in IBM-ova prevladujoča prisotnost v računalniškem svetu je prispevala k sprejetju COBOL-a.

Zaradi svojih oblikovnih prednosti in težke industrijske podpore se je COBOL obdržal in preživel prvotne sisteme, za katere je bil zasnovan z veliko prednostjo. Po različnih ocenah je bil do leta 1970 COBOL najpogostejši programski jezik na svetu. Do leta 1997 naj bi COBOL uporabljal približno 80 odstotkov poslovnih aplikacij.

Jezik COBOL

Oblikovalci COBOL so prekinili kratko besedo takratnih programskih jezikov (spet, na primer FORTRAN). Zamisel je bila ustvariti programski jezik, ki bi ga lahko prebrali in razumeli ne-programerji, zlasti računovodstvo, finance, zavarovalništvo in drugi poslovni strokovnjaki.

Razmislite o programu "hello world", napisanem v zgodnjem narečju COBOL-a:

IDENTIFIKACIJSKI ODDELEK.

ID PROGRAMA. POZDRAVLJEN, SVET.

ODDELEK POSTOPKA.

ZASLON 'Hello World!'.

KONEC-PRIKAZ.

USTAVI TEK.

Za sodobne razvijalce programske opreme, ki se ukvarjajo s skromnostjo jezikov, kot je Python, je ta koda podrobna. Toda beseda COBOL-a (če že ne njegova izvedba) izvira iz iste domišljavosti, ki obvešča sodobne jezike, kot je Python - ta koda se prebere veliko večkrat, kot je napisana, zato bi jo morali napisati, da je berljiva.

Podoben program v sodobnejši različici COBOL-a je lahko videti nekako takole:

program-id. zdravo.

delitev postopka.

zaslon "Pozdravljen svet!".

ustavite tek.

Čeprav je ta primer bolj jedrnat, veljajo enaka osnovna načela: koda si prizadeva, da bi bila jasna glede dogajanja na vsakem koraku.

COBOL ima stroga pravila glede sintakse in notranje organizacije programov. Program COBOL je izrecno razdeljen na odseke, oz oddelkov, ki olajšajo hitro iskanje in razumevanje njegovih komponent:

  • Oddelek za identifikacijo: V bistvu razdelek z metapodatki, ki vsebuje podrobnosti o programu, njegovem avtorju itd.
  • Oddelek za okolje: Vsebuje podrobnosti o izvajalnem okolju, na primer vzdevke za zunanje naprave, ki jih bo morda treba urejati med izvajanjem programa na drugi strojni opremi. To je pripomoglo k prenosljivosti programa med sistemi, kjer bi lahko na primer z I / O ravnali povsem drugače.
  • Delitev podatkov: Vsebujemapa in delujoče skladišče Podatkovna razdelka opisuje datoteke in spremenljivke (oziroma), ki se uporabljajo v programu.
  • Delitev postopka: Tu živi dejanska programska koda, razdeljena na logične enote oddelki, odstavki, stavki, in izjave. Skušnjava je te strukture analogizirati z moduli ali funkcijami, ker služijo približno enakim funkcijam (delitev kode na bloke z omejenimi vhodi in izhodi), vendar so veliko manj prilagodljive.

COBOL ima tudi zelo stroga pravila oblikovanja kode, vse do števila presledkov pred ukazom. (Uporabnikom Pythona se bo to zdelo znano!) Nekatere od teh omejitev so stranski produkt polnoletnosti COBOL-a v času mainframe-a v šestdesetih letih, ko so bili programi kodirani na luknjanih karticah in je bilo pomembno natančno oblikovanje 80-stolpčnih vrstic. . Toda druge omejitve oblikovanja zagotavljajo berljivost.

Ideja strogega razporejanja programov COBOL je, da bi bili čim bolj samo-dokumentirani. Navsezadnje so programi COBOL običajno obstajali leta ali desetletja. Namen (če ne vedno končni rezultat) je bil narediti vsak program COBOL artefakt, ki bi ga lahko razumel kateri koli programer COBOL, celo leta kasneje, brez pomoči programerja, ki ga je ustvaril.

Izzivi COBOL

Velik del nadaljnje razširjenosti in vztrajnosti COBOL-a izhaja iz dejstva, da so bile aplikacije COBOL, ko so bile enkrat napisane, običajno nedoločene, le z manjšimi spremembami. Večja in bolj kritična kot je aplikacija, manj verjetno je, da jo bo motila. Mainframe-ji, kot je ponudba IBM-a, so imeli ključno vlogo: zgrajeni so bili tako, da so zelo združljivi s prejšnjimi različicami in za izvajanje starejše programske opreme - kot so aplikacije COBOL - med generacijami strojne opreme z minimalnimi spremembami. Rezultat: Milijarde vrstic kode COBOL se desetletja izvajajo v bistvu nespremenjene.

Z leti COBOL ima razvijali, če počasi. Zdaj ima celo objektno usmerjeno različico OO-COBOL, ki vključuje podporo sodobnim funkcijam, kot so Unicode, področne nastavitve in naprednejši tipi podatkov poleg nizov in celih števil. Toda COBOL agresivno ohranja združljivost za nazaj, zato tudi te izboljšave in razširitve ustrezajo zahtevam, da morajo obstoječe aplikacije COBOL še naprej delovati.

Vse COBOL-ove izbire jezikovnega oblikovanja niso bile priljubljene pri programerjih COBOL. Nekateri so privedli do preveč zapletenih programov, ki jih je bilo težko razumeti ali odpraviti napak, kar je odvračalo od ponovnega pisanja ali izboljšav. COBOL-a POJDI DO ukaz je, tako kot njegov kolega v C, programerjem omogočil, da prosto skačejo okoli programa in tako pišejo zmogljivejše aplikacije. Toda nedisciplinirana uporaba POJDI DO lahko program COBOL spremenil v gnezdo podgan, ki mu je težko izslediti navzkrižne reference.

Programiranje COBOL danes

COBOL danes preživi v nekaj inkarnacijah. IBM aktivno vzdržuje lastne implementacije COBOL in vzdržuje številne obstoječe aplikacije COBOL tam, kjer se izvajajo. Micro Focus COBOL je komercialna izdaja COBOL, ki deluje v operacijskem sistemu Microsoft Windows, prevaja aplikacije COBOL v Javo in .NET ter celo uvaja v oblačna okolja, kot je Azure. Našli boste tudi odprtokodne implementacije COBOL-a, kot je GnuCOBOL, ki so prosto dostopne in se prevedejo v izvorno strojno kodo. Vendar jim morda manjkajo nekatere naprednejše funkcije uvajanja ali odpravljanja napak komercialnih COBOL-ov.

Medtem ko COBOL ostaja v široki uporabi, je globoko strokovno znanje COBOL z vsakim letom težje doseči. Kot rezultat tega je treba številne nekdanje programerje COBOL-a prisiliti k upokojitvi, da bi starejše aplikacije preusmerili v 21. stoletje. Pogosto ni dobro znanje programiranja COBOL, temveč intimno razumevanje glavnih okoljij, kjer deluje COBOL. Številne aplikacije COBOL delujejo z roko v roki s podedovano tehnologijo, kot so IBM-ovi sistemi za upravljanje transakcij IMS in CICS ter sistemi baz podatkov, ki pa zahtevajo vse redkejše strokovno znanje.

Tako kot se zdi stara šola, kot se zdi COBOL, se potreba po jezikovnem in razvojnem okolju COBOL z vsakim letom povečuje. Število zaposlitev za COBOL in s tem povezano strokovno znanje je na voljo. Marca 2020 je New Jersey poklical programerje COBOL v sili, da bi pomagali nadgraditi državne sisteme nadomestil za brezposelnost po krizi COVID-19.

Naučite se COBOL

Učni viri za COBOL se glede na naraščajoče povpraševanje po jeziku spet širijo. Sodobni razvijalci, ki se želijo pospešiti s tem najbolj trajnim jezikom, imajo nekaj možnosti:

  • Univerza v Limericku na Irskem ponuja celotni tečaj programiranja COBOL na spletu, s pomočjo svojega oddelka za računalništvo in informacijske sisteme. Ni tako posodobljen kot nekateri drugi viri, vendar glede na to, kako malo COBOL se spreminja s časom, to ni nujno napaka.
  • Projekt Open Mainframe (del fundacije Linux) ponuja tudi vire COBOL. Ena je celoten tečaj programiranja COBOL, ki ga je sponzoriral IBM. Je sodobnejši od tečaja Univerze v Limericku in je prilagojen IBM-ovi izvedbi COBOL zOS, ki je široko razširjena različica jezika.

COBOL je že desetletja osnovno poslovno računalništvo in povpraševanje po programskih talentih COBOL samo še narašča. Če vas vzdrževanje ali posodobitev programov COBOL zanima, se zdi čas zreli kot kadar koli prej.