Che cos’è COBOL e perché è richiesto?
La programmazione COBOL di 60 anni sta vivendo una rinascita. Molti mainframe del sistema governativo eseguono COBOL e hanno lottato per far fronte a un aumento della domanda. In particolare, i sistemi di disoccupazione dello stato del New Jersey sono gestiti da un mainframe COBOL di 40 anni.
Con l'aumento della disoccupazione legato al COVID-19, il sistema sta lottando per tenere il passo. Il governatore Murphy ha identificato i programmatori COBOL come una necessità sottovalutata.
Cos'è COBOL?
Nel 1959, il Committee on Data Systems Languages ha progettato COBOL. Volevano progettare un linguaggio di programmazione standard per funzionare su molti mainframe diversi.
A quel tempo, venivano sviluppati molti nuovi linguaggi di programmazione e la traduzione di linguaggi di programmazione per l'esecuzione su nuovo hardware stava diventando troppo costosa. COBOL, o linguaggio comune orientato al business, era la soluzione a questo problema.
COBOL era basato sul linguaggio di programmazione FLOW-MATIC, creato da Grace Hopper. È stato il primo linguaggio di programmazione a utilizzare termini inglesi per l'elaborazione dei dati invece della notazione matematica. Grace Hopper ha spiegato:
“Ero un professore di matematica. A quel tempo ho scoperto che c'erano un certo numero di studenti che non potevano imparare la matematica. Poi mi è stato affidato il compito di semplificare l'uso dei nostri computer agli uomini d'affari ". (Il primo sviluppo dei linguaggi di programmazione pag.29)
Allo stesso modo, COBOL utilizza termini inglesi ed è stato progettato per essere di facile lettura. Tuttavia, alcuni l'hanno criticato per essere troppo prolisso. Ad esempio, in C potresti scrivere quanto segue per aggiungere due numeri:
int result = 1 + number;
Lo stesso codice in COBOL verrebbe scritto come:
ADD 1 TO number GIVING result
Proprio come C, COBOL è un linguaggio di programmazione procedurale. Ciò significa semplicemente che i programmi COBOL sono progettati per seguire passaggi sequenziali. COBOL è anche un linguaggio auto-documentante, che si aggiunge alla sua usabilità. Tuttavia, la caratteristica più nota di COBOL è che può gestire enormi quantità di elaborazione dei dati.
COBOL è stato ampiamente adottato, in particolare da aziende, governi e istituzioni finanziarie. Così ampiamente adottato, che è ancora utilizzato in molti luoghi oggi.
Perché è diventato meno popolare?
Nonostante la passata popolarità di COBOL, poche persone conoscono la lingua. Oggi ci sono più linguaggi di programmazione incentrati sui comandi in inglese che hanno molte più funzionalità di COBOL. Pochi programmatori creano nuovi programmi in COBOL; il suo utilizzo principale è mantenere i programmi legacy.
Una critica a COBOL è che i programmatori avevano la tendenza a scrivere codice spaghetti. Il codice spaghetti è un termine dispregiativo per il codice che è mal strutturato. Il colpevole principale del codice mal strutturato era il comando GOTO.
Come accennato in precedenza, COBOL è procedurale, quindi il computer legge ogni riga di codice, dall'alto verso il basso in ordine. Il comando GOTO ha permesso al programmatore di dire al programma di saltare a una riga diversa. Un cattivo utilizzo del comando GOTO può rendere complicato il codice COBOL.
Un altro motivo per cui COBOL non è popolare è che raramente viene insegnato nelle università. COBOL è stato creato dalla comunità imprenditoriale, non da quella accademica. È stato progettato per risolvere problemi aziendali ed è ottimizzato per problemi come l'elaborazione dei dati. Gli accademici sono spesso interessati a domande diverse e, quindi, promuovono linguaggi di programmazione diversi.
Tuttavia, uno dei maggiori problemi con COBOL è che nonostante sia progettato per essere un linguaggio comune, non lo è. Con l'evoluzione della lingua, sono stati creati molti dialetti diversi — 300 di loro!
Ciò rende difficile per i programmatori comprendere il codice legacy.
Perché COBOL è importante
Poiché COBOL è ampiamente utilizzato da aziende e governi, ci sono ancora molti sistemi COBOL che devono essere mantenuti. Il codice legacy è notoriamente difficile da mantenere perché i programmi sono grandi e complessi. Pertanto, per mantenere i programmi sono necessari programmatori con una profonda conoscenza del linguaggio.
Ci vuole anche molto tempo per apportare modifiche al codice perché è difficile determinare se le modifiche influenzeranno altre parti del programma.
Ad esempio, negli anni '90 abbiamo affrontato il bug Y2K. Le date di molti anni venivano salvate nei computer utilizzando le ultime due cifre dell'anno anziché l'intero anno. Quindi, il 1997 è stato memorizzato come 97. Si temeva che quando l'anno fosse cambiato in 2000, l'anno 00 non sarebbe stato riconosciuto come valido, causando problemi con le sequenze di date e potenzialmente mandando in crash molti sistemi.
I governi e le aziende statunitensi hanno impiegato diversi anni e 100 miliardi di dollari per affrontare il bug di Y2k. È possibile modificare i sistemi legacy, ma può richiedere tempo e può essere costoso.
Nel 2020, COVID-19 ha creato un nuovo problema di programmazione. Il sistema di disoccupazione degli Stati Uniti funziona con COBOL ed è molto difficile e costoso apportare modifiche al programma. Ad esempio, il Congresso aveva pianificato di rispondere all'aumento della disoccupazione calcolando i pagamenti di disoccupazione sulla base dei salari persi. Tuttavia, sarebbero stati necessari cinque mesi per adeguare il programma e attuare il calcolo.
I sistemi COBOL non possono essere modificati abbastanza rapidamente per rispondere alle situazioni di crisi. Il problema è aggravato perché non ci sono abbastanza persone addestrate in COBOL per aiutare con la maggiore manutenzione richiesta per supportare i sistemi durante le crisi. Quelli che sono formati in COBOL, sono in pensione o si avvicinano alla pensione.
Dove imparare COBOL
Per aiutare a soddisfare la crescente necessità di programmatori COBOL, IBM ha creato un corso COBOL gratuito . Il corso consiste in una serie di video, quiz e compiti di laboratorio, richiede 16 ore per essere completato e alla fine riceverai un badge.
Se sei già un programmatore COBOL esperto, IBM offre anche un forum sul networking COBOL. Lì, programmatori esperti possono essere collegati a organizzazioni e aziende bisognose.
COBOL non è un linguaggio di programmazione alla moda, come Python, ma è importante. Gran parte del mondo gira ancora su COBOL. Se stavi pensando di imparare un linguaggio di programmazione, ma avevi bisogno di una spinta, considera l'apprendimento di COBOL.