Rudxain (talk | contribs)
m add "Why Modern Software is Slow" and make uBO link prettier
Rudxain (talk | contribs)
m add citation for invariants
Line 15: Line 15:
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</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]]), 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}}</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 is known for causing sub-par [[wikipedia:User_experience|user-experience]]:
Bloat is known for causing sub-par [[wikipedia:User_experience|user-experience]]: