Cosa è il software

Propongo una riflessione sulla natura del software, entità di cui tutti siamo utenti, consapevoli o meno, e da cui dipende sempre di più la nostra vita e l’esistenza stessa di una società civile come la conosciamo oggi.

Prima di tentarne una definizione, cito alcune testimonianze riportate sul sito softwareheritage.org, una iniziativa internazionale che si propone di salvaguardare il codice sorgente open source, cioè quello i cui sviluppatori hanno deciso di rendere liberamente disponibile.

Premetto che queste testimonianze provengono da “addetti ai lavori”, e quindi sottolineano con particolare enfasi il ruolo del software; tuttavia ritengo che complessivamente rappresentino una situazione odierna oggettiva, e quindi offrano un buon punto di partenza per iniziare l’esporazione del percorso storico che ci ha portato ad oggi:

“Il software è diventato il nucleo essenziale della tecnologia moderna. Il software critico è al centro delle reti di alimentazione, trasporto e telecomunicazioni che devono rimanere in funzione per decenni. La nostra capacità di mantenere ed evolvere queste infrastrutture chiave dipende dalla nostra capacità di preservare, identificare e comprendere il software critico che le alimenta.”

Il software sta ridefinendo l’intera infrastruttura di informazione e comunicazione e incorpora una quantità crescente di conoscenza scientifica e tecnica che è essenziale per l’esistenza stessa delle nostre società moderne. Oggi è una componente fondamentale del mondo dell’innovazione.”

“Il software è alla base della maggior parte della scienza moderna. La riproducibilità dei risultati scientifici e l’intero concetto di ricerca scientifica è profondamente legato alla conservazione e allo studio del software, sotto forma di codice sorgente.”

“Il software è il tessuto che lega le nostre vite personali, sociali, industriali e digitali. È una parte importante del nostro patrimonio culturale, nonché una parte significativa degli sforzi intellettuali dell’umanità dall’invenzione del computer digitale.

“Il software è l’infrastruttura che supporta il mondo in cui viviamo, dalle auto che guidiamo alle case in cui viviamo e al modo in cui comunichiamo e conduciamo gli affari. All’interno di questo grande insieme di codice ci sono elementi da cui possono derivare scoperte scientifiche, progresso industriale e cambiamenti culturali.

“Il software è l’elemento tecnico della cultura più importante della società odierna; inquadra ciò che possiamo e ciò che non possiamo fare. Il software plasma la nostra comunicazione, cultura, economia, istruzione e ricerca, così come la politica.

“Il software è profondamente radicato nella nostra vita ed è lo strumento che utilizziamo per creare, accedere e condividere la nostra cultura. Il software è diventato una componente fondamentale della società e deve essere preservato per le generazioni future in ogni fase della sua evoluzione.

“Il software è di fondamentale importanza per tutta la nostra società: le nostre vite, le nostre attività e il nostro benessere ne dipendono letteralmente.

Il software è diventato la nuova architettura su cui è costruito il nostro mondo e il codice sorgente i suoi progetti.

In alcune di queste citazioni si fa esplicito riferimento al codice sorgente, cioè alla sequenza di istruzioni che specificano le operazioni che devono essere eseguite dai circuiti elettronici (hardware) del computer. E’ proprio dalla natura di questo codice che deriva ogni riflessione ed approfondimento su cosa sia il software, come possa essere definito, come vada inquadrato nell’ambito di tradizionali contesti quali scienza, tecnologia, creatività, arte.

Il codice sorgente è come la scrittura, solo uno strumento per organizzare ed esprimere idee e informazioni utilizzando un supporto che ne permetta la conservazione e la condivisione: i simboli utilizzati, e il significato attribuito a questi, dipendono da regole stabilite in precedenza, magari da secoli..


La differenza è che mentre la scrittura viene letta da altri umani, il codice viene letto da dispositivi elettronici, anche essi entità fisiche molto complesse: questo cambia radicalmente gli effetti generati da ciascuna di queste letture. La lettura umana genera pensieri, opinioni, sentimenti, da cui conseguono azioni talvolta incomprensibili, irrazionali, ma anche creative, inaspettate, geniali.

La lettura da parte della macchina, cioè l’esecuzione del software, o programma, genera solo i risultati richiesti, secondo le dettagliate regole (algoritmi) stabilite del programmatore. Quindi questi risultati dipendono solo da cosa e da come gli umani hanno formulato le richieste, dal software che hanno saputo scrivere. O quasi.

Altri aspetti del software

Oltre alle considerazioni sul codice vero e proprio, vano esaminati altri aspetti altrettanto rilevanti che rientrano a pieno titolo nella definizione di software:

a) Software come sinonimo di programma, applicazione (o app, programmi caricabili sugli smartphone). Già questo solo aspetto “applicativo” dovrebbe includere una analisi per settori verticali, dal gestionale, al calcolo tecnico scientifico, agli strumenti di

b) Aspetti teorici. Il termine inglese “computer science” rende meglio rispetto all’italiano “informatica”: algoritmi, crittografia, matematica computazionale, strutture dati, apprendimento automatico, intelligenza artificiale;

c) Aspetti sistemistici, legati alla architettura dei vari “strati” di software che nel tempo sono evoluti e che oggi concorrono ad erogare i servizi dei moderni sistemi informativi (escludendo in questa sede l’hardware): sistemi operativi, sistemi distribuiti, protocolli di comunicazione, reti locali e geografiche (quindi inclusa Internet), crittografia, big data, concorrenza (multitasking);

d) Aspetti “commerciali” ed economici della produzione e distribuzione del software: tipi di licenze e politiche commerciali di distribuzione, open source, aziende protagoniste del mercato.

Per concludere, il termine software può riferirsi ad argomenti molti diversi fra loro; questo ci porta a tante storie del software, ad una sorta di “catalogo di storie”, con un approccio certamente non minimalista tipo “whole earth catalog”, la famosa pubblicazione di Stewart Brand in USA degli anni 1970. O anche del tipo “Intergalactic Digital Research“, il nome originale dell’azienda di Gary Kildall che ha prodotto il primo sistema operativo.

Più facile a dirsi che a farsi; ma noi ci proviamo.

error: