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.