di Antonio Dini
Il suo sviluppo è stato finanziato dal Dipartimento della difesa americana ed è stato fatto partendo dal precedente linguaggio Flow-Matic progettato da Grace Hopper, una delle più importanti figure nella storia dell’informatica mondiale oltre che una delle primissime donne. Il Cobol serviva, e serve tutt’ora, alla gestione dei dati in ambienti di business: l’ultimo aggiornamento risale al 2014 e il suo “potere espressivo” era stato pensato per chi veniva dal mondo dell’industria e non dell’accademia. Un linguaggio pragmatico, utilizzato per scrivere 5 miliardi di nuove righe di codice all’anno usate da banche, assicurazioni, istituti nazionali di statistica, medie e grandi imprese, multinazionali. Si calcola che il 95% delle operazioni di un bancomat venga eseguita tramite software scritto in Cobol e che in totale ci siano 200 miliardi di righe di codice che gestiscono ogni giorno 30 miliardi di transazioni.
Turing e la potenza espressiva
Ma cos’è la potenza espressiva di un linguaggio di programmazione? Come abbiamo detto prima, i linguaggi di solito sono Turing-completi, cioè hanno tutto quello che serve per implementare qualsiasi algoritmo (la definizione è di Alan Turing, uno dei numi tutelari dell’informatica), ma lo fanno ciascuno in maniera diversa. L’espressività e la potenza sono legate al tipo di costrutti del linguaggio, al suo livello di astrazione, alla bontà del compilatore e delle librerie (per questo spesso progetti più vecchi sono più maturi ed efficaci). E poi, non sottovalutiamolo, ma ci sono le mode.
“Ci si dimentica spesso – mi dice Pradella – che i linguaggi di programmazione hanno una parte sociale importante. Creano anche degli appassionati che si innamorano di una determinata scelta e poi cercano di trovare a posteriori motivi tecnici per cui quel particolare linguaggio “è meglio” di un altro”.
Insomma, anche gli informatici e gli studiosi delle università si lasciano prendere dai differenti approccio, dalla moda, dal marketing. “È stato il caso di quando Sun Microsystems, oggi assorbita dalla Oracle di Larry Ellison, ha creato Java – dice Pradella – investendo moltissimo nel marketing per “vendere” il suo linguaggio“. Risultato? Tifosi e partigiani di un linguaggio rispetto all’altro. Come per esempio il linguaggio C, creato nel 1972-1973 da Dennis Ritchie, uno dei padri di Unix, per programmare le utility necessarie al funzionamento del sistema operativo che è l’antenato di Linux, è alla base di macOS e fa girare buona parte di internet. Chiedere se è meglio il C o C++ è come parlare di guelfi e ghibellini nella Firenze di Dante Alighieri.
“Invece, secondo me – dice Pradella – un informatico dovrebbe essere uno che non è legato a dei linguaggi in particolare, ma dovrebbe essere abbastanza flessibile da cambiarli senza problemi. Anziché focalizzare sullo studio di uno molto popolare, come Java, al mio corso copro linguaggi accademici o relativamente poco usati, però ottimi rappresentanti del proprio paradigma di programmazione. Il mio obiettivo, più che far imparare questo o quel linguaggio, è far capire i concetti che ciascuno porta avanti”.
Mainframe dell’Ibm (foto: Ibm)
Foto IbmLe generazioni come piani di un palazzo
Se i linguaggi sono dei vocabolari e degli insiemi di regole per istruire il computer su come effettuare una specifica attività, li possiamo ordinare a seconda della loro astrazione dal computer: cioè in generazioni. Cinque per la precisione. Che non sono generazioni temporali (dai bisnonni ai pronipoti) ma sono come i piani di un palazzo.
La prima generazione è il livello più vicino alle fondamenta, cioè al modo di ragionare del processore fisico, che parla solo con gli uni e gli zeri. È il codice macchina, che viene eseguito senza bisogno di essere tradotto ma che è particolarmente ostico per un programmatore e vincolato a una determinata architettura di processore. La quinta è la più astratta, composta da linguaggi logici, cioè di tipo dichiarativo che applicano alla programmazione anche tecniche di intelligenza artificiale come i sistemi esperti, le regole di inferenza, il riconoscimento del linguaggio naturale. Tuttavia, non bisogna dimenticare anche un altro aspetto: i linguaggi di programmazione in realtà servono alle persone, non ai computer.
La saggezza di Vim (ovvero programmare è un’attività sociale)
Il codice dei programmi è scritto su documenti di testo semplice, senza formattazione (a parte indentature e rientri) usando degli editor di testo. Uno tra gli editor storici è Vi, che dal 1991 è implementato con il progetto open source Vim (Vi Improved) tuttora gestito da Bram Moolenaar, una specie di Linus Torvalds per chi scrive codice.
Source link
www.wired.it
2022-01-10 06:00:00