Il mondo moderno è costruito su codici antichi. Questo é un problema

antichi linguaggi di codifica
Genevieve Poblano/Tendenze digitali

"Come diavolo siamo arrivati ​​al punto che abbiamo letteralmente bisogno di programmatori COBOL?" ha chiesto il governatore del New Jersey Phil Murphy in una recente conferenza stampa.

Contenuti

  • Fortran
  • Ada
  • Pascal
  • BASE/Visual Basic
  • COBOL

Di fronte a un numero senza precedenti di disoccupazione domande, lo Stato ha dovuto espandere immediatamente la sua piattaforma di richieste di disoccupazione vecchia di 40 anni: una revisione ciò diede immediatamente il via a una frenetica ricerca di programmatori che avessero familiarità con il linguaggio di codifica vecchio di decenni COBOL.

Video consigliati

Tuttavia, non è solo il New Jersey ad avere questo problema. Molti dei sistemi bancari, di difesa e di intelligenza artificiale del mondo si affidano a linguaggi di programmazione che erano in voga quando Apple era a corto di garage.

L’industria tecnologica ha un’affinità con le cose nuove e all’avanguardia, ma se non fosse per antichi linguaggi di codifica come COBOL, Ada, Pascal e Fortran, l’industria del credito, le organizzazioni di ricerca scientifica e numerosi sistemi di difesa arriverebbero ad un stridente fermati. In altre parole, senza tutto questo vecchio codice, saremmo fregati.

I linguaggi di programmazione vecchi di cinquant'anni calcolano ancora milioni di transazioni e statistiche e fungono da spina dorsale per i sistemi su cui fa affidamento il mondo moderno. Ad esempio, secondo uno studio del 2017, oltre il 95% degli sportelli bancomat e il 40% delle banche utilizzano il codice COBOL Lo riferisce la Reuters.

Molti di questi antichi tabulatori svolgono ancora molto bene funzioni specifiche. Ci sono anche molti dirigenti aziendali che non vogliono separare il software collaudato nel tempo che è vitale per l'attività della loro azienda, quindi invece di revisionare e modernizzare, si limitano a patchare il vecchio codice e sperano nel migliore.

Lottare con la tecnologia antica non è un fenomeno nuovo. Per esempio, California ha speso centinaia di milioni di dollari cercando di aggiornare la propria tecnologia DMV e buste paga. Eppure l’attuale pandemia e la conseguente ondata di disoccupazione hanno messo in luce quanto l’infrastruttura software americana si stia sgretolando, così come quella fisica.

Ecco cinque lingue “vintage” da cui il nostro mondo dipende più di quanto pensi, e perché ciò potrebbe renderti un po’ nervoso.

Fortran

copertina manuale Fortran

Se non fosse per Fortran, molti dei supercomputer e dei modelli che utilizziamo per cose come le previsioni del tempo, l’astrofisica e l’analisi statistica di alto livello semplicemente non funzionerebbero.

Costruito da IBM negli anni '50, Fortran (abbreviazione di Formula Translation) è stato uno dei primi linguaggi di alto livello ad essere utilizzato utilizzava parole invece di numeri e consentiva ai programmatori di scrivere programmi il 500% più velocemente rispetto a quando si utilizzava la macchina codice. Non così tanti sviluppatori imparano la lingua oggi.

"Uso Fortran tutto il tempo, semplicemente non ci penso mai", afferma James Howard, uno scienziato dei dati presso il Johns Hopkins Applied Physics Laboratory. Anche se Howard non programma in quel linguaggio da anni, le sue applicazioni accedono regolarmente alle librerie principali di Fortran. Costruiti all'inizio degli anni '70, sono ben mantenuti e "incredibilmente veloci".

L'ultima volta che Howard ha dovuto scrivere un programma Fortran è stato circa 10 anni fa. Lavorava alla Federal Reserve e aveva bisogno di spostare i dati tra due app; uno scritto in C e l'altro in Fortran. I programmi hanno smesso di comunicare perché il fornitore ha smesso di fornire la libreria Fortran.

Il programmatore quarantenne si è ricordato di qualcosa che aveva letto da bambino, ovvero che la struttura di chiamata dei dati per il linguaggio di programmazione C è opposta a quella di Fortran. Ha scritto un semplice script per ribaltare l’ordine e, voilà, la Federal Reserve è tornata in attività.

Fortran Punchard

Ada

I programmatori governativi fanno affidamento sulla relativamente oscura base di codice Ada quando sviluppano sistemi che richiedono affidabilità, come i sistemi di difesa e sicurezza. Cosa è programmato esattamente in esso? Beh, questo è un po’ un segreto governativo, ma negli ultimi anni sia la NASA che la Boeing hanno utilizzato codice basato su Ada per programmare satelliti e aeroplani.

Il Dipartimento della Difesa (DOD) ha supervisionato lo sviluppo di Ada negli anni '70 per ridurre il numero di linguaggi di programmazione utilizzati dai militari, che all'epoca erano oltre 400. Ada è stato costruito per essere indiscutibilmente affidabile in situazioni di vita o di morte e rafforzato contro gli errori del programmatore. Sebbene il linguaggio sia stato introdotto nel 1980, il Congresso non ne ha imposto l’uso in tutti i sistemi governativi fino al 1995. Due anni dopo, il DOD ha abbandonato il mandato, ritenendo che sarebbe stato più economico e flessibile utilizzare sistemi aggiornati e ampiamente disponibili. Ma è ancora in uso oggi.

Pascal

manifesto pasquale
All’inizio degli anni ’80, il poster di Apple Pascal poteva essere trovato in tutti gli uffici dell’azienda, dando ai programmatori informazioni su come utilizzare il codice.

Molti programmatori considerano Pascal un linguaggio di programmazione quasi morto, ma sopravvive in diversi modi. "Che tu ci creda o no, è ancora una lingua molto popolare in molte parti del mondo, ma negli Stati Uniti potresti come parleremo latino", afferma Dave Hatter, che ha trascorso tre anni presso una grande compagnia assicurativa aiutando ad aggiornare a milioni di righe di codice che stimavano il costo delle polizze e quanto pagavano.

Molti di questi vecchi programmi sono stati scritti molto prima delle preoccupazioni odierne sulle violazioni della sicurezza e contengono informazioni proprietarie sensibili. Hatter, che ora lavora come tecnico della sicurezza informatica, ritiene che i programmi possano essere relativamente sicuri solo a causa della “sicurezza attraverso l’oscurità”: i giovani programmatori non sanno cosa fare con un codice vecchio di decenni. "Un hacker di 15 anni non avrà idea di come lavorare con una sorta di mainframe IBM 390 con COBOL", afferma. “Ora non sto dicendo che non potrebbero imparare. Ma non lo sapranno”.

Pascal è stato la base per uno dei primi sistemi operativi Apple e il discendente del linguaggio, Delphi, ha ancora forti sostenitori. In effetti, Skype, una delle prime applicazioni di videochiamata a guadagnare popolarità e utilizzo diffusi, è stato originariamente scritto in Delphi.

BASE/Visual Basic

Il BASIC non è esattamente in cima alla lista quando si tratta di lingue utilizzate nel 2020, ma molte delle applicazioni moderne su cui facciamo affidamento semplicemente non esisterebbero senza di esso. Ad esempio, se hai mai programmato una macro di Excel, hai utilizzato una forma di BASIC.

Abbreviazione di Beginner's All-Purpose Symbolic Instruction Code, BASIC è stato lanciato nel 1963 al Dartmouth College come un modo per insegnare un pubblico generale le teorie e le capacità della programmazione: un tuffo nell'acqua prima di addentrarsi in linguaggi più robusti come Fortran. La popolarità del BASIC aumentò insieme al personal computer: i computer Apple, IBM e Atari avevano tutti le loro versioni.

Verso la metà degli anni '80, i nerd autodidatti del computer erano meno entusiasti del BASIC e più interessati ai programmi di terze parti. Poi Microsoft lanciò Visual Basic nel 1991, che non era esattamente un aggiornamento del BASIC, ma utilizzava alcuni degli stessi comandi e struttura e aveva un’interfaccia grafica migliore. Quindi il linguaggio è stato utilizzato da numerose aziende per scrivere programmi grandi e piccoli. Anche se Microsoft ha affermato di aver interrotto il supporto per Visual Basic 6 (la versione più recente) nel 2008, il linguaggio ha ancora moltissimi utenti. Controlla il Indice Tiobe (che classifica i linguaggi di programmazione più popolari): VB è ancora nella top 10!

COBOL

manifesto di Cobol
Un poster del 1969 che promuove una lezione COBOL del MIT.

"Direi che oltre il 90% delle persone che vediamo considerano COBOL una parte fondamentale di ciò che hanno scritto", stima Brandon Edenfield, che aggiorna ed esegue la transizione delle app legacy per Sistemi moderni e ha contribuito a rivedere il codice per le borse di New York e Singapore. "Qualsiasi grande azienda a cui puoi pensare probabilmente ha una quantità malsana di questa roba."

COBOL, acronimo di Common Business-Oriented Language, è stato lanciato nel 1959 per attività di elaborazione dati come il monitoraggio del budget, le transazioni bancarie e la contabilità dei salari. Il Dipartimento della Difesa (DOD) ha originariamente progettato il linguaggio come un progetto tampone. Successivamente il DOD ha richiesto ai produttori di computer di includere COBOL sulle macchine vendute e il linguaggio si è diffuso rapidamente nei decenni successivi. Secondo uno studio del 2017, oltre il 95% degli sportelli bancomat e il 40% delle banche utilizzano ancora il codice COBOL Lo riferisce la Reuters.

Gran parte di questa programmazione è stata distribuita tramite computer mainframe e i sistemi moderni sono stati spostati nel cloud. Come ha illustrato la difficile situazione del New Jersey, gli sviluppatori che sapevano come mantenere il codice COBOL stanno invecchiando fuori dalla forza lavoro o sono già in pensione.

Le aziende che modernizzano questi programmi in genere lo fanno in modi diversi.

“Un grande integratore di sistemi lancerà un mucchio di corpi al codice; si siederanno, lo guarderanno e lo riscriveranno”, dice Edenfield. Questo approccio è spesso il più rischioso, dispendioso in termini di tempo e costoso. In media, grandi lavori di ripiattaforma codificati manualmente possono richiedere dai 3 ai 10 anni e possono costare centinaia di milioni di dollari.

Edenfield consiglia soluzioni automatizzate e afferma che il primo passo logico potrebbe essere semplicemente lo spostamento del codice una versione obsoleta di COBOL a quella attuale, che consentirebbe a molti sistemi di passare al moderno server. Paragona l’aggiornamento di una macchina alla traduzione dal francese all’inglese: “La base di ciò che viene detto è tradotta perfettamente. Devi solo correggere la sintassi di come è formulato. Questo approccio può anche ridurre i tempi e i costi di un aggiornamento, dice, tra i sei e i 24 mesi.

Sarà economico? Bene, sarà più economico. I progetti di sistemi moderni in genere hanno un prezzo compreso tra $ 200.000 e $ 10 milioni. Gran parte del progetto, spiega Edenfield, non consiste nel tradurre il codice, ma nel testarlo per assicurarsi che faccia tutto bene.

Il motivo per cui questi aggiornamenti non avvengono?

"Nessuno ne aveva sentito parlare prima perché non è un argomento sexy e le persone di solito non cercano di parlare dei panni sporchi che hanno", spiega. Anche i dirigenti IT hanno l'abitudine di tirare a calci il barattolo lungo la strada.

“Scommetto che lo stato del New Jersey presterà attenzione a questo problema adesso, ma scommetto anche che metà dei loro colleghi penseranno che non succederà a loro, ‘Non a me’”.