Programování

Co je COBOL? Vysvětlení programování COBOL

Některé technologie nikdy nezemřou - prostě vyblednou ve dřevě.

Zeptejte se průměrného vývojáře softwaru na COBOL (Common Business Oriented Language) a podívají se na vás, jako byste zmínili uhlíkový papír, olovnatý benzín nebo rekord 78 RPM. Ve srovnání s moderními jazyky, jako je Go nebo Python - nebo dokonce Pascal nebo C! - se COBOL zdá být otravný, neohrabaný, pasé.

COBOL však vydržel. Daleko od zastaralé technologie, se kterou jsme se šťastně rozešli, se COBOL stala institucí. Masivní databáze kódů COBOL se stále používají po celém světě, mnoho z nich běží téměř přesně tak, jak byly při prvním vytvoření. V hollywoodském jazyce má jazyk COBOL „nohy“.

Takže ano, COBOL je stále relevantní a aktuální - ve skutečnosti bolestně. V posledních měsících se COBOL znovu dostal do veřejného povědomí, protože státy jako New Jersey vyhlásily výzvu pro programátory, aby pomohli s přesunem jejich aplikací COBOL do 21. století.

V tomto článku se podíváme na původ COBOLu, jak vyniká design programovacího jazyka i dnes a co dělá COBOL tak trvalým a tak neřešitelným.

Historie COBOLU

COBOL vznikl na konci 50. a počátku 60. let. Vývojem jazyka byl projekt sponzorovaný Ministerstvem obrany Spojených států (DoD), který zahrnoval konsorcium počítačových společností včetně IBM, Honeywell, Sperry Rand a Burroughs. Cílem bylo vytvořit programovací jazyk s následujícími atributy:

  • Přenositelnost mezi počítačovými systémy, což usnadňuje migraci softwaru napříč generacemi hardwaru i mezi výrobci hardwaru.
  • Více anglické syntaxe než jiné jazyky té doby (např. FORTRAN) jako způsob, jak podpořit programování širším publikem, i když na úkor určité provozní rychlosti.
  • Schopnost přizpůsobit se budoucím změnám jazyka.

První oficiální specifikace COBOL vyšly v roce 1960. Během příštího desetiletí se COBOL stal ke zděšení svých kritiků výchozí volbou pro psaní obchodních aplikací. Jedním z důvodů jeho rychlého šíření byly síťové efekty: IBM, jeden z původních spolupracovníků v daném jazyce, se stal agresivním brzkým osvojitelem a dominantní přítomnost IBM ve výpočetním světě pomohla přispět k přijetí COBOL.

Díky svým konstrukčním výhodám a podpoře těžkého průmyslu se COBOL přilepil a přežil původní systémy, pro které byl navržen, s velkou rezervou. Podle různých odhadů byl COBOL do roku 1970 nejpoužívanějším programovacím jazykem na světě. Do roku 1997 se věřilo, že COBOL provozuje přibližně 80 procent obchodních aplikací.

Jazyk COBOL

Návrháři COBOLu prolomili stručnou syntaxi jiných programovacích jazyků v té době (opět jako FORTRAN). Cílem bylo vytvořit programovací jazyk, který bude čitelný a pochopitelný neprogramátory, zejména účetními, finančními, pojišťovacími a dalšími obchodními profesionály.

Zvažte program „ahoj svět“ napsaný v rané nářečí COBOL:

IDENTIFIKAČNÍ DIVIZE.

ID PROGRAMU. AHOJ SVĚTE.

ROZDĚLENÍ POSTUPŮ.

DISPLEJ „Hello World!“.

KONEC ZOBRAZENÍ.

STOP RUN.

Pro moderní vývojáře softwaru vycházející z omezenosti jazyků, jako je Python, je tento kód podrobný. Výřečnost COBOLu (ne-li jeho provedení) však pramení ze stejné domýšlivosti, která informuje moderní jazyky, jako je Python - tento kód se čte mnohokrát, než je napsán, takže by měl být napsán, aby byl čitelný.

Podobný program v modernější verzi COBOL může vypadat asi takto:

program-id. Ahoj.

dělení procedur.

zobrazit "Hello world!".

zastavit běh.

I když je tento příklad stručnější, platí stejné základní principy: Kodex se snaží být explicitní ohledně toho, co se děje v každém kroku.

COBOL má přísná pravidla týkající se syntaxe a vnitřní organizace programů. Program COBOL je výslovně rozdělen na části, nebo divize, což usnadňuje vyhledání a pochopení jeho komponent na první pohled:

  • Divize identifikace: V podstatě část metadat, která obsahuje podrobnosti o programu, jeho autorovi atd.
  • Divize životního prostředí: Obsahuje podrobnosti o běhovém prostředí, například aliasy pro externí zařízení, která mohou vyžadovat úpravy při spuštění programu na jiném hardwaru. To napomohlo přenositelnosti programu mezi systémy, kde by se například s I / O mohlo zacházet úplně jinak.
  • Datové dělení: Obsahujícísoubor a pracovní úložiště Oddíly dat popisují soubory a proměnné použité v programu.
  • Postup dělení: Skutečný programový kód zde žije a je rozdělen na volané logické jednotky oddíly, odstavce, věty, a prohlášení. Je lákavé analogizovat tyto struktury s moduly nebo funkcemi, protože slouží zhruba stejným funkcím (rozdělení kódu na bloky s omezenými vstupy a výstupy), ale jsou mnohem méně flexibilní.

COBOL má také extrémně přísná pravidla formátování kódu, až do počtu mezer před příkazem. (Uživatelé Pythonu to znají dobře!) Některá z těchto omezení jsou vedlejším produktem příchodu COBOLu v éře sálových počítačů šedesátých let, kdy byly programy kódovány na děrné štítky a záleželo na přesném formátování řádků o 80 sloupcích . Ale další omezení formátování vynucují čitelnost.

Myšlenkou přísné regimentace programů COBOL je zajistit, aby byly co nejvíce dokumentující. Koneckonců programy COBOL měly tendenci zůstat v platnosti po celá léta nebo desetiletí. Záměrem (ne-li vždy konečným výsledkem) bylo učinit z každého programu COBOL artefakt, kterému každý programátor COBOL mohl porozumět, i po letech, bez pomoci programátora, který jej vytvořil.

COBOL výzvy

Velká část pokračující prevalence COBOL - a setrvačnosti - pochází ze skutečnosti, že aplikace COBOL, jakmile byly napsány, měly tendenci zůstat na místě neomezeně, pouze s malými úpravami. Čím větší a kritičtější aplikace, tím menší je pravděpodobnost, že bude narušena. Mainframes, stejně jako nabídky IBM, hrály klíčovou roli: Byly postaveny tak, aby byly vysoce zpětně kompatibilní a aby mohly fungovat starší software - například aplikace COBOL - napříč generacemi hardwaru s minimálními úpravami. Výsledek: Miliardy řádků kódu COBOL běží v podstatě beze změny po celá desetiletí.

V průběhu let COBOL vyvinul, i když pomalu. I teď má objektově orientovanou variantu OO-COBOL, která zahrnuje podporu moderních funkcí, jako je Unicode, národní prostředí a pokročilejší datové typy nad rámec řetězců a celých čísel. COBOL si ale agresivně zachovává zpětnou kompatibilitu, takže i tato vylepšení a rozšíření dodržují mandát, že stávající aplikace COBOL musí nadále běžet.

Ne všechny možnosti jazykového designu COBOL byly u programátorů COBOL oblíbené. Některé vedly k příliš složitým programům, které se ukázaly jako obtížně pochopitelné nebo laditelné, což odrazovalo od přepsání nebo vylepšení. COBOL JÍT DO příkaz, stejně jako jeho protějšek v C, umožnil programátorům volně skákat po programu a psát tak výkonnější aplikace. Ale nedisciplinované použití JÍT DO mohl proměnit program COBOL v krysí hnízdo těžko dohledatelných křížových odkazů.

COBOL programování dnes

COBOL dnes přežije v několika inkarnacích. IBM aktivně udržuje své vlastní implementace COBOL a udržuje mnoho stávajících aplikací COBOL tam, kde běží. Micro Focus COBOL je komerční edice COBOL, která běží na Microsoft Windows, kompiluje aplikace COBOL do Java a .NET a dokonce se nasazuje do cloudových prostředí, jako je Azure. Najdete také implementace COBOL v otevřeném zdrojovém kódu, například GnuCOBOL, které jsou volně dostupné a kompilují se do nativního strojového kódu. Mohou však postrádat některé z pokročilejších funkcí nasazení nebo ladění komerčních COBOLů.

Zatímco COBOL zůstává v širokém používání, hluboké odborné znalosti COBOLu se každým rokem stávají těžšími. Ve výsledku musí být mnoho bývalých programátorů COBOL vyvedeno z důchodu, aby zamotali starší aplikace do 21. století. Často to není znalost programování COBOL, která je nejvíce prémiová, ale důvěrné porozumění prostředí sálových počítačů, kde COBOL běží. Mnoho aplikací COBOL pracuje ruku v ruce se staršími technologiemi, jako je správa transakcí a databázové systémy IBM IMS a CICS, přičemž všechny vyžadují stále vzácnější odborné znalosti.

COBOL se tedy může zdát tak starou školou, jak každým rokem rostla potřeba znalostí jazyka COBOL a znalostí vývojového prostředí. Výpisů pracovních míst pro COBOL a souvisejících odborných znalostí je mnoho. V březnu 2020 vydal New Jersey tísňové volání pro programátory COBOL, aby pomohli modernizovat systémy dávek v nezaměstnanosti v důsledku krize COVID-19.

Naučte se COBOL

Učební zdroje pro COBOL se vzhledem k rostoucí poptávce po tomto jazyce opět množí. Moderní vývojáři, kteří chtějí zvládnout tento nejtrvalejší jazyk, mají několik možností:

  • University of Limerick v Irsku nabízí online kompletní kurz programování COBOL, s laskavým svolením svého oddělení výpočetní techniky a informačních systémů. Není to tak aktuální jako u některých jiných zdrojů, ale vzhledem k tomu, jak málo se COBOL mění s časem, to nemusí být nutně závada.
  • Projekt Open Mainframe (součást Linux Foundation) nabízí také prostředky COBOL. Jedním z nich je úplný kurz programování COBOL, který je spolufinancován společností IBM. Je modernější než kurz University of Limerick a je šitý na míru implementaci systému IBM COBOL zOS, která je široce používanou verzí jazyka.

COBOL je po celá desetiletí základem podnikové výpočetní techniky a poptávka po programátorských talentech COBOL nadále roste. Pokud vás údržba nebo modernizace programů COBOL zajímá, čas se zdá být zralější než kdykoli předtím.