il confronto

Shell vs Siri: perché un vecchio linguaggio informatico può fare ancora la differenza

Nonostante i progressi nel campo delle interfacce grafiche e dell’interazione vocale con le macchine, ancora oggi, appena si vuole fare qualcosa di un po’ complicato in un computer, bisogna aprire un terminale. Ecco perché, allora, imparare ad usare una shell è un buon investimento (anche per la vita coniugale)

04 Nov 2019
Giovanni Salmeri

Università degli Studi di Roma Tor Vergata

shell linux

I piccoli eventi famigliari possono suggerire profonde riflessioni sul futuro dell’informatica.

L’altro giorno mia moglie mi si è avvicinata e mi ha chiesto: «Senti, ho una cartella suddivisa in un numero enorme di sottocartelle, ognuna delle quali contiene moltissimi file; ora, vorrei spostare tutti questi file nella cartella principale. C’è un modo per farlo senza dover fare con una sottocartella alla volta?».

«Si può descrivere esattamente ciò che vuoi ottenere? Se sì, allora si può fare»

«E come?»

Ci ho pensato qualche secondo e ho risposto: «Il modo più semplice è con una riga di shell». Ovviamente mia moglie non era molto propensa ad ascoltare una spiegazione esauriente su che cosa sia una shell.

La storia della shell

Eppure, si tratta di uno dei costituenti più importanti di un computer, dalla storia affascinante. Coloro che hanno usato un computer negli anni 80 sanno esattamente che cos’è una shell o, come anche si dice, un «interprete di comandi»: quando si accendeva un computer con il sistema operativo DOS, compariva uno schermo nero con un brevissimo messaggio (in genere C:>, ma i più anzianotti ricorderanno A:>) che segnalava che il computer era pronto per eseguire comandi: ecco, una shell (come si usa sempre chiamarlo nei sistemi operativi simili a Unix) è il programma che esegue questi comandi. Per esempio, per far partire il glorioso sistema di videoscrittura WordStar si scriveva il comando WS. Alcuni comandi (quelli cosiddetti «interni») non avevano bisogno di un programma separato, perché venivano eseguiti direttamente dall’interprete: per esempio DIR che mostrava l’elenco dei file contenuti in una cartella.

WHITEPAPER
Come l'AI può rendere più performante ed efficace una strategia di Marketing?
CRM
Intelligenza Artificiale

Fin qui le cose sono abbastanza banali: scrivere un comando equivale a ciò che nelle interfacce grafiche è fare un clic su un icona. Tutto in effetti si sarebbe fermato qui se qualcuno non avesse avuto l’idea di arricchire la shell di quelle caratteristiche che ne fanno un vero e proprio linguaggio di programmazione. Per esempio: «se le cose stanno così e cosà, allora fa’ questo». L’idea geniale venne nel 1976 a John Mashey, che in questo modo trasformò l’originario interprete di comandi di Unix scritto da Ken Thompson, aggiungendo le variabili e i tradizionali controlli di struttura: if, switch, while, goto, exit.

La shell che così risultò fa oggi parte dell’archeologia informatica, ma quella che appena tre anni dopo venne scritta da Stephen Bourne è sostanzialmente ancor oggi usata nella stragrande maggioranza dei computer che usano un derivato di Unix: Linux, BSD, MacOS, Android. Per essere più esatti: nell’era delle onnipresenti interfacce grafiche la shell è soprattutto usata internamente dal sistema operativo per una miriade di compiti di servizio, ma comunque sta sempre lì a disposizione di chi se ne vuole servire. L’interprete di comandi del DOS, pubblicato poco tempo dopo, fu sostanzialmente un’imitazione molto semplificata della shell di Unix. Ancora oggi Windows 10 lo include.

Ma che cosa c’era di tanto rivoluzionario nell’idea di Mashey, apparentemente banale? C’era l’idea che la programmazione non fosse una delle tante operazioni che il computer potesse compiere, ma il modo in cui il computer dovesse apparire all’esterno. Nel mio computer c’è un programma di posta elettronica? Allora devo essere in grado di poter codificare per esempio questa operazione: «se oggi è un giorno feriale aprimi il programma di posta elettronica» (altrimenti, sottinteso, è festa e voglio stare in pace), e ciò deve avvenire non come una funzione del programma di posta elettronica, ma come una funzione generale del computer. (L’esempio ovviamente è mio.) Non per niente Mashey intitolò l’articolo in cui descrisse la sua idea: «Usare un interprete di comandi come linguaggio di programmazione di alto livello», dove «alto livello» significa vedendo le cose dall’alto, nel modo più vicino alle esigenze umane.

Dopo un paio di minuti di scribacchiamento, tornai da mia moglie con la riga di shell che faceva esattamente ciò che le serviva: for d in */; do mv “$d”/* .; done. Tentai di appassionarla raccontandole la storia di quello strano «done» finale, che da solo meriterebbe un articolo, ma il mio tentativo non andò a buon fine. Riuscii però a strappare un grande sguardo di ammirazione quando, dopo aver aperto un terminale tutto nero nel suo computer e aver scritto il comando, si rese conto che i centinaia di file erano stati spostati in una frazione di secondo: quanto tempo risparmiato! Ovviamente, tutto stava in quel piccolo for all’inizio: la parola chiave che indica la ripetizione di un comando (in questo caso mv, «muovi») su una certa categoria di oggetti.

La morale della storia

Una morale di questa storia è abbastanza ovvia. Uno strumento vecchio di quarant’anni aveva fatto, probabilmente nella maniera più efficiente possibile, ciò che è impossibile a qualsiasi modernissimo sistema grafico. Consolazione non piccola per chi comincia ad avere i primi capelli bianchi! Un paradosso? Niente affatto. Quello della shell è un linguaggio: se gli uomini sono definiti, da Aristotele in poi, come esseri essenzialmente parlanti, un motivo pur ci sarà.

Il fatto è che il linguaggio riesce a descrivere stati di fatto, intenzioni, processi, che in nessun modo si potrebbero semplicemente indicare con un dito. Ora, le interfacce grafiche nascono dall’idea che un computer debba essere usato appunto indicando e manipolando immagini di oggetti: un’idea geniale, che semplifica le cose semplici… ma rende impossibili quelle appena più complesse. Basti vedere la storia dei cosiddetti «linguaggi di programmazione visuali»: è una storia anch’essa affascinante, ma questa volta perché è una sequenza impressionante di fallimenti. La parola è parola, al massimo si possono creare simboli visuali che rappresentano parole, ma questo significa solo aggiungere uno strato da decifrare in più. È per questo che ancora oggi, appena si vuole fare qualcosa di un po’ complicato in un computer, bisogna aprire un terminale, che è come dire: non ti posso mostrare ciò che voglio, ma te lo posso descrivere a parole.

Dalla parola all’interfaccia grafica e ritorno: gli assistenti vocali

C’è anche però un’altra considerazione da fare. È vero che i computer oggi sono dominati dalle interfacce grafiche, ma è anche vero che lentamente stiamo assistendo al ritorno della parola: gli assistenti vocali! «Gli assistenti vocali sono delle piattaforme basate su algoritmi di intelligenza artificiale che permettono alle persone di poter interagire con la voce in maniera quasi naturale con degli operatori virtuali»: così dice la prima definizione che ho trovato in Rete.

Insomma, se l’aspetto più appariscente è qui il riconoscimento della parola pronunciata, quello più rilevante è senza dubbio il fatto che i comandi vengono di nuovo dati con la parola, proprio come in una shell. In fondo, il comando scritto per mia moglie è solo la trascrizione in un codice formale di queste parole: «Per ogni sottocartella che c’è qui, sposta qui i file che vi si trovano». Similmente, se voglio telefonare a Matteo Renzi, posso dire al mio iPhone: «Ehi Siri, chiama Matteo Renzi!»: la chiamata parte e Aristotele può festeggiare! Ma che cosa accade se, per esempio, introduciamo una condizione? Proviamo: «Ehi Siri, se uno più uno fa due, chiama Matteo Renzi!» La chiamata parte! «Ehi Siri, se uno più uno fa tre, chiama Matteo Renzi!» Delusione terribile: la chiamata parte anche in questo caso. Insomma, Siri non riconosce affatto la forma più elementare di connessione di proposizioni, quella condizionale. Semplicemente estrae ciò che riconosce come un comando, e lo esegue. Siri è molto indietro rispetto alla shell di John Mashey del 1976, non sa interpretare nessuna delle cinque strutture di controllo con cui questa se la cavava egregiamente. Alla faccia dell’intelligenza artificiale.

Può essere recuperato questo ritardo? Ovviamente tutto è più facile quando si ha a che fare con un linguaggio formale esattamente definito, come appunto quello di una shell. Le cose sono molto più difficili quando si voglia interpretare un linguaggio naturale, pieno di tutte le ambiguità che spesso dobbiamo risolvere chiedendo esplicitamente spiegazioni. Che cosa accadrebbe se mentre detto un messaggio dicessi: «Ehi Siri, cancella tutto!», e Siri interpretasse questo comando nel contesto dell’intero iPhone? E più un linguaggio diventa ricco, più aumentano le possibilità di equivoco. I problemi sono insomma tanti: ma già capire dove stanno è importante.

Nel frattempo, imparare ad usare una shell è un buon investimento, per l’uso del computer e soprattutto per la vita coniugale.

@RIPRODUZIONE RISERVATA

Speciale PNRR

Tutti
Incentivi
PA
Sostemibilità
Analisi
Formazione
Salute digitale
Sicurezza
Sostenibilità
Digital Economy
Formazione
Trasferimento tecnologico, il Mise mette sul piatto 7,5 milioni
Strategie
PSN e Strategia Cloud Italia: a che punto siamo e come supportare la PA in questo percorso
Dispersione idrica
Siccità: AI e analisi dei dati possono ridurre gli sprechi d’acqua. Ecco gli interventi necessari
PNRR
Cloud, firmato il contratto per l’avvio di lavori del Polo strategico
Formazione
Competenze digitali, stanziati 48 milioni per gli Istituti tecnologici superiori
Iniziative
Digitalizzazione delle reti idriche: oltre 600 milioni per 21 progetti
Competenze e competitività
PNRR, così i fondi UE possono rilanciare la ricerca e l’Università
Finanziamenti
PNRR, si sbloccano i fondi per l’agrisolare
Sanità post-pandemica
PNRR, Missione Salute: a che punto siamo e cosa resta da fare
Strategie
Sovranità e autonomia tecnologica nazionale: come avviare un processo virtuoso e sostenibile
La relazione
Pnrr e PA digitale, l’alert della Corte dei conti su execution e capacità di spesa
L'editoriale
Elezioni 2022, la sfida digitale ai margini del dibattito politico
Strategie
Digitale, il monito di I-Com: “Senza riforme Pnrr inefficace”
Transizione digitale
Pnrr: arrivano 321 milioni per cloud dei Comuni, spazio e mobilità innovativa
L'analisi I-COM
Il PNRR alla prova delle elezioni: come usare bene le risorse e centrare gli obiettivi digitali
Cineca
Quantum computing, una svolta per la ricerca: lo scenario europeo e i progetti in corso
L'indice europeo
Desi, l’Italia scala due posizioni grazie a fibra e 5G. Ma è (ancora) allarme competenze
L'approfondimento
PNRR 2, ecco tutte le misure per cittadini e imprese: portale sommerso, codice crisi d’impresa e sismabonus, cosa cambia
Servizi digitali
PNRR e trasformazione digitale: ecco gli investimenti e le riforme previste per la digitalizzazione della PA
Legal health
Lo spazio europeo dei dati sanitari: come circoleranno le informazioni sulla salute nell’Unione Europea
Servizi digitali
PNRR e PA digitale: non dimentichiamo la dematerializzazione
Digital Healthcare transformation
La trasformazione digitale degli ospedali
Governance digitale
PA digitale, è la volta buona? Così misure e risorse del PNRR possono fare la differenza
Servizi digitali
Comuni e digitale, come usare il PNRR senza sbagliare
La survey
Pnrr e digitale accoppiata vincente per il 70% delle pmi italiane
Missione salute
Fascicolo Sanitario Elettronico alla prova del PNRR: limiti, rischi e opportunità
Servizi pubblici
PNRR: come diventeranno i siti dei comuni italiani grazie alle nuove risorse
Skill gap
PNRR, la banda ultra larga crea 20.000 nuovi posti di lavoro
Il Piano
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUMPA2022
PNRR e trasformazione digitale: rivedi i Talk di FORUM PA 2022 in collaborazione con le aziende partner
I contratti
Avio, 340 milioni dal Pnrr per i nuovi propulsori a metano
Next Generation EU
PNRR, a che punto siamo e cosa possono aspettarsi le aziende private
Fondi
Operativo il nuovo portale del MISE con tutti i finanziamenti per le imprese
Servizi comunali
Il PNRR occasione unica per i Comuni digitali: strumenti e risorse per enti e cittadini
Healthcare data platform
PNRR dalla teoria alla pratica: tecnologie e soluzioni per l’innovazione in Sanità
Skill
Competenze digitali, partono le Reti di facilitazione
Gli obiettivi
Scuola 4.0, PNRR ultima chance: ecco come cambierà il sistema formativo
Sistema Paese
PNRR 2, è il turno della space economy
FORUM PA 2022
FORUM PA 2022: la maturità digitale dei comuni italiani rispetto al PNRR
Analisi
PNRR: dalla Ricerca all’impresa, una sfida da cogliere insieme
Innovazione
Pnrr, il Dipartimento per la Trasformazione digitale si riorganizza
FORUM PA 2022
PA verde e sostenibile: il ruolo di PNRR, PNIEC, energy management e green public procurement
Analisi
PNRR, Comuni e digitalizzazione: tutto su fondi e opportunità, in meno di 3 minuti. Guarda il video!
Rapporti
Competenze digitali e servizi automatizzati pilastri del piano Inps
Analisi
Attuazione del PNRR: il dialogo necessario tra istituzioni e società civile. Rivedi lo Scenario di FORUM PA 2022
Progetti
Pnrr, fondi per il Politecnico di Torino. Fra i progetti anche IS4Aerospace
Analisi
PNRR, Colao fa il punto sulla transizione digitale dell’Italia: «In linea con tutte le scadenze»
La Svolta
Ict, Istat “riclassifica” i professionisti. Via anche al catalogo dati sul Pnrr
Analisi
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUM PA 2022
Ecosistema territoriale sostenibile: l’Emilia Romagna tra FESR e PNRR
Il Piano
Innovazione, il Mise “centra” gli obiettivi Pnrr: attivati 17,5 miliardi
Analisi
PNRR: raggiunti gli obiettivi per il primo semestre 2022. Il punto e qualche riflessione
Analisi
PNRR: dal dialogo tra PA e società civile passa il corretto monitoraggio dei risultati, tra collaborazione e identità dei luoghi
Webinar
Comuni e PNRR: un focus sui bandi attivi o in pubblicazione
Analisi
Formazione 4.0: cos’è e come funziona il credito d’imposta
PA e Sicurezza
PA e sicurezza informatica: il ruolo dei territori di fronte alle sfide della digitalizzazione
PA e sicurezza
PNRR e servizi pubblici digitali: sfide e opportunità per Comuni e Città metropolitane
Water management
Water management in Italia: verso una transizione “smart” e “circular” 
LE RISORSE
Transizione digitale, Simest apre i fondi Pnrr alle medie imprese
Prospettive
Turismo, cultura e digital: come spendere bene le risorse del PNRR
Analisi
Smart City: quale contributo alla transizione ecologica
Decarbonizzazione
Idrogeno verde, 450 milioni € di investimenti PNRR, Cingolani firma
Unioncamere
PNRR, imprese in ritardo: ecco come le Camere di commercio possono aiutare
I fondi
Industria 4.0: solo un’impresa su tre pronta a salire sul treno Pnrr
Formazione
Trasferimento tecnologico, il Mise mette sul piatto 7,5 milioni
Strategie
PSN e Strategia Cloud Italia: a che punto siamo e come supportare la PA in questo percorso
Dispersione idrica
Siccità: AI e analisi dei dati possono ridurre gli sprechi d’acqua. Ecco gli interventi necessari
PNRR
Cloud, firmato il contratto per l’avvio di lavori del Polo strategico
Formazione
Competenze digitali, stanziati 48 milioni per gli Istituti tecnologici superiori
Iniziative
Digitalizzazione delle reti idriche: oltre 600 milioni per 21 progetti
Competenze e competitività
PNRR, così i fondi UE possono rilanciare la ricerca e l’Università
Finanziamenti
PNRR, si sbloccano i fondi per l’agrisolare
Sanità post-pandemica
PNRR, Missione Salute: a che punto siamo e cosa resta da fare
Strategie
Sovranità e autonomia tecnologica nazionale: come avviare un processo virtuoso e sostenibile
La relazione
Pnrr e PA digitale, l’alert della Corte dei conti su execution e capacità di spesa
L'editoriale
Elezioni 2022, la sfida digitale ai margini del dibattito politico
Strategie
Digitale, il monito di I-Com: “Senza riforme Pnrr inefficace”
Transizione digitale
Pnrr: arrivano 321 milioni per cloud dei Comuni, spazio e mobilità innovativa
L'analisi I-COM
Il PNRR alla prova delle elezioni: come usare bene le risorse e centrare gli obiettivi digitali
Cineca
Quantum computing, una svolta per la ricerca: lo scenario europeo e i progetti in corso
L'indice europeo
Desi, l’Italia scala due posizioni grazie a fibra e 5G. Ma è (ancora) allarme competenze
L'approfondimento
PNRR 2, ecco tutte le misure per cittadini e imprese: portale sommerso, codice crisi d’impresa e sismabonus, cosa cambia
Servizi digitali
PNRR e trasformazione digitale: ecco gli investimenti e le riforme previste per la digitalizzazione della PA
Legal health
Lo spazio europeo dei dati sanitari: come circoleranno le informazioni sulla salute nell’Unione Europea
Servizi digitali
PNRR e PA digitale: non dimentichiamo la dematerializzazione
Digital Healthcare transformation
La trasformazione digitale degli ospedali
Governance digitale
PA digitale, è la volta buona? Così misure e risorse del PNRR possono fare la differenza
Servizi digitali
Comuni e digitale, come usare il PNRR senza sbagliare
La survey
Pnrr e digitale accoppiata vincente per il 70% delle pmi italiane
Missione salute
Fascicolo Sanitario Elettronico alla prova del PNRR: limiti, rischi e opportunità
Servizi pubblici
PNRR: come diventeranno i siti dei comuni italiani grazie alle nuove risorse
Skill gap
PNRR, la banda ultra larga crea 20.000 nuovi posti di lavoro
Il Piano
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUMPA2022
PNRR e trasformazione digitale: rivedi i Talk di FORUM PA 2022 in collaborazione con le aziende partner
I contratti
Avio, 340 milioni dal Pnrr per i nuovi propulsori a metano
Next Generation EU
PNRR, a che punto siamo e cosa possono aspettarsi le aziende private
Fondi
Operativo il nuovo portale del MISE con tutti i finanziamenti per le imprese
Servizi comunali
Il PNRR occasione unica per i Comuni digitali: strumenti e risorse per enti e cittadini
Healthcare data platform
PNRR dalla teoria alla pratica: tecnologie e soluzioni per l’innovazione in Sanità
Skill
Competenze digitali, partono le Reti di facilitazione
Gli obiettivi
Scuola 4.0, PNRR ultima chance: ecco come cambierà il sistema formativo
Sistema Paese
PNRR 2, è il turno della space economy
FORUM PA 2022
FORUM PA 2022: la maturità digitale dei comuni italiani rispetto al PNRR
Analisi
PNRR: dalla Ricerca all’impresa, una sfida da cogliere insieme
Innovazione
Pnrr, il Dipartimento per la Trasformazione digitale si riorganizza
FORUM PA 2022
PA verde e sostenibile: il ruolo di PNRR, PNIEC, energy management e green public procurement
Analisi
PNRR, Comuni e digitalizzazione: tutto su fondi e opportunità, in meno di 3 minuti. Guarda il video!
Rapporti
Competenze digitali e servizi automatizzati pilastri del piano Inps
Analisi
Attuazione del PNRR: il dialogo necessario tra istituzioni e società civile. Rivedi lo Scenario di FORUM PA 2022
Progetti
Pnrr, fondi per il Politecnico di Torino. Fra i progetti anche IS4Aerospace
Analisi
PNRR, Colao fa il punto sulla transizione digitale dell’Italia: «In linea con tutte le scadenze»
La Svolta
Ict, Istat “riclassifica” i professionisti. Via anche al catalogo dati sul Pnrr
Analisi
Spazio, Colao fa il punto sul Pnrr: i progetti verso la milestone 2023
FORUM PA 2022
Ecosistema territoriale sostenibile: l’Emilia Romagna tra FESR e PNRR
Il Piano
Innovazione, il Mise “centra” gli obiettivi Pnrr: attivati 17,5 miliardi
Analisi
PNRR: raggiunti gli obiettivi per il primo semestre 2022. Il punto e qualche riflessione
Analisi
PNRR: dal dialogo tra PA e società civile passa il corretto monitoraggio dei risultati, tra collaborazione e identità dei luoghi
Webinar
Comuni e PNRR: un focus sui bandi attivi o in pubblicazione
Analisi
Formazione 4.0: cos’è e come funziona il credito d’imposta
PA e Sicurezza
PA e sicurezza informatica: il ruolo dei territori di fronte alle sfide della digitalizzazione
PA e sicurezza
PNRR e servizi pubblici digitali: sfide e opportunità per Comuni e Città metropolitane
Water management
Water management in Italia: verso una transizione “smart” e “circular” 
LE RISORSE
Transizione digitale, Simest apre i fondi Pnrr alle medie imprese
Prospettive
Turismo, cultura e digital: come spendere bene le risorse del PNRR
Analisi
Smart City: quale contributo alla transizione ecologica
Decarbonizzazione
Idrogeno verde, 450 milioni € di investimenti PNRR, Cingolani firma
Unioncamere
PNRR, imprese in ritardo: ecco come le Camere di commercio possono aiutare
I fondi
Industria 4.0: solo un’impresa su tre pronta a salire sul treno Pnrr

Articoli correlati