Software
Il software, in informatica ed elettronica, indica (per un sistema informatico) l'insieme delle componenti intangibili di elaborazione. Il significato è contrapposto a quello di hardware, che corrisponde alla parte materiale (strato fisico/tangibile) del detto sistema.
Il software, in informatica ed elettronica, indica (per un sistema informatico) l'insieme delle componenti intangibili di elaborazione. Il significato è contrapposto a quello di hardware, che corrisponde alla parte materiale (strato fisico/tangibile) del detto sistema.
La creazione del concetto
Il termine sarebbe stato creato durante la seconda guerra mondiale. I tecnici della Royal Army britannica erano impegnati nella decrittazione dei codici tedeschi di Enigma, di cui già conoscevano la meccanica interna (detta hardware, componente dura, nel senso di ferraglia) grazie ai servizi segreti polacchi. La prima versione di Enigma sfruttava tre rotori per mescolare le lettere. Dopo il 1941, ad Enigma venne aggiunto un rotore, e il team di criptoanalisti inglesi, capitanati da Alan Turing, si dovette interessare non più alla sua struttura fisica, ma alle posizioni in cui venivano utilizzati i rotori della nuova Enigma. Dato che queste istruzioni erano scritte su pagine solubili nell'acqua (per poter essere più facilmente distrutte, evitando in tal modo che cadessero nelle mani del nemico) furono chiamate software (componente tenera), in contrapposizione all'hardware.
Il senso moderno del termine deriva dalle istruzioni date ai computer, ed è stato utilizzato per la prima volta nel 1957 da John Wilder Tukey, noto statistico statunitense. Dal 1950 l'analogia tra l'hardware ed il corpo umano e quella tra il software e la mente umana si è fatta molto forte, dal momento che Turing ha sostenuto che il progresso tecnologico sarebbe riuscito a creare, entro il 2000, delle macchine intelligenti (in grado cioè di «pensare» autonomamente) atte alla risoluzione dei problemi.
L'evoluzione e l'applicazione delle leggi di Moore
A partire dal secondo dopoguerra, con lo sviluppo dell'hardware sono aumentate le possibilità per gli sviluppatori; ai sensi della seconda legge di Moore, una minaccia alla velocità di elaborazione, oltre ai costi, proviene dal software. Infatti ciò che conta per un utente non è tanto la velocità di elaborazione del processore, quanto la velocità effettiva di elaborazione del codice, calcolata in base al tempo che occorre alla CPU per eseguire un'operazione (come la scrittura di un testo, la creazione di una cartella).
Gli studi di Myhrvold
Nathan Myhrvold, direttore dell'Advanced Technology Group della Microsoft, ha effettuato uno studio sui prodotti Microsoft calcolando le linee di codifica per le successive release dello stesso software:
Basic: da 4 000 linee di codice nel 1975 a 500 000 nel 1995
Word: da 27 000 linee di codice nel 1982 a 2 000 000 nel 2002
La continua aggiunta di nuove funzionalità al software esistente giustifica la costante richiesta di processori più veloci, memorie sempre più grandi e più ampie capacità di I/O (Input/Output).
Infatti, anche le altre tecnologie si sono evolute di pari passo:
i dischi rigidi da 10 MB (1982) a 1 TB (2007);
i modem analogici da 110 bit/s a 56 kbit/s.
Myhrvold traccia un parallelismo con la legge di Moore: «abbiamo aumentato la dimensione e la complessità del software ancora più rapidamente di quanto non prevedeva la legge di Moore», «gli utenti del software hanno sempre consumato le maggiori capacità di elaborazione ad una velocità uguale o superiore a quella con cui i produttori di circuito integrato le mettevano a disposizione» (Stewart Brand, 1995).
Caratteri generali
In particolare in informatica si intendono tali il semplice dato o informazione oppure più propriamente le istruzioni di un programma codificate in linguaggio macchina o in linguaggio di programmazione (codice sorgente), memorizzate su uno o più supporti fisici, sotto forma di codice eseguibile. Riguardo all'invenzione del termine, lo statunitense Paul Ni Quette sostiene di averlo coniato nel 1953, tuttavia è invece ritenuta certa la prima apparizione in una pubblicazione scientifica del 1958 dell'American Mathematical Monthly da parte dello statistico John Wilder Tukey.
Genericamente si intende l’insieme dei programmi impiegati in un sistema di elaborazione dati che gestisce il funzionamento di un elaboratore; si distingue fra:
software di sistema: quello relativo al sistema operativo dell’elaboratore elettronico;
software di base: insieme dei programmi e delle procedure di utilità generale impiegabili da altri programmi;
software applicativo: relativo ai programmi applicativi progettati per particolari funzioni che possono essere ad esempio la scrittura, l'elaborazione di immagini, la gestione dei dati e altro.
Il termine si contrappone tradizionalmente ad hardware (la componente fisica di un sistema di calcolo), che rende possibile l'esecuzione del software (la componente logica dello stesso). Nel tempo sono entrati nell'uso altri termini che descrivono elementi di un computer, come il firmware. Il suffisso -ware (il cui significato è «componente») viene usato anche in altri termini che indicano particolari tipi di programmi: in funzione del ruolo che hanno in un sistema di calcolo (per esempio middleware), del tipo di licenza con cui sono distribuiti (freeware, shareware), dell'edizione e altro ancora. Software di tipo speciale si trovano sui più disparati dispositivi (p.es. un televisore, un'automobile, un cronotermostato, una lavatrice ma anche applicazioni produttive).
MCMX