Bloatware: Difference between revisions
m add danluu web-bloat to external-links |
Added archive URLs for 8 citation(s) using CRWCitationBot |
||
| Line 8: | Line 8: | ||
*Software that has [[wikipedia:Software_bloat|become bloated over time]] | *Software that has [[wikipedia:Software_bloat|become bloated over time]] | ||
While the term "bloatware" is commonly ascribed to software, ''hardware'' bloat exists.<ref>{{Cite web |last=Ionescu |first=Bogdan |date=2025-09-13 |title=Hosting a WebSite on a Disposable Vape |url=https://bogdanthegeek.github.io/blog/projects/vapeserver/ |access-date=2026-01-15 |website=BogdanTheGeek's Blog}}</ref> See [[Internet_of_things|IoT devices]], for examples. | While the term "bloatware" is commonly ascribed to software, ''hardware'' bloat exists.<ref>{{Cite web |last=Ionescu |first=Bogdan |date=2025-09-13 |title=Hosting a WebSite on a Disposable Vape |url=https://bogdanthegeek.github.io/blog/projects/vapeserver/ |access-date=2026-01-15 |website=BogdanTheGeek's Blog |url-status=live |archive-url=http://web.archive.org/web/20260209021718/https://bogdanthegeek.github.io/blog/projects/vapeserver/ |archive-date=9 Feb 2026}}</ref> See [[Internet_of_things|IoT devices]], for examples. | ||
Often, bloat is a symptom of [[enshittification]] | Often, bloat is a symptom of [[enshittification]] | ||
==Why it is a problem== | ==Why it is a problem== | ||
Most bloatware tends to be pre-installed because the device manufacturer (OEM) has a contract or partnership with another corporation who's interested in "getting exposure" (actually, to advertise itself and collect user data).<ref>https://www.researchgate.net/publication/332932516_An_Analysis_of_Pre-installed_Android_Software</ref> | Most bloatware tends to be pre-installed because the device manufacturer (OEM) has a contract or partnership with another corporation who's interested in "getting exposure" (actually, to advertise itself and collect user data).<ref>https://www.researchgate.net/publication/332932516_An_Analysis_of_Pre-installed_Android_Software ([http://web.archive.org/web/20251130162318/https://www.researchgate.net/publication/332932516_An_Analysis_of_Pre-installed_Android_Software Archived])</ref> | ||
Bloat, in any of its forms, raises privacy and security concerns<ref>{{Cite web |last=Hubert |first=Bert |date=2024-02-08 |title=Why Bloat Is Still Software’s Biggest Vulnerability |url=https://spectrum.ieee.org/lean-software-development |access-date=2025-11-21 |website=IEEE Spectrum}}</ref>. As a rule of thumb, every added branch of code can make a program exponentially harder to prove for correctness<ref>https://gavinhoward.com/2024/03/what-computers-cannot-do-the-consequences-of-turing-completeness/#infinite-state</ref> (ignoring the nuance that some code can aid [[wikipedia:Static_program_analysis|static analysis]] or even completely enforce [[wikipedia:Invariant_(mathematics)|invariants]]<ref>{{Cite web |last=Biffle |first=Cliff |date=2019-06-05 |title=The Typestate Pattern in Rust |url=https://cliffle.com/blog/rust-typestate/ |access-date=2026-01-15 |website=Cliffle}}</ref>), making it impractical (hopeless) to verify that a program is not malicious (such as [[spyware]]) or has an exploitable [[wikipedia:Software_vulnerabilities|vulnerability]]. The problem is exacerbated if the app is not [[wikipedia:Open-source_software|open-source]] (or at least, [[wikipedia:Source-available_software|source-available]]), since [[wikipedia:Reverse_engineering|reverse engineering]] is hard and (in many cases) illegal, forcing the user to be at the mercy of the developers and distributors of the app. | Bloat, in any of its forms, raises privacy and security concerns<ref>{{Cite web |last=Hubert |first=Bert |date=2024-02-08 |title=Why Bloat Is Still Software’s Biggest Vulnerability |url=https://spectrum.ieee.org/lean-software-development |access-date=2025-11-21 |website=IEEE Spectrum |url-status=live |archive-url=http://web.archive.org/web/20260131190126/https://spectrum.ieee.org/lean-software-development |archive-date=31 Jan 2026}}</ref>. As a rule of thumb, every added branch of code can make a program exponentially harder to prove for correctness<ref>https://gavinhoward.com/2024/03/what-computers-cannot-do-the-consequences-of-turing-completeness/#infinite-state ([http://web.archive.org/web/20251214082939/https://gavinhoward.com/2024/03/what-computers-cannot-do-the-consequences-of-turing-completeness/ Archived])</ref> (ignoring the nuance that some code can aid [[wikipedia:Static_program_analysis|static analysis]] or even completely enforce [[wikipedia:Invariant_(mathematics)|invariants]]<ref>{{Cite web |last=Biffle |first=Cliff |date=2019-06-05 |title=The Typestate Pattern in Rust |url=https://cliffle.com/blog/rust-typestate/ |access-date=2026-01-15 |website=Cliffle |url-status=live |archive-url=http://web.archive.org/web/20260130171909/https://cliffle.com/blog/rust-typestate/ |archive-date=30 Jan 2026}}</ref>), making it impractical (hopeless) to verify that a program is not malicious (such as [[spyware]]) or has an exploitable [[wikipedia:Software_vulnerabilities|vulnerability]]. The problem is exacerbated if the app is not [[wikipedia:Open-source_software|open-source]] (or at least, [[wikipedia:Source-available_software|source-available]]), since [[wikipedia:Reverse_engineering|reverse engineering]] is hard and (in many cases) illegal, forcing the user to be at the mercy of the developers and distributors of the app. | ||
Bloat is known for causing sub-par [[wikipedia:User_experience|user-experience]]: | Bloat is known for causing sub-par [[wikipedia:User_experience|user-experience]]: | ||
*Slowness makes users want to exit the website<ref>https://developer.mozilla.org/en-US/docs/Web/Performance</ref> or uninstall the program | *Slowness makes users want to exit the website<ref>https://developer.mozilla.org/en-US/docs/Web/Performance ([http://web.archive.org/web/20260211103730/https://developer.mozilla.org/en-US/docs/Web/Performance Archived])</ref> or uninstall the program | ||
*High memory use prevents users from multitasking; and even if they can multitask, the system will be considerably slow<ref>https://en.wikipedia.org/wiki/Thrashing_(computer_science)</ref> | *High memory use prevents users from multitasking; and even if they can multitask, the system will be considerably slow<ref>https://en.wikipedia.org/wiki/Thrashing_(computer_science) ([http://web.archive.org/web/20260207194502/https://en.wikipedia.org/wiki/Thrashing_(computer_science) Archived])</ref> | ||
*High power usage increases energy bills and reduces battery lifespan | *High power usage increases energy bills and reduces battery lifespan | ||
*Overly relying on network connections (such as internet) prevents users from accessing data that could've been cached locally<ref>{{Cite web |year=2019 |title=Local-first software: You own your data, in spite of the cloud |url=https://www.inkandswitch.com/essay/local-first |url-status=live |website=Ink & Switch}}</ref>, and can increase cellular-data billing | *Overly relying on network connections (such as internet) prevents users from accessing data that could've been cached locally<ref>{{Cite web |year=2019 |title=Local-first software: You own your data, in spite of the cloud |url=https://www.inkandswitch.com/essay/local-first |url-status=live |website=Ink & Switch |url-status=live |archive-url=http://web.archive.org/web/20260130001648/https://www.inkandswitch.com/essay/local-first/ |archive-date=30 Jan 2026}}</ref>, and can increase cellular-data billing | ||
*Big code-bases are harder to test and verify, leading to instability and unreliability issues | *Big code-bases are harder to test and verify, leading to instability and unreliability issues | ||