De moderne wereld is gebouwd op eeuwenoude code. Dat is een probleem

oude codeertalen
Genevieve Poblano/Digitale trends

“Hoe zijn we in hemelsnaam zover gekomen dat we letterlijk COBOL-programmeurs nodig hebben?” vroeg gouverneur van New Jersey, Phil Murphy, tijdens een recente persconferentie.

Inhoud

  • Fortran
  • Ad
  • Pascal
  • BASIS / Visuele basis
  • COBOL

Geconfronteerd met een ongekend aantal werkloosheid aanvragen moest de staat zijn 40 jaar oude platform voor werkloosheidsaanvragen onmiddellijk uitbreiden – een revisie dat was meteen het startschot voor een verwoede zoektocht naar programmeurs die bekend waren met de decennia-oude codeertaal COBOL.

Aanbevolen video's

Het is echter niet alleen New Jersey dat dit probleem heeft. Veel van de bank-, defensie- en kunstmatige-intelligentiesystemen in de wereld zuipen voort op programmeertalen die in zwang waren toen Apple uit de garage kwam.

De technologie-industrie heeft affiniteit met dingen die nieuw en baanbrekend zijn, maar als er geen eeuwenoude codeertalen als COBOL waren geweest, Ada, Pascal en Fortran, de kredietindustrie, wetenschappelijke onderzoeksorganisaties en talloze verdedigingssystemen zouden tot een gierend oordeel komen. stoppen. Met andere woorden: zonder al deze oude code zouden we genaaid zijn.

Vijftig jaar oude programmeertalen berekenen nog steeds miljoenen transacties en statistieken en dienen als ruggengraat voor systemen waar de moderne wereld op vertrouwt. Volgens een onderzoek uit 2017 gebruikt bijvoorbeeld meer dan 95 procent van de geldautomaten en 40 procent van de banken de COBOL-code. Dat meldt Reuters.

Verschillende van deze oude tabulators vervullen specifieke functies nog steeds zeer goed. Er zijn ook veel bedrijfsleiders die de beproefde software die essentieel is voor hun bedrijfsvoering niet uit elkaar willen halen. de activiteiten van hun bedrijf, dus in plaats van te vernieuwen en te moderniseren, patchen ze eenvoudigweg de oude code en hopen daar op best.

Worstelen met eeuwenoude technologie is geen nieuw fenomeen. Bijvoorbeeld, Californië heeft honderden miljoenen dollars verspild aan het updaten van zijn DMV- en salaristechnologie. Toch hebben de huidige pandemie en de daaruit voortvloeiende golf van werkloosheid duidelijk gemaakt hoeveel van de Amerikaanse software-infrastructuur net als de fysieke infrastructuur aan het afbrokkelen is.

Hier zijn vijf ‘vintage’ talen waar onze wereld meer van afhankelijk is dan je denkt, en waarom je daar misschien een beetje zenuwachtig van wordt.

Fortran

Fortran handmatige dekking

Zonder Fortran zouden veel van de supercomputers en modellen die we gebruiken voor zaken als weersvoorspelling, astrofysica en statistische analyses op hoog niveau eenvoudigweg niet werken.

Fortran (afkorting van Formula Translation), gebouwd door IBM in de jaren vijftig, was een van de eerste talen op hoog niveau die gebruikte woorden in plaats van cijfers en maakte het voor programmeurs mogelijk om programma's 500% sneller te schrijven dan wanneer ze een machine gebruikten code. Tegenwoordig leren lang niet zoveel ontwikkelaars de taal.

“Ik gebruik Fortran de hele tijd – ik denk er alleen nooit over na”, zegt James Howard, datawetenschapper bij het Johns Hopkins Applied Physics Laboratory. Hoewel Howard al jaren niet meer in de taal heeft geprogrammeerd, hebben zijn applicaties regelmatig toegang tot de kernbibliotheken van Fortran. Ze zijn gebouwd begin jaren zeventig, goed onderhouden en ‘verblindend snel’.

De laatste keer dat Howard een Fortran-programma moest schrijven was ongeveer tien jaar geleden. Hij werkte bij de Federal Reserve en moest gegevens tussen twee apps verplaatsen; één die in C is geschreven en de andere in Fortran. De programma's communiceerden niet meer omdat de leverancier stopte met het leveren van de Fortran-bibliotheek.

De veertigjarige programmeur herinnerde zich iets dat hij als kind had gelezen, namelijk dat de dataoproepstructuur voor de programmeertaal C het tegenovergestelde is van die van Fortran. Hij schreef een eenvoudig script om de order om te draaien en voila, de Federal Reserve was weer actief.

fortran punchard

Ad

Overheidsprogrammeurs vertrouwen op de relatief obscure Ada-codebase bij het ontwikkelen van systemen die betrouwbaarheid vereisen, zoals defensie- en veiligheidssystemen. Wat zit er precies in geprogrammeerd? Nou, dat is een beetje een overheidsgeheim, maar NASA en Boeing hebben de afgelopen jaren allebei op Ada gebaseerde code gebruikt om satellieten en vliegtuigen te programmeren.

Het Ministerie van Defensie (DOD) hield toezicht op de ontwikkeling van Ada in de jaren zeventig om het aantal programmeertalen dat door het leger werd gebruikt, terug te dringen, dat destijds meer dan 400 bedroeg. Ada is gebouwd om onbetwistbaar betrouwbaar te zijn in situaties van leven of dood en beschermd tegen programmeerfouten. Hoewel de taal in 1980 werd geïntroduceerd, heeft het Congres het gebruik ervan in alle overheidssystemen pas in 1995 verplicht gesteld. Twee jaar later verliet het Ministerie van Defensie het mandaat, in de veronderstelling dat het goedkoper en flexibeler zou zijn om algemeen beschikbare, up-to-date systemen te gebruiken. Maar het is nog steeds in gebruik.

Pascal

Pascal-poster
Begin jaren ’80 was de Apple Pascal-poster overal in het kantoor van het bedrijf te vinden, waardoor programmeurs inzicht kregen in hoe ze de code moesten gebruiken.

Veel programmeurs beschouwen Pascal als een bijna dode programmeertaal, maar hij leeft op verschillende manieren voort. “Geloof het of niet, het is nog steeds een zeer populaire taal in veel delen van de wereld, maar in de VS zou je net zo goed we kunnen Latijn spreken”, zegt Dave Hatter, die drie jaar bij een grote verzekeringsmaatschappij heeft gewerkt om te helpen bij het updaten van een miljoen regels code die schatten wat polissen kosten en hoeveel ze betaalden.

Veel van deze oudere programma's zijn geschreven lang vóór de huidige zorgen over beveiligingsinbreuken en bevatten gevoelige bedrijfsinformatie. Hatter, die nu als cybersecurity-techneut werkt, denkt dat de programma’s relatief veilig kunnen zijn, alleen maar vanwege ‘security by obscurity’ – jonge codeerders weten niet wat ze moeten doen met tientallen jaren oude code. “Een vijftienjarige hacker zal geen idee hebben hoe hij met een soort IBM 390-mainframe met COBOL moet werken”, zegt hij. ‘Nu zeg ik niet dat ze niet konden leren. Maar ze zullen het niet weten.”

Pascal vormde de basis voor een vroeg Apple-besturingssysteem, en de afstammeling van de taal, Delphi, heeft nog steeds sterke voorstanders. Skype – een van de eerste toepassingen voor videogesprekken die wijdverbreid populair werd en werd gebruikt – werd oorspronkelijk in Delphi geschreven.

BASIS / Visuele basis

BASIC staat niet bepaald bovenaan de lijst als het gaat om talen die mensen in 2020 gebruiken, maar veel van de moderne applicaties waar we op vertrouwen zouden zonder BASIC simpelweg niet bestaan. Als u bijvoorbeeld ooit een Excel-macro heeft geprogrammeerd, heeft u een vorm van BASIC gebruikt.

BASIC, een afkorting van Beginner’s All-Purpose Symbolic Instruction Code, werd in 1963 gelanceerd op het Dartmouth College als een manier om een het algemene publiek de theorieën en mogelijkheden van programmeren – een duik in het water voordat je je gaat verdiepen in robuustere talen zoals Fortran. De populariteit van BASIC steeg samen met de personal computer: Apple-, IBM- en Atari-computers hadden allemaal hun versies.

Halverwege de jaren tachtig waren autodidactische computernerds minder enthousiast over BASIC en meer geïnteresseerd in programma's van derden. Toen lanceerde Microsoft in 1991 Visual Basic, wat niet bepaald een update van BASIC was, maar dezelfde commando's en structuur gebruikte en een betere grafische interface had. Vervolgens werd de taal door talloze bedrijven gebruikt om grote en kleine programma's te schrijven. Hoewel Microsoft heeft gezegd dat het in 2008 de ondersteuning voor Visual Basic 6 (de meest recente versie) heeft stopgezet, heeft de taal nog steeds veel gebruikers. Controleer de Tiobe-index (waarin de populairste programmeertalen in kaart worden gebracht): VB staat nog steeds in de top 10!

COBOL

cobol-poster
Een poster uit 1969 waarin reclame werd gemaakt voor een MIT COBOL-klasse.

“Ik zou zeggen dat meer dan 90% van de mensen die we zien COBOL als kernonderdeel hebben van wat ze hebben geschreven”, schat Brandon Edenfield, die verouderde apps bijwerkt en overzet voor Moderne systemen en heeft geholpen bij het herzien van de code voor de beurzen van New York en Singapore. “Elk groot bedrijf dat je maar kunt bedenken, heeft waarschijnlijk een ongezonde hoeveelheid van dit spul.”

COBOL, een acroniem voor Common Business-Oriented Language, werd in 1959 gelanceerd en was gericht op gegevensverwerkingstaken zoals het bijhouden van budgetten, banktransacties en loonadministratie. Het Ministerie van Defensie (DOD) ontwierp de taal oorspronkelijk als een noodproject. Vervolgens eiste de DOD dat computerfabrikanten COBOL zouden opnemen op de machines die ze verkochten, en de taal verspreidde zich snel in de daaropvolgende decennia. Volgens een onderzoek uit 2017 gebruikt ruim 95% van de geldautomaten en 40% van de banken nog steeds de COBOL-code. Dat meldt Reuters.

Een groot deel van deze programmering werd geïmplementeerd via mainframecomputers en moderne systemen zijn naar de cloud verhuisd. Zoals de hachelijke situatie in New Jersey illustreert, zijn de ontwikkelaars die wisten hoe ze de COBOL-code moesten onderhouden, aan het verouderen of zijn ze al met pensioen.

Bedrijven die deze programma's moderniseren, doen dit doorgaans op verschillende manieren.

“Een grote systeemintegrator zal een aantal lichamen naar de code gooien; ze gaan zitten, kijken ernaar en herschrijven het”, zegt Edenfield. Deze aanpak is vaak het meest riskant, tijdrovend en duur. Gemiddeld kunnen met de hand gecodeerde, grote replatforming-klussen drie tot tien jaar duren en honderden miljoenen dollars kosten.

Edenfield beveelt geautomatiseerde oplossingen aan en zegt dat de eerste logische stap wellicht het simpelweg verplaatsen van de code is van een verouderde versie van COBOL naar een huidige versie, waardoor veel systemen naar modern zouden kunnen overstappen servers. Hij vergelijkt een machine-update met het vertalen van Frans naar Engels: “De basis van wat er wordt gezegd, wordt perfect vertaald. Je hoeft alleen maar de syntaxis van de formulering ervan te corrigeren.” Die aanpak kan volgens hem ook de tijd en kosten van een update verlagen, ergens tussen de zes en 24 maanden.

Zal het goedkoop zijn? Nou ja, het zal goedkoper zijn. Moderne systemenprojecten variëren doorgaans in prijs van $ 200.000 tot $ 10 miljoen. Een groot deel van het project, legt Edenfield uit, bestaat niet uit het vertalen van de code, maar uit het testen om er zeker van te zijn dat alles goed werkt.

De reden dat deze updates niet plaatsvinden?

“Niemand heeft hier eerder van gehoord, omdat het geen sexy onderwerp is en mensen meestal niet proberen te praten over de vuile was die ze hebben”, legt hij uit. IT-managers hebben ook de gewoonte om tegen de vlakte te gaan.

“Ik durf te wedden dat de staat New Jersey nu aandacht aan deze kwestie zal besteden, maar ik durf ook te wedden dat de helft van hun collega’s zal denken dat het hen niet zal overkomen, ‘ik niet.’”