Il software è l’insieme di programmi e istruzioni che permette a un dispositivo di svolgere attività. Se l’hardware è la parte fisica del computer, il software descrive le operazioni che quella macchina deve eseguire.

Nella seconda lezione del corso base uso esempi quotidiani: un browser, un programma di scrittura, l’interfaccia di un televisore o le funzioni di un dispositivo elettronico. Non sono oggetti da toccare, ma dipendono da componenti fisici per essere memorizzati ed eseguiti.

Applicazioni, sistema operativo e firmware

Le applicazioni sono i programmi con cui svolgiamo compiti specifici: scrivere un documento, modificare una fotografia, navigare sul Web.

Il sistema operativo gestisce risorse e servizi necessari al funzionamento della macchina e delle applicazioni. Fra queste componenti ci sono anche i driver, che consentono al sistema di interagire con particolari dispositivi.

Il firmware è software strettamente legato al funzionamento di un componente o apparecchio. Può essere presente nel computer, in una periferica o in un dispositivo che non percepiamo come un PC.

Queste categorie aiutano a orientarsi, senza descrivere ogni possibile architettura in tutti i dettagli.

Come nasce un programma

Uno sviluppatore scrive codice sorgente in un linguaggio di programmazione. A seconda della tecnologia, quel codice può essere compilato, interpretato o attraversare più passaggi prima e durante l’esecuzione.

Il punto fondamentale è che la forma leggibile dal programmatore non coincide necessariamente con le istruzioni eseguite direttamente dal processore. Compilatori, interpreti e altri strumenti permettono di collegare questi livelli.

Quando un progetto cresce, più persone possono lavorare su componenti differenti. Versioni e aggiornamenti servono a introdurre funzioni, correggere difetti e adattare il programma nel tempo.

Prestazioni: conta l’esperienza completa

Un processore potente non rende automaticamente rapido qualsiasi software. Contano il lavoro richiesto, l’organizzazione del programma, la memoria disponibile e gli altri componenti coinvolti.

L’esempio del video è semplice: per l’utente è importante quanto impiega ad aprirsi il browser o il documento. Il numero di righe di codice, da solo, non misura né qualità né velocità.

Licenza e prezzo sono aspetti diversi

Un programma può essere proprietario e gratuito, libero e distribuito a pagamento, oppure offerto insieme a un servizio. Le condizioni della licenza stabiliscono che cosa si può fare con il software; il prezzo riguarda come viene fornito o sostenuto.

Per questo distinguo freeware, prove limitate e software libero. Non basta leggere «gratis» per sapere se si può studiare, modificare e ridistribuire il codice.

Il legame da ricordare è quello fra i livelli: l’utente interagisce con un’applicazione, l’applicazione usa servizi del sistema e il lavoro viene svolto dall’hardware. Questa mappa permette di comprendere meglio sia gli strumenti sia i problemi che incontriamo.