Rudxain (talk | contribs)
m add danluu web-bloat to external-links
Banana (talk | contribs)
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