Är Java nästa COBOL?

I vår mani för det nya är det bekvämt att glömma hur länge det ”gamla” är hos oss. Ta till exempel COBOL. Det vördnadsvärda programmeringsspråket fyller 60 år den här månaden och, som Steven J. Vaughan-Nichols har skrivit, skulle det mycket väl kunna ”överleva oss alla”.

I själva verket erbjuder COBOL ett utmärkt exempel på den verkliga framstegstakt inom vår bransch, samtidigt som det också ger några ledtrådar till vad morgondagens COBOL kommer att bli. Java och SQL, någon? Eller kanske Python?

COBOL arbetshästen

De flesta som läser det här inlägget föddes inte 1959, året Mary Hawes kom med idén för COBOL (Common Business-Oriented Language), som Grace Hopper (och andra) fortsatte att formalisera och marknadsföra. Hawes mål, som Vaughan-Nichols påminner oss, var att skapa ”ett engelskt ordförråd som skulle kunna användas på olika datorer för att utföra grundläggande affärsuppgifter”, ett sant leverantörsneutralt språk.

Medan COBOLs storhetstid försvann på 1980-talet fortsätter den att driva 70 procent av de globala transaktionsbehandlingssystemen, enligt Micro Focus (företaget som underhåller COBOL), i en intervju med Vaughan-Nichols. Hämtade pengar från en bankomat? Du använde COBOL. Betalt inteckning? COBOL. Kallas ett callcenter? Ja, det var också COBOL. Till och med att boka din semester är nästan säkert beroende av COBOL.

COBOL har påstås ha gått ut i årtionden, men 220 miljarder COBOL-linjer lever vidare i stordatorerna i våra liv. Enligt Lero, ett forskningscenter för programvaruteknik, fördunklade COBOL-transaktioner Googles sökningar med 200 gånger 2014. Kommer Google att komma ikapp någonsin?

COBOL är mer än någon dotard som bor i en stordriven pensionärs lägenhet. Förutom att vara lättläst har språket hållit uppdaterad med sina grannar. Idag integreras COBOL med Docker-behållare och Java när du kör i molnet eller på Linux eller Windows eller nästan var som helst på vad som helst. Det är ett mycket portabelt språk som gör det möjligt för utvecklare att fokusera på att skriva sina applikationer medan COBOL tar hand om det underliggande operativsystemets krångligheter.

Idag är den största risken för COBOL att det blir svårare och svårare att hitta kvalificerade programmerare. Språket kan ha decennier mer att leva med oss, med tanke på kostnaden och risken att ersätta COBOL-baserade system med alternativ, men det betyder inte att utvecklare växer upp och drömmer om att skriva sitt första COBOL-program. Det är ett problem, men inte något jag vill lösa här i det här inlägget. (Förlåt!)

Istället fick jag en översikt över COBOLs 60-åriga historia att tänka på dagens språk som kan bli morgondagens “COBOLs”. Vilka är de språk / tekniker som fortfarande kommer att putteras under huven på ett stort antal morgondagens tekniker?

Morgondagens COBOL idag

Det är naturligtvis svårt att förutsäga framtiden, men det finns starka fall att göra för SQL, Python och Java. Dave Kellogg har i flera år kallat SQL för den nya COBOL. Det kan vara sant när det gäller livslängd och uppfattningen att det är föråldrat, men parallellen slutar slutligen ut. Det finns bara en COBOL. För alla sina förevändningar av standardisering talar SQL en annan dialekt beroende på databasleverantören. Även om det inte har hindrat SQL från att hålla fast (och det kommer säkert att förbli relevant i decennier framöver), känns det inte riktigt som en COBOL-släkt.

Visst inte på samma sätt som Java gör.

Java, som COBOL, är relativt lätt att läsa och skriva. Precis som COBOL har Java bibehållit sin modernitet. Varje gång Java såg ut som om det bleknade har någonting gjort det. Enligt Brian Leroux är Android definitivt delvis ansvarig för [Java: s] fortsatta relevans. ” Lite senare återupplivade big data Java ytterligare. Som Nitin Borwankar har betonat, ”Java fick [en] andra vind på grund av Hadoop och hela datavetenskapens ekosystem inklusive Hive, HBase, Spark, Cassandra, Kafka och JVM-språk som Groovy och Clojure. Allt detta försvinner inte snart. ”

I själva verket, som med COBOL, är en av de främsta anledningarna till att vi sannolikt ser Java etsad i våra gravstenar, eftersom det, som Jonathan Eunice skriver, är "distribuerat djupt och allmänt i kritiska appar, vilket gör det värt systematisk kritik." Ju fler företag bädda in Java i sina mest affärskritiska appar, desto mindre sannolikt är det att de rippas och ersätts för moderna alternativ. Kostnad och risk minskar mot att göra det.

På samma sätt kan Python mycket väl bevisa sin uppehållskraft. Enligt Lauren Cooney kommer Python att uthärda eftersom det är ett ”GSD [få saker gjort] -språket kontra ett coolt språk.” Det är "inte snyggt." Det fungerar bara. Det är viktigt att, precis som Java, blir Python alltmer grundläggande för modern datavetenskap, bland annat, vilket mycket väl kan visa sig vara morgondagens transaktionsbelastningar som underliggande finansiella system (vilket, som nämnts, är en stor anledning till att COBOL förblir cool idag).

Något annat? Det finns det inte så tunga svaret att COBOL kanske är den framtida COBOLEN. Som Andrew Oliver uttrycker det, ”För många år sedan sa jag att Java är framtidens COBOL. Alla tittade konstigt på mig. Jag tror att det är framtiden. ”