Den 60-åriga programmeringen COBOL upplever ett återupplivande. Många statliga stordatorer kör COBOL och har kämpat för att hantera en ökning i efterfrågan. I synnerhet administreras delstaten New Jerseys arbetslöshetssystem av en 40 år gammal COBOL stordator.
Med den stigande arbetslösheten kopplat till covid-19 kämpar systemet för att hänga med. Guvernör Murphy har identifierat COBOL-programmerare som en underskattad nödvändighet.
Vad är COBOL?
1959 utformade kommittén för datasystemspråk COBOL. De ville designa ett standardprogrammeringsspråk för att köras på många olika stordatorer.
På den tiden utvecklades många nya programmeringsspråk och det blev för dyrt att översätta programmeringsspråk för att köras på ny hårdvara. COBOL, eller vanligt affärsorienterat språk, var lösningen på detta problem.
Bildkredit: miss karen /CreativeCommons
COBOL baserades på programmeringsspråket FLOW-MATIC, som skapades av Grace Hopper. Det var det första programmeringsspråket som använde engelska termer för databehandling istället för matematisk notation. Grace Hopper förklarade:
“Jag var matematikprofessor. Vid den tiden upptäckte jag att det fanns ett visst antal elever som inte kunde lära sig matematik. Jag fick då uppdraget att göra det enkelt för affärsmän att använda våra datorer.” (Den tidiga utvecklingen av programmeringsspråk s. 29)
På samma sätt använder COBOL engelska termer och designades för att vara lätt att läsa. Vissa har dock kritiserat den för att vara för ordrik. Till exempel, i C kan du skriva följande för att lägga till två siffror:
int result = 1 + number;
Samma kod i COBOL skulle skrivas som:
ADD 1 TO number GIVING result
Precis som C är COBOL ett procedurprogrammeringsspråk. Detta betyder helt enkelt att COBOL-program är utformade för att följa sekventiella steg. COBOL är också ett självdokumenterande språk, vilket ökar dess användbarhet. Den mest välkända egenskapen hos COBOL är dock att den kan hantera enorma mängder databehandling.
COBOL blev allmänt antagen, särskilt av företag, regeringar och finansiella institutioner. Så allmänt antagen att den till och med fortfarande används på många ställen idag.
Varför har det blivit mindre populärt?
Trots COBOLs tidigare popularitet är det få som kan språket. Det finns fler programmeringsspråk idag som fokuserar på engelska kommandon som har mycket fler funktioner än COBOL. Få programmerare skapar nya program i COBOL; dess primära användning är att underhålla äldre program.
En kritik mot COBOL är att programmerare hade en tendens att skriva spagettikod. Spaghettikod är en nedsättande term för kod som är dåligt strukturerad. Den primära boven till dåligt strukturerad kod var GOTO-kommandot.
Som nämnts tidigare är COBOL procedurmässigt, så datorn läser varje kodrad, uppifrån och ned i ordning. GOTO-kommandot tillät programmeraren att säga åt programmet att hoppa till en annan rad. Dålig användning av GOTO-kommandot kan göra COBOL-koden invecklad.
En annan anledning till att COBOL inte är populärt är att det sällan undervisas på universitet. COBOL skapades av näringslivet, inte det akademiska. Den designades för att lösa affärsproblem och är optimerad för frågor som databehandling. Akademiker är ofta intresserade av olika frågor och främjar därför olika programmeringsspråk.
Men ett av de största problemen med COBOL är att trots att det är designat för att vara ett gemensamt språk så är det inte det. När språket utvecklades skapades många olika dialekter — 300 av dem!
Detta gör det utmanande för programmerare att förstå äldre kod.
Varför COBOL är viktigt
Eftersom COBOL används i stor utsträckning av företag och myndigheter finns det fortfarande många COBOL-system som behöver underhållas. Äldre kod är notoriskt svår att underhålla eftersom programmen är stora och komplexa. Det behövs alltså programmerare med en djup förståelse för språket för att underhålla programmen.
Det tar också mycket tid att göra ändringar i koden eftersom det är svårt att avgöra om ändringarna kommer att påverka andra delar av programmet.
Bildkredit: Public.Resource.Org /Flickr
Till exempel, på 90-talet stod vi inför Y2K-felet. Många årsdatum sparades i datorer med de två sista siffrorna i året istället för hela året. Så, 1997 lagrades som 97. Man befarade att när året ändrades till 2000, år 00 inte skulle erkännas som giltigt, orsaka problem med datumsekvenserna och potentiellt krascha många system.
Det tog amerikanska regeringar och företag flera år och 100 miljarder dollar att hantera Y2k-felet. Det är möjligt att ändra äldre system, men det kan ta tid och kan bli kostsamt.
2020 skapade COVID-19 ett nytt programmeringsproblem. Det amerikanska arbetslöshetssystemet körs på COBOL och det är mycket svårt och dyrt att göra ändringar i programmet. Till exempel hade kongressen planerat att svara på ökningen av arbetslösheten genom att beräkna arbetslöshetsutbetalningar baserat på förlorade löner. Det skulle dock ha tagit fem månader att anpassa programmet för att genomföra beräkningen.
COBOL-system kan inte ändras tillräckligt snabbt för att reagera på krissituationer. Problemet förvärras eftersom det inte finns tillräckligt många personer som utbildats i COBOL för att hjälpa till med det ökade underhållet som krävs för att stödja systemen under kriser. De som är utbildade i COBOL är antingen pensionerade eller närmar sig pensionen.
Var man kan lära sig COBOL
För att hjälpa till att möta det växande behovet av COBOL-programmerare har IBM skapat en free COBOL kurs. Kursen består av en serie videor, frågesporter och labbuppgifter, tar 16 timmar att genomföra och du får ett märke i slutet.
Om du redan är en erfaren COBOL-programmerare erbjuder IBM även ett COBOL-nätverksforum. Där kan erfarna programmerare kopplas till organisationer och verksamheter i behov.
COBOL är inte ett trendigt programmeringsspråk, som Python, men det är ett viktigt. En stor del av världen körs fortfarande på COBOL. Om du har funderat på att lära dig ett programmeringsspråk, men behövt en push, överväg att lära dig COBOL.
Om författaren
Jennifer Seaton (21 artiklar publicerade)
J. Seaton är en vetenskapsskribent som specialiserat sig på att bryta ner komplexa ämnen. Hon har en doktorsexamen från University of Saskatchewan; hennes forskning fokuserade på att använda spelbaserat lärande för att öka elevernas engagemang online. När hon inte arbetar hittar du henne när hon läser, spelar tv-spel eller trädgårdsarbete.
Mer från Jennifer Seaton
Prenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, free e-böcker och exklusiva erbjudanden!
Klicka här för att prenumerera
