Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!
Cobol
COBOL - tokia programavimo kalba, kuri yra viena iš seniausių kalbų, kokios tik yra šias dienas pasiekusios - sukurta dar 1959 metais, taip kad nesmarkiai teatsilieka nuo Fortran. Pavadinimas gi yra santrumpa nuo "COmmon Business Oriented Language", tipo suprask kad esą verslui skirta. Kadangi tai tokia santrumpa, tai rašoma paprastai visomis didžiosiomis raidėmis.
Šiais laikais COBOL dažniausiai laikoma seniai mirusia, tačiau išties tai nei velnio ji nemirusi, nes kaip gyvavo, taip ir gyvuoja, o laikas nuo laiko net ir naujos versijos pasirodo, kaip kad netgi objektinius fyčerius turintis COBOL-2002. Tačiau nors ir nemirusi, COBOL jau maždaug 40 metų visokiems programuotojams varo gilų siaubą, nes tie vis palygina COBOL su kitomis kalbomis ir pakraupsta.
COBOL pasižymi labai neblogu perkeliamumu - daugybė programų, rašytų prieš kokius 50-60 metų, puikiai dirba ir ant naujų sistemų. Kadaise Sun Microsystems, o paskui ir IBM bandė kurti visokias Java sistemas, kad galėtų atsikratyti COBOL ir pereit ant Javos mašinų, bet baigėsi tuo, kad ant Java mašinų atsirado COBOL ir todėl COBOL perkeliamumas bei ilgaamžiškumas tiktai dar labiau padidėjo. Tai dabar visokie Java programoms skirti mainfreimai dabar dažnai naudojami būtent COBOL programoms.
Visokios pabiros apie COBOL
Savo daugeliu bruožų COBOL miglotai primena Lolcode, tiktai yra daug prasčiau struktūruota, iš principo nepritaikyta kompiliavimui, turi įsiūtą kodo modifikavimą ir nepaprastai aktyviai toleruoja Goto. Būtent dėl to Cobol kalboje nesveikai naudoto Goto kažkada koksai tai programuotojas parašė paskui visų programavimo kalbų manifestą, pavadintą "Goto to be considered harmful".
Štai 1997 metais tokia Gartner Group pasauliui skelbė, kad 80% pasaulio finansų sukosi ant COBOL kalba parašytų programų, o aktyviai naudojama buvo maždaug 200 milijardų eilučių kodo (!!!), o negana to, kasmet buvo parašoma dar apie 5 milijardus eilučių. Nuo to laiko COBOL naudojimo dalis gal kažkiek ir sumažėjo, bet visvien tai liko viską lemiančia ir visų nekenčiama programavimo kalba, realiai pakliūnančia į populiariausių (tai nereiškia, kad žinomiausių ar mėgstamiausių) kalbų dešimtuką.
Istoriškai COBOL irgi yra reikšminga kalba, nes būtent joje pirmiausiai atsirado į Algol, o paskui ir į kitas kalbas perėję paprasti loginiai sakiniai, kaip kad visokie ten su IF. Dabar daugeliui keistas dalykas, ale priskyrimo operacijos Cobol kalboje yra ne iš dešinės į kairę (lenkiška notacija), o atvirkščiai - iš kairės į dešinę, kaip įprastoje žmonių kalboje. Pavyzdžiui, tipiškas "Y=Y+X", parašius jį COBOL, būtų toks:
- ADD X TO Y
Daugelis mitų apie COBOL, kaip kad pasakojimai apie tai, esą tenai nėra lokalių kintamųjų ar kad tekstą reikia formatuoti, tarpų visokių prirašant - visa tai yra mitologija, atėjusi dar iš laikų, gerokai ankstesnių, negu 1968 metų COBOL standartas. Trumpai tariant, nepasiduokit durninimui.
Cobol kalbos privalumai
Kad ir kaip būtų keikiama, COBOL turi neabejotinų privalumų: jos pramokti nieko nesuprantančiam žmogui yra gerokai lengviau, ji turi labai geras teksto apdirbimo priemones, kai kuriomis duomenų valdymo savybėmis gali lygintis su SQL (pastarasis atsirado geru dešimtmečiu vėliau už COBOL), o dėl perteklinio verbališkumo yra bene vienintelė kalba, kuria programuojant, praktiškai nereikia komentavimo. Dėl to, kad griežtas COBOL standartas buvo išleistas dar 1968 metais, o ir dėl to, kad ji palaiko griežtą duomenų tipizaciją ir neleidžia išsidirbinėti su rodyklėmis, savo portabilumu ši kalba nenusileidžia Java kalbai (ir beje, nėra kompiuterio, kur ji negalėtų dirbti), tačiau yra daug greitesnė.
Dėl savo seno amžiaus COBOL yra tokia stabili kalba, kad nėra anei jokios tikimybės, kad kokia nors nauja realizacija ims nevirškinti senų programų, o didelėms verslo įmonėms tai yra labai svarbu. Todėl programos, parašytos COBOL prieš 40 metų, vis dar be problemų dirba ir naujuose kompiuteriuose - neretai netgi be minimalių modifikacijų.
Bendrai imant, COBOL daug labiau negu kitos programavimo kalbos primena žmonių kalbą. COBOL naudojamas labai didelis perteklius žodžių, kur lyg ir pakaktų pavienio žodžio, atsiranda daug blevyzgų, tad rašyti teksto tenka daug. Kita vertus, taip rašant, programa būna labai nesunkiai suprantama net ir tiems žmonėms, kurie niekada niekad nieko neprogramavo, o tai kartais yra didelis privalumas. Dar didesnis privalumas yra tame, kad taip žmogiškai atrodančios programos gaunasi save dokumentuojančios.
Gal dėl tokių savybių COBOL ir buvo mėgstama tų, kas programuoti nelabai mėgdavo, tai ir dabar dažniausias variantas, kada COBOL programuoja visai ne kokie programuotojai, o kokie nors vadibybininkai. Užtat paskui visi dar labiau keikia COBOL.
Hello World su COBOL
COBOL tikrai nėra tokia kraupi, kaip kad galima atrasti internetų pavyzdžiuose, kuriuose paimamas koks nors 1960 metų COBOL kodo gabalas, prikaišiotas visokių baisybių, o pasku sakoma, kad esą tasai puslapį teksto užimantis kodo gabalas - tai čia paprasčiausia "Hello World". Viskas žymiai paprasčiau:
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY 'Hello, world'. STOP RUN.
O ir tiesą sakant, įprastame šiuolaikiniame COBOL, tai išvis tebūtų viena eilutė:
DISPLAY "Hello, World".
COBOL implementacijos
Yra gyvas galas COBOL implementacijų, kurios iki šiol daugiau ar mažiau naudojamos. Kai kurios iš jų buvo kurtos senoviniams kompiuteriams, o paskui perkeltos į naujesnius, kurie dar į naujesnius. Pvz., DEC PDP-11 sistemoms kurtas COBOL paskui buvo keliamas į VAX, kur emuliuojamas, o paskui - į dar kažkur, tai būna, kad kokia nors programa dirba ant emuliatoriaus, kuris dirba ant emuliatoriaus, kuris dirba ant emuliatoriaus, kuris galimai dar ant kokio tai emuliatoriaus. Vienok COBOL sistemų ir jų emuliavimo našumas pakankamai didelis, kad ir šitai nebūtų didelė problema. Juoba kad dažniausiai visgi nuo emuliatoriaus gaunasi perkelti ant įprastos sistemos, tiesiog adminams emuliuoti viską būna paprasčiau.
COBOL interpretatorius darė praktiškai kiekviena firma, kuri tiktai gamino mainfreimus, plius dar krūva kitų visokių didelių kompanijų ir mažų firmelių. Štai iki šiol dar tebepasitaikančių COBOL implementacijų kratinėlis:
- COBOL/2,
- DEC COBOL-10,
- DEC PDP-11 COBOL,
- DEC PDP-11 COBOL-85,
- DEC VAX COBOL,
- DOSVS COBOL,
- Envyr ICOBOL,
- Fujitsu COBOL,
- Hitachi COBOL2002,
- HP3000 COBOL/II,
- IBM COBOL SAA,
- IBM COBOL/400,
- IBM COBOL/II,
- IBM Enterprise COBOL,
- IBM ILE COBOL,
- IBM OS/VS COBOL,
- ICL COBOL (VME),
- Micro Focus ACUCOBOL-GT,
- Micro Focus COBOL-IT,
- Micro Focus RM/COBOL,
- Micro Focus Visual COBOL,
- Microsoft COBOL,
- Raincode COBOL,
- Realia COBOL,
- Ryan McFarland RM/COBOL,
- Ryan McFarland RM/COBOL-85,
- Tandem (NonStop) COBOL,
- Tandem (NonStop) SCOBOL,
- UNIVAC COBOL,
- Unisys MCP COBOL74,
- Unisys MCP COBOL85,
- X/Open COBOL,
- Veryant isCOBOL,
- Wang VS COBOL,
- WATBOL
Plius dar papildomi kalbos išplėtimai, kaip kad Object COBOL, plius dar specifinės duomenų bazės, kaip kad IBM DB/2 ar HP IMAGE bei HP TurboIMAGE.