COBOL – Un successo che dura dal 1959

Riprendo l’argomento trattato da Daniele in un recente post per fare ancora un po’ di chiarezza su alcuni aspetti di questo linguaggio, sconosciuto agli sviluppatori più giovani e spesso ingiustamente bistrattato. Come nell’ingegneria delle costruzioni anche nello sviluppo del software esistono metodologie e strumenti più o meno adatti alla realizzazione del prodotto che si intende costruire. Lo sviluppo della teoria dei linguaggi formali e dei compilatori, spesso anche ragioni puramente commerciali, hanno portato nel corso degli anni alla nascita e morte, vera o presunta, di molti linguaggi di programmazione. Dico presunta perché ogni tanto mi capita di fare scoperte davvero inaspettate. Tempo addietro, per esempio, ho conosciuto il titolare di una azienda che sviluppa e commercializza software per piccole e medie imprese. Chiacchierando con lui ho scoperto che utilizzano Harbour e credo facciano anche buoni profitti. Perché in fondo la vita lavorativa quotidiana non è fatta sempre di programmazione a supporto del controllo del traffico aereo ma più “banalmente” di calcoli di fatture, stipendi, estratti conto, bilanci ecc. ecc. Proprio in questo contesto, ma ad un livello decisamente industriale, ritengo che COBOL sia ancora insuperato (l’acronimo COBOL significa COMMON BUSINESS ORIENTED LANGUAGE); lo dimostrano le milioni di righe di codice ancora in esercizio ed il numero di offerte di lavoro che si trovano anche nei periodi più critici. Non si tratta, come molti sostengono, di eredità del passato di cui non ci si riesce a liberare ma di codice in produzione e manutenuto. I programmi COBOL spesso fanno la loro parte in sordina, per esempio sotto la patina dorata di uno sportello bancomat. Piuttosto che fare paragoni con questo o quel linguaggio preferisco offrire alcuni spunti di riflessione e contribuire a sfatare qualche mito. Può darsi che qualche professore universitario decida di tenere delle lezioni di approfondimento su un argomento con cui molti futuri laureati potrebbero confrontarsi una volta entrati nel mondo del lavoro.

  • COBOL è estremamente manutenibile anche perché è strutturato in sezioni e paragrafi. Ad esempio, la sezione dedicata all’I/O consente di cambiare la codifica da EBCDIC ad ASCII semplicemente modificando uno degli attributi descrittivi e lasciando invariato il resto. Anche se questo può far sorridere, dispone di una sintassi verbosa che ricorda frasi della lingua inglese. Queste caratteristiche rendono un sorgente COBOL mediamente più lungo rispetto a quelli scritti con altri linguaggi ma decisamente più autodocumentante
  • La variabili possono essere facilmente aggregate per comporre strutture gerarchiche anche molto complesse (clausola redefines)
  • Le variabili hanno un tipo selezionabile tra quelli comunemente presenti negli altri linguaggi. Tra i tipi numerici disponibili ne esiste uno avente un numero di cifre intere e decimali definibile dall’utente (es. 999,99)
  • Una delle caratteristiche che rende COBOL particolarmente adatto alle elaborazioni finanziarie è la precisione fixed point
  • E’ prevista una gestione avanzata degli array attraverso sofisticate funzioni di definizione (es. tabelle indexed) e ricerca di elementi
  • Data la particolare vocazione di COBOL per la gestione di grossi volumi di dati sono previste delle apposite sezioni in cui è possibile fare: SORT di file, MERGE di file e stampa di prospetti utilizzando il REPORT WRITER integrato, il tutto all’interno del programma e durante il normale flusso elaborativo. Il REPORT WRITER rende disponibili: numeri di pagina, campi data, campi legati e calcolati, sub totali di gruppo e di report
  • Con un programma scritto in COBOL è possibile accedere ai più diffusi DBMS relazionali come ORACLE e IBM DB2
  • Esistono compilatori COBOL (anche open source) per le più diffuse piattaforme e non solo per ambienti mainframe
Esaminando i prodotti di Micro Focus e di IBM è possibile farsi subito un’idea precisa delle potenzialità attualmente offerte dal mondo COBOL: programazione object oriented, web services, interoperabilità COBOL/JAVA, supporto XML, SOA, .NET e molto altro ancora

Fonte: Micro Focus Studio for COBOL developers


Fonte: IBM COBOL for AIX Version 2 (5724-H44)

Con questo post non voglio apparire nostalgico. Ciò che le aziende cercano sono strumenti al passo con l’evoluzione tecnologica che non rimettano in discussione tutti gli investimenti fatti. Da questo punto di vista direi che COBOL garantisce continuità e tecnologicamente non sembra affatto una vecchia mummia.

10 Responses to “COBOL – Un successo che dura dal 1959”

  1. Daniele Frongia says:

    Caffè pagato per il primo o la prima che risolverà l’enigma steganografico presente nell’articolo di Donato :-)

  2. a p says:

    . forse un acrostico non nella prima colonna ?

  3. Michele says:

    bellissimo e realistico.
    grazie

  4. mandrillo66 says:

    Nella societa’ dove lavoro ci vogliono convertire a java. Dopo 20 anni di cobol andare a fare un corso di java e’ stato come prendere un palo in pieno viso!!! Non ci capisco niente!!!!

    Saluti a tutti.

  5. chardonnay says:

    Il COBOL è una soluzione, certo, ma le caratteristiche che ha, ormai, le ha pure il PHP.
    Il COBOL utilizzato in ambito bancario non è orientato agli oggetti, perciò mantiene, oltre alla riscontrata prolissità, anche la sua natura procedurale e dispersiva.

    Grazie,
    chardonnay

  6. Anonymous says:

    forse occorre leggere a righe alterne l’articolo? nei primi blocchi non ho individuato messaggi segreti, tuttavia

  7. Donato Moscara says:

    Mentre scrivevo questo post ho notato che alcuni simboli contenuti nell’immagine erano simili a lettere dell’alfabeto. Così mi sono divertito a ritoccarla un pò componendo la scritta COBOL
    nell’ultima a colonna a destra.

    L’immagine originale l’ho presa qui: http://www.silab.it/storia/as53/images/pil_03.jpg

  8. Anonymous says:

    I miei ricordi del cobol si fermano agli studi delle scuole superiori e quindi non entro nel merito del fatto se sia o meno un linguaggio ‘morto’, è certo, d’altro canto, che sia ancora molto usato. Un linguaggio, ad ogni modo, lo definisco ‘vivo’ se è supportato e sviluppato di pari passo con l’avanzare delle tecnologie hardware e dei sistemi operativi su cui esso si basa. A questo proposito il citato ‘progetto Harbour’ lo è sicuramente. Nato dalle ceneri del ‘vecchio’ Clipper, Harbour è un compilatore Open Source, 100% compatibile con Clipper, ma capace di integrare moltissime delle ‘recenti tecnologie’ software (GUI, Ole, ObjectOriented, ecc.), compatibile con Windows, Linux ed altri S.O., ed è ovviamente supportato da una vasta comunità di sviluppatori e utilizzatori.

  9. Francesco says:

    HELP! Qualcuno mi puo’ aiutare? Devo fare delle manutenzioni una tantum in un vecchio programma scritto con Micro Focus Cobol Net Express ed avrei bisogno del compilatore (quello senza limite alle righe di programma). C’è o conoscete qualcuno in zona Milano che lo ha e potrebbe farmi utilizzare la sua installazione per la sola compilazione? Grazie moltissime, contattatemi pure via email: fs2@libero.it