Software bloat

tendenza dei nuovi programmi ad avere file di installazione molto grandi

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.[1]

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 modifica

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".[2] Jamie Zawinski ha fatto considerazioni simili parlando di Netscape.[3]

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[4][5][6], e sono frequenti le guide, soprattutto in rete, su come disinstallarli.[7][8][9]

Esempi modifica

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.[10]

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.[11]

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,[12][13] 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[14] 25 MHz 4 MB ~50 MB
Windows 98[15] 66 MHz 16 MB ~200 MB
Windows 2000[16] 133 MHz 32 MB 650 MB
Windows XP[17] (2001) 233 MHz 64 MB 1.5 GB
Windows Vista[18] (2007) 800 MHz 512 MB 15 GB
Windows 7[19] (2009) 1 GHz 1 GB 16 GB
Windows 8[20] (2012)
Windows 10[21] (2021)
Windows 11 (2021) 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!".[22]

Note modifica

  1. ^ Cosa sono i bloatware e come eliminarli dallo smartphone Android, su fastweb.it, Fastweb. URL consultato il 5 febbraio 2015.
  2. ^ "A Plea for lean software" (PDF), su cr.yp.to.
  3. ^ (EN) Jamie Zawinski, easter eggs, su jwz.org, 1998. URL consultato il 15 novembre 2023.
  4. ^ (EN) Zach Epstein, Does iOS have a bloatware problem?, su BGR, 27 agosto 2015. URL consultato il 1º giugno 2020.
  5. ^ Utenti accusano OnePlus di installare queste app bloatware negli smartphone, su TuttoAndroid, 5 maggio 2020. URL consultato il 1º giugno 2020.
  6. ^ (EN) Data Sheet: DeBloating the Huawei P30 Pro, su Tested.Technology. URL consultato il 1º giugno 2020 (archiviato dall'url originale il 2 ottobre 2019).
  7. ^ Cosa sono i bloatware e come eliminarli dallo smartphone Android, su Fastweb.it. URL consultato il 1º giugno 2020.
  8. ^ (EN) How to uninstall bloatware and preinstalled Android apps, su AndroidPIT. URL consultato il 1º giugno 2020.
  9. ^ Get those unwanted apps and bloat off of your Samsung Galaxy phone, su Android Central, 2 aprile 2020. URL consultato il 1º giugno 2020.
  10. ^ UNIX Style, or cat -v Considered Harmful, su harmful.cat-v.org. URL consultato il 5 giugno 2023.
  11. ^ "The UNIX haters handbook" (PDF), su web.mit.edu.
  12. ^ GNU yes, su github.com.
  13. ^ OpenBSD yes, su github.com.
  14. ^ Microsoft KB: Windows 95 Installation Requirements, su support.microsoft.com. URL consultato il 22 luglio 2007.
  15. ^ Microsoft KB: Minimum Hardware Requirements for a Windows 98 Installation, su support.microsoft.com. URL consultato il 22 luglio 2007.
  16. ^ Windows 2000 Server Getting Started: Chapter 3 - Planning Your Windows 2000 Server Installation, su microsoft.com. URL consultato il 29 agosto 2007.
  17. ^ Microsoft KB: System requirements for Windows XP operating systems, su support.microsoft.com. URL consultato il 22 luglio 2007.
  18. ^ Microsoft KB: System requirements for Windows Vista, su support.microsoft.com. URL consultato il 22 luglio 2007.
  19. ^ Microsoft: System requirements for Windows 7, su windows.microsoft.com. URL consultato il 9 ottobre 2009.
  20. ^ Windows 8 Release Preview ISO images, su windows.microsoft.com. URL consultato il 12 agosto 2012.
    «"Windows 8 Release Preview works great on the same hardware that powers Windows 7"»
  21. ^ Specifiche e requisiti di sistema di Windows 10, su microsoft.com, Microsoft Corporation. URL consultato il 26 gennaio 2021.
  22. ^ (EN) J. D. Sartain, In their own words: Unix pioneers remember the good times, su Network World, 19 agosto 2013. URL consultato il 5 giugno 2023.
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica