Il software è l'insieme di programmi e istruzioni che permette a un dispositivo di fare qualcosa. Se l'hardware è la parte fisica, il software descrive le operazioni che quella macchina deve eseguire.

Gli esempi sono ovunque: un browser, un programma di scrittura, l'interfaccia di un televisore, le funzioni di un piccolo apparecchio elettronico. Non sono oggetti che puoi toccare, ma senza componenti fisici che li conservino e li eseguano non esistono.

Applicazioni, sistema operativo e firmware

Le applicazioni sono i programmi con cui svolgi un compito preciso: scrivere un documento, ritoccare una foto, navigare.

Il sistema operativo gestisce risorse e servizi necessari alla macchina e alle applicazioni. Ne fanno parte anche i driver, che permettono al sistema di parlare con dispositivi specifici.

Il firmware è software legato strettamente al funzionamento di un componente o di un apparecchio. Sta nel computer, in una periferica, o dentro un oggetto che non chiameresti mai «un PC».

Sono categorie utili per orientarsi, non una descrizione esaustiva di ogni architettura esistente.

Come nasce un programma

Uno sviluppatore scrive codice sorgente in un linguaggio di programmazione. A seconda della tecnologia, quel codice viene compilato, interpretato o attraversa più passaggi prima e durante l'esecuzione.

Il punto da tenere è che la forma leggibile da una persona non coincide con le istruzioni che il processore esegue. Compilatori, interpreti e altri strumenti servono proprio a collegare questi due livelli.

Quando un progetto cresce, più persone lavorano su componenti diversi. Versioni e aggiornamenti servono ad aggiungere funzioni, correggere difetti e adattare il programma a un mondo che cambia sotto di lui.

Prestazioni: conta l'esperienza completa

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

Per chi usa il computer la domanda è una sola: quanto ci mette ad aprirsi il browser, o il documento? Il numero di righe di codice non misura né qualità né velocità, e citarlo è quasi sempre un modo per non rispondere.

Licenza e prezzo sono aspetti diversi

Un programma può essere proprietario e gratuito, libero e venduto, oppure offerto insieme a un servizio. La licenza stabilisce che cosa puoi fare con quel software; il prezzo riguarda come ti viene fornito o sostenuto.

Per questo distinguo freeware, prove limitate e software libero. La parola «gratis» non ti dice se puoi studiare, modificare e ridistribuire il codice — che è tutt'altra domanda.

La cosa da portare via è il legame fra i livelli: tu parli con un'applicazione, l'applicazione usa i servizi del sistema, e il lavoro lo fa l'hardware. Con questa mappa in testa si capiscono meglio sia gli strumenti sia i guai in cui ogni tanto si finisce.