mboost-dp1

Flickr - landhere

Cobol fylder 50

- Via The Register - , redigeret af Net_Srak , indsendt af Net_Srak

Den 28. maj 1959 så programmeringssproget Cobol for første gang dagens lys. Det skete ved et møde i det amerikanske forsvarsministeriums lokaler i Pentagon.

Til trods for at sproget har 50 år på bagen, er det langt fra uddødt. Således kan Cobol-specialisterne fra Micro Focus oplyse, at der hver dag bliver foretaget 200 gange så mange transaktioner i Cobol, end der bliver søgt på Google.

Cobol findes mange steder i vores hverdag, lige fra telesystemer, der håndterer mobiltelefonopklad, til banksystemer. Det vurderes, at der findes over 200 milliarder linjer aktiv Cobol-kode i verden p.t. Programmeringssproget fik ekstra opmærksomhed ved årtusindeskiftet, hvor flere cobol-programmer ikke var y2k-klare.

Der kan læses mere om Cobols historie på dets hjemmeside.





Gå til bund
Gravatar #1 - Chillyskye
29. maj 2009 14:14
Tillykke Cobol, du holder dig godt :D
Gravatar #2 - Palme20
29. maj 2009 14:36
Hehe.. så er der vel kun 15 år til det skal pensioneres ? :P

tillykke!
Gravatar #3 - Windcape
29. maj 2009 14:38

000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HELLOWORLD.
000300
000400*
000500 ENVIRONMENT DIVISION.
000600 CONFIGURATION SECTION.
000700 SOURCE-COMPUTER. RM-COBOL.
000800 OBJECT-COMPUTER. RM-COBOL.
000900
001000 DATA DIVISION.
001100 FILE SECTION.
001200
100000 PROCEDURE DIVISION.
100100
100200 MAIN-LOGIC SECTION.
100300 BEGIN.
100400 DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
100500 DISPLAY "Tillykke med de 50!" LINE 15 POSITION 10.
100600 STOP RUN.
100700 MAIN-LOGIC-EXIT.
100800 EXIT.
Gravatar #4 - SHAREONLINE
29. maj 2009 14:49
#3
Nice:)
Gravatar #5 - photonatic
29. maj 2009 14:53
#3: Det var ikke så lidt for et helloworld-eksempel? :-S
Gravatar #6 - bjarkekr
29. maj 2009 15:29
Det kan også gøres kortere:

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
MAIN.
DISPLAY 'Hello, world.'.
STOP RUN.


Ifølge wikipedia
Gravatar #7 - webwarp
29. maj 2009 15:53
Og er vel også et jubilærum for hvornår du blev erklæret død... Det er vel efterhånden 30 år siden :)
Gravatar #8 - Ramius
29. maj 2009 16:15
#7 Man kan vel ikke kalde noget dødt der stadig kører i bedste velgående og som næppe bliver slettet lige med det samme. Langt de fleste cobol applikationer ser ikke ud til at skulle udskiftes foreløbigt.

Gravatar #9 - webwarp
29. maj 2009 16:18
#8 nej, er netop det, der gør det sjovt, at det blev erklæret dødt dengang.. men at det stadig formår at holde sig igang :)
Gravatar #10 - Ramius
29. maj 2009 16:29
#9 sry er vidst lidt træt...
Gravatar #11 - Windcape
29. maj 2009 17:21
bjarkekr (6) skrev:
Det kan også gøres kortere:

Altså pratisk talt er det jo bare


DISPLAY 'Tillykke med de 50!'


Som er den relevante del. Resten er bare noget som skal være der når man laver størrere projekter med moduler, namespaces, osv.

Det er ikke særlig forskelligt fra alle andre sprog.
Gravatar #12 - Tyrian
29. maj 2009 21:16
For de interesserede: E-bog om at lære COBOL på 21 dage:)

Bemærk den hyperadvancerede captcha!
Gravatar #13 - IceDane
29. maj 2009 22:57
Det sprog er jeg edderfuckemig glad for jeg ikke skal skrive. Tror fandeme hellere jeg ville skrive assembler.
Gravatar #14 - arne_v
29. maj 2009 23:14
#13

Det er såmænd ikke så svært.

Lidt begrænset i muligheder måske.

Men rimeligt læseligt og udmærket gearet til mange formål.

http://en.wikipedia.org/wiki/MUMPS#Sample_programs

er da langt værre.
Gravatar #15 - IceDane
30. maj 2009 01:06
arne_v (14) skrev:
#13

Det er såmænd ikke så svært.

Lidt begrænset i muligheder måske.

Men rimeligt læseligt og udmærket gearet til mange formål.

http://en.wikipedia.org/wiki/MUMPS#Sample_programs

er da langt værre.


Det er slet ikke fordi det er svært, men sprogets syntaks ser dog så forfærdelig grim ud at jeg hellere ville se alle paradise hotel serier i træk end at skrive et program i det. Jeg har svært ved at forstå hvordan programmører gider lære det, og jeg kan slet ikke fatte at der faktisk er firmaer der vælger at bruge dette sprog. C kan og har altid kunnet(Efter det blev opfundet, det vil sige) kunne lave det samme og mere som COBOL.

Og oven på det er der andre sprog som også kunne vælges, hvis de ikke gad C. C++, for eksempel.
Gravatar #16 - arne_v
30. maj 2009 01:27
IceDane (15) skrev:
Jeg har svært ved at forstå hvordan programmører gider lære det,


Jobs.

IceDane (15) skrev:
og jeg kan slet ikke fatte at der faktisk er firmaer der vælger at bruge dette sprog.


Mange virksomheder startede deres COBOL baserede systemer, da der ikke var ret mange alternativer.

IceDane (15) skrev:
C kan og har altid kunnet(Efter det blev opfundet, det vil sige) kunne lave det samme og mere som COBOL.


C blev først mainstream i 80'erne - 25 år efter COBOL's fødsel.

Derudover har COBOL features som C ikke har.

Eksempler:
- fixed point decimals
- keyed files
Gravatar #17 - Holger_dk
30. maj 2009 08:54
photonatic (5) skrev:
#3: Det var ikke så lidt for et helloworld-eksempel? :-S

hehe ja tænkte jeg også...
----
er også glad for at jeg ikke skal kode noget i cobol... jeg ville blive meget frustreret... :P
Gravatar #18 - Windcape
30. maj 2009 10:07
arne_v (16) skrev:
Derudover har COBOL features som C ikke har.
Samt jeg vil nødig skrive et database batchjob i C.

Det er en af de ting COBOL er rigtig god til. Integration med MainFrame systemer, og DB2 databaser.
Gravatar #19 - Windcape
30. maj 2009 10:09
Holger_dk (17) skrev:
er også glad for at jeg ikke skal kode noget i cobol... jeg ville blive meget frustreret... :P

Tjah? Her er C#


using System;
using System.Text;

namespace Tillykke
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine(
"Tillykke med de 50!"
);
}
}
}


Som i kan se, også en del "overflødige" ting.

I mit COBOL eksempel fra #3 viser jeg også nummeringen til siden. Det er noget dit udviklingsmiljø normalt laver for dig (men det ER en del af hvad du ser på skærmen!)
Gravatar #20 - Windcape
30. maj 2009 10:17
Mere i detaljer kan i nok regne med at følgende af #3 er skrevet på forhånd:


000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HELLOWORLD.
000300
000400*
000500 ENVIRONMENT DIVISION.
000600 CONFIGURATION SECTION.
000700 SOURCE-COMPUTER. RM-COBOL.
000800 OBJECT-COMPUTER. RM-COBOL.
000900
001000 DATA DIVISION.
001100 FILE SECTION.
001200
100000 PROCEDURE DIVISION.
100100
100200 MAIN-LOGIC SECTION.

...

100700 MAIN-LOGIC-EXIT.
100800 EXIT.


Her er så den procedure i skriver selv (COBOL elsker GOTO, i stedet for navngivet metoder)


BEGIN.
DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
DISPLAY "Tillykke med de 50!" LINE 15 POSITION 10.
STOP RUN.


Og så er der jo ikke synderligt meget i forhold til f.eks. C#'s equivilant:


static void Main(string[] args)
{
Console.WriteLine(
"Tillykke med de 50!"
);
}


Gravatar #21 - illishar
30. maj 2009 11:12
So vidt jeg ved, så bruges COBOL i stor stil på mainframe-systemer. Hvilket vil sige, at COBOL er meget udbredt indenfor den financielle (bank og forsikring) sektor. Og der er *rigtig* mange udviklere og ingeniøre indenfor denne.
Tag et godt kig på jeres sidemand. Chancerne er gode for, at han pt. arbejder eller har arbejdet med bank-IT. Find nu en stok eller et andet instrument og begynd at tæsk løs på ham, til han skriger!
Hårdere! Hårdere!
Han er med til at bidrage, til et forstokket og forhistorisk miljø, der koster os alle sammen penge og bremser den generelle udvikling!!!!
Hårdere! HÅRDERE!!!!


... pis, hvor er det nu jeg har lagt min ansøgning til Danske Bank.
Gravatar #22 - kurtadam
30. maj 2009 11:16
#20. Man kan nu sagtens klare sig med GOSUB til navngivne procedurer og helt undgå GOTO.

Man kan i øvrigt sagtens lære COBOL på meget mindre en 21 dage, hvis man kan nøjes med den del man bruger 90% af tiden og slår resten op i manualen efter behov.

Og så skriver man kun et COBOL-program fra starten en gang. Derefter er alt det faste ren copy/paste.

COBOL havde også sin allerstørste force omkring bearbejdning af indeks-sekventielle filer, som ikke mange andre sprog kunne klare. Men efter indførslen af SQL forsvandt den fordel.
Gravatar #23 - Windcape
30. maj 2009 11:29
illishar (21) skrev:
... pis, hvor er det nu jeg har lagt min ansøgning til Danske Bank.
Danske Bank sender deres medarbejdere på kursus i COBOL, fordi ingen af dem de ansætter kan det i forvejen ;D
Gravatar #24 - myplacedk
30. maj 2009 21:03
#23
Det interessante er grunden til at nyansatte sjældent kan COBOL: Alle COBOL-udviklere har allerede et job.

Dvs. selv om COBOL blev erklæret død for 30 år siden, stikker COBOL både Java, C og C# når det kommer til job-sikkerhed.
Gravatar #25 - illishar
31. maj 2009 07:04
#24 Helt enig. Men det svarer stadigvæk til, at hvis 25% af alle danske huse havde stråtag, så at sige at tækkemænd har større job-sikkerhed end "de andre".


(Det er faktisk ligefør at COBOL blev indført på samme tidspunkt i historien, som stråtagene :P
Gravatar #26 - el_barto
31. maj 2009 20:21
Uh...GOTO og linjenumre vækker mider om de glad C64 dage :)

Hvor er kode dog dejlig simpel når man bare kan gå til en bestemt linje og eksekvere den...indtil du sætter linjer ind imellem :(
Gravatar #27 - kurtadam
31. maj 2009 20:50
#26, Ja, goto og linjenumre var brugt i Basic, hvorfor man tyspisk havde spring i numrene (10, 20 30...). Men i COBOL bruger man navngivne paragrafer (labels), så her er der ikke noget problem med at sætte linjer ind i mellem :-)
Gravatar #28 - MEGAMASTER4000
31. maj 2009 21:34
Har det noget at gøre med Cobolt?
Gravatar #29 - arne_v
1. jun. 2009 01:53
Windcape (18) skrev:
Samt jeg vil nødig skrive et database batchjob i C.


Der er såmænd ikke de store problemer med at skrive et C program som tilgår en database.

Adskillige muligheder:
- database specifikt API
- embedded SQL
- ODBC

Windcape (18) skrev:
Det er en af de ting COBOL er rigtig god til. Integration med MainFrame systemer, og DB2 databaser.


Du kan sagtens tilgå DB2 fra Java, .NET, PHP etc..

Men ingen af disse er gode til BCD eller til keyed access til index-sequential filer.

Og med undtagelse af Java er de ikke til rådighed på mainframen. Og Java kan ikke bruge de 200 milliarder linier velgennemtestet Cobol kode.

Så Cobol og PL/I tager et par årtier mere.



Gravatar #30 - arne_v
1. jun. 2009 01:56
Windcape (19) skrev:
I mit COBOL eksempel fra #3 viser jeg også nummeringen til siden. Det er noget dit udviklingsmiljø normalt laver for dig (men det ER en del af hvad du ser på skærmen!)


Det afhænger af platformen.

Du vil typisk ikke have de numre hvis du udvikler til VMS, *nix eller Windows.

De er relevante på platforme hvor man startede i hulkorts tiden (de linie numre er der for at man kan sortere hulkortene hvis de skulle ryge på gulvet og blive rodet rundt).
Gravatar #31 - arne_v
1. jun. 2009 02:02
Windcape (20) skrev:
(COBOL elsker GOTO, i stedet for navngivet metoder)


Der er skam både CALL og PERFORM til at kalde navngivne "programmer" og "paragraffer".

Gravatar #32 - arne_v
1. jun. 2009 02:04
kurtadam (22) skrev:
Man kan nu sagtens klare sig med GOSUB til navngivne procedurer og helt undgå GOTO.


GOSUB i COBOL ??

kurtadam (22) skrev:
COBOL havde også sin allerstørste force omkring bearbejdning af indeks-sekventielle filer, som ikke mange andre sprog kunne klare. Men efter indførslen af SQL forsvandt den fordel.


Der er stadig steder hvor man bruger index-sekventielle filer.
Gravatar #33 - kurtadam
1. jun. 2009 09:17
#32. Jeg mente selvfølgelig perform og ikke gosub.

Der er stadig steder hvor man bruger index-sekventielle filer.


Ja, da. Men da SQL kom frem, fik andre sprog lettere adgang til databaser/filer. Det var typisk nogen kode man selv skulle skrive i f.eks. sprog som Algol og Fortran. Og COBOL og SQL er ikke lettere end andre sprog der benytter SQL-databaser.
Gravatar #34 - michael
1. jun. 2009 09:36
HVis jeg ikke husker helt forkert, så er styresystemet på Apples Ipods vist skrevet i Cobol (en tilpasset version, de kalder snobol)..

mener jeg...
Gravatar #35 - arne_v
1. jun. 2009 13:29
#34

Jeg troede at:
- iPod's bruge MacOS X som styresystem
- iPod apps blve skrevet i Snobol
- Snobol har intet med Cobol at gøre
Gravatar #36 - Windcape
1. jun. 2009 16:10
arne_v (30) skrev:
Du vil typisk ikke have de numre hvis du udvikler til VMS, *nix eller Windows.


Jeg tænkte mere på: http://www.windev.com/windev/AS400/img/19.jpg
Gå til top

Opret dig som bruger i dag

Det er gratis, og du binder dig ikke til noget.

Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.

Opret Bruger Login