# Software bloat

Il software bloat, o bloatware (in italiano: "rigonfiamento del software"), è la tendenza dei nuovi software a diventare sempre più onerosi in termini di risorse hardware, senza che ci sia un miglioramento significativo della qualità del software per l'utente finale. In particolare si manifesta nei sistemi operativi al momento dell'installazione con configurazioni di dimensioni molto grandi o comprendenti app senza che venga preventivamente richiesto all'utente se intenda o meno installarli.
Sono infatti talvolta automaticamente installate applicazioni che non sono usate dalla maggior parte dell'utenza, o che comunque utilizzano più risorse del necessario offrendo in cambio poco o nessun beneficio agli utenti. La definizione software bloat si utilizza anche con riferimento ai programmi preinstallati nei computer e negli smartphone che vengono acquistati; non di rado i programmi si trovano in versione trial, di prova, sono cioè utilizzabili gratuitamente per un certo periodo, al termine del quale per continuare ad usarli si dovranno acquistare le relative licenze.

## Cause

Gli sviluppatori di software degli anni settanta pativano molte limitazioni per quanto riguardava le memorie di massa e la quantità di memoria di lavoro (RAM). Ogni byte e ciclo della CPU (ciclo di clock del processore) era prezioso e il software veniva progettato in base alle risorse hardware in possesso.
La situazione si è in seguito capovolta: l'hardware costa sempre meno e la riduzione del costo di sviluppo è vista dal marketing come prioritaria rispetto all'ottimizzazione. In parte, questo avviene grazie all'avanzamento tecnologico che ha portato un aumento della capacità di calcolo ed in conseguenza ad una diminuzione del tempo di sviluppo (vedi legge di Moore). La diffusione dei computer a tutti i livelli, nel mondo degli affari e nella vita quotidiana, ha portato ad uno sviluppo dell'industria del software che ha raggiunto una dimensione varie volte più grande di quella degli anni settanta. Infine, lo sviluppo dei tool di programmazione spesso fa conseguire risultati ottimi come l'integrazione in un programma di tutte le caratteristiche primarie.
Niklaus Wirth nel suo paper A Plea for lean software (lett. Appello per un software snello) individua principalmente due cause del fenomeno: il progresso in ambito hardware, e l'ignoranza da parte degli utenti finali su quali funzioni essenziali dovrebbe avere un software e quali sarebbero da considerare come facoltative o desiderabili. In virtù del suo paper, è stato coniato il termine "Legge di Wirth", come contronominale della legge di Moore: "il software diventa più esoso in termini di risorse più velocemente di quanto l'hardware diventi veloce, inficiando i benefici di quest'ultimo". Nel suo paper inoltre individua un'altra legge: "la dipendenza da parte del cliente è più profittevole rispetto alla sua educazione". Jamie Zawinski ha fatto considerazioni simili parlando di Netscape.
Un'altra causa del software bloat può ascriversi agli standard e ai prodotti, che possono creare domanda di integrazione. Attualmente molti sistemi operativi, browser, protocolli e file system, causano software bloat nei programmi che hanno bisogno di interoperabilità. Per esempio, a un programma che dapprima poteva solo salvare in formato TXT adesso è richiesto il salvataggio in HTML, XML, XLS, CSV, PDF, DOC, eccetera.
Nel mercato degli smartphone, alcune aziende sono state accusate di inserire bloatware preinstallati di vario genere nei propri prodotti, e sono frequenti le guide, soprattutto in rete, su come disinstallarli.

## Esempi

Secondo Rob Pike, 4.2 BSD era estremamente più pesante rispetto a UNIX v5, ma non necessariamente migliore, lamentando il fatto che i vari comandi (ad esempio cat, grep, ls) stessero violando lo spirito della "filosofia UNIX", assumendo anche funzionalità ridondanti.
In virtù di ciò, verso la fine degli anni 80, Rob Pike e altri colleghi dei laboratori Bell crearono il sistema operativo Plan 9, come reazione al bloatware percepito in varie versioni commerciali di UNIX e per creare un sistema operativo che fosse più moderno, ma che mantenesse le funzionalità tipiche dei sistemi UNIX.
Nel libro "The UNIX haters handbook", Don Hopkins criticò aspramente l'X window system per via dell'architettura software poco curata e poco flessibile dal punto di vista della programmazione, lamentando il consumo di memoria ingiustificato.
La qualità del codice sorgente del GNU project è spesso oggetto di critiche, in quanto il loro codice sorgente tende ad essere più lungo e poco ottimizzato, anche in virtù di ragioni storiche (il timore che AT&T potesse citarli per violazione del copyright).
Requisiti di hardware minimi delle varie versioni x86/32 bit di Microsoft Windows. :
| Versione | Processore | RAM | Hard disk |
| Windows 95 | 25 MHz | 4 MB | ~50 MB |
| Windows 98 | 66 MHz | 16 MB | ~200 MB |
| Windows 2000 | 133 MHz | 32 MB | 650 MB |
| Windows XP (2001) | 233 MHz | 64 MB | 1.5 GB |
| Windows Vista (2007) | 800 MHz | 512 MB | 15 GB |
| Windows 7 (2009) | 1 GHz | 1 GB | 16 GB |
| Windows 8 (2012) | 1 GHz | 1 GB | 16 GB |
| Windows 10 (2021) | 1 GHz | 1 GB | 16 GB |
| Windows 11 (2021) | 1 GHz | 4 GB | 64 GB |
Doug McIlroy disse di Linux: "so solo che ogni volta che guardo sotto al cofano di Linux mi piange il cuore. ... Oltre 240 chiamate di sistema! Gigabyte di codice sorgente! Un compilatore C con oltre 250 pagine di manuale (senza contare la definizione del linguaggio in sé! Un semplice impaginatore (less) con oltre 40 argomenti e 60 comandi!".

### Bloatware OEM

Il bloatware OEM è l'insieme delle applicazioni di tipo utilità che i produttori di dispositivi installano su sistemi Windows e Android. In molti casi si tratta di doppioni di applicazioni che il sistema operativo dispone già, in rari casi invece sono realmente utili.
A differenza degli smartphone o tablet Android personalizzato dagli OEM (che è contenuto nel firmware e quindi non può essere disinstallato, a meno di non ricorrere al rooting), quando si re-installa pulito Windows il bloatware dei vari HP, Asus, Toshiba etc è non più presente e il sistema è realmente originale. Ovviamente, le applicazioni bloatware possono essere comunque scaricate dai portali del produttore o tramite l'apposito strumento di aggiornamento proprietario relativo e re-installate.