Bloatware ( eng. bloatware, fatware, elephantware [1] ) är ett program som har för många extra funktioner, vars drift kräver oproportionerligt mycket systemresurser [2] [3] , speciellt om dessa funktioner inte behövs eller av liten användning för arbetsprogram (sådana funktioner kallas ofta " jippon " (engelska) , " klockor och visselpipor " (engelska) , bokstavligen: "klockor och visselpipor") [4] .
Det engelska begreppet bloatware (även engelska crapware, shovelware ) har också en andra betydelse, som syftar på resurskrävande förinstallerad mjukvara som användaren inte behöver, utan som påtvingas honom av tillverkare av datorer, surfplattor, smartphones etc. [5] [6] [7]
Den största skillnaden mellan byggare och programmerare är att byggare vet när de ska lägga den sista tegelstenen, medan programmerare inte gör det. Varje ny version av programmet lägger till något till den gamla. "Babels torn" växer med stormsteg och börjar någon gång falla.
Chris Kaspersky [8] .Varje program kommer att expandera tills det kan läsa e-post. Program som inte kan expandera lika mycket ersätts av de som kan.
Jamie Zawinski , utvecklare av Netscape CommunicatorTekniskt uppsvälld programvara förknippas oftast med begreppet " feature creep, creeping featurism/featuritis " [ 2] , som syftar på utvecklarnas tendens att lägga till fler och fler funktioner till en mjukvaruprodukt. i ett försök att "hänga med i konkurrenter", men leder faktiskt till skapandet av en långsammare och mindre effektiv produkt [9] . Enligt forskningsdata som tillkännagavs 2002 användes endast 20-25 % av funktionerna i mjukvaruprodukter alltid eller ofta, medan upp till 45 % av funktionerna aldrig användes alls. Enligt Martin Fowler skulle de flesta projekt bara behöva vara en fjärdedel av sin nuvarande storlek [10] .
Bloat påverkar inte bara programmens prestanda: en ökning av volymen programkod leder till en ökning av kostnaderna för dess underhåll och utveckling. Dessutom kan dåligt utformade ytterligare funktioner bli en källa till sårbarheter .
En annan bidragande faktor till "feature bloat" är den "andra systemeffekten" som beskrevs av Frederick Brooks redan 1975: en programmerare som utvecklar sitt andra system tenderar att lägga till alla funktioner som han inte kunde lägga till sitt första system (på grund av tidsbrist) ). ), så det andra systemet är ofta överbelastat med funktioner.
Niklaus Wirth skrev 1996 artikeln "Down with "fat programs"" och tog upp problemet med program för vilka ökningen av resurskraven överstiger ökningen av deras funktionalitet och prestanda [11] . Han lånade termen " fatware " från en artikel 1993 i tidskriften Byte [12] .
Wirth pekade på två skämtande "lagar" som ändå exakt återspeglar situationen:
Två faktorer bidrar till konsumenternas acceptans av ständigt ökande mjukvarustorlekar: snabbt ökande hårdvaruprestanda och okunnighet om den grundläggande skillnaden mellan viktiga funktioner och de som är "trevliga att ha" [11] .
Nathan Myhrvold uttrycket "mjukvara är en gas" för att beskriva följande fenomen: oavsett hur mycket hårdvaran har förbättrats, tenderar utvecklare alltid att lägga till funktionalitet för att tvinga sina program att nå gränserna för den prestandan [13] .
Att anpassa gamla program till nya maskiner innebär vanligtvis att man gör ändringar för att de nya maskinerna ska fungera som de gamla.
Alan Perlis [14] .Användare tenderar att se uppsvälld programvara negativt. Enligt Joel Spolsky gör de det förgäves, [15] av följande skäl:
Windows version | CPU | Minne | Diskstorlek |
---|---|---|---|
Windows 95 [16] | 25 MHz | 4 MB | ~50 MB |
Windows 98 [17] | 66MHz | 16 MB | ~200 MB |
Windows 2000 [18] | 133 MHz | 32 MB | 650 MB |
Windows XP [19] (2001) | 233 MHz | 64 MB | 1,5 GB |
Windows Vista [20] (2007) | 800MHz | 512 MB | 15 GB |
Windows 7 [21] (2009) | 1 GHz | 1 GB | 16 GB |
Windows 8 [22] (2012) | 1 GHz | 1 GB | 16 GB |
Windows 10 [23] (2015) | 1 GHz | 1 GB | 16 GB |
Windows 11 [24] (2021) | 1 GHz | 4 GB | 64 GB |
Switched Downloadsquad publicerade exempel på de sämsta programmen 2008 i kategorin "elefantprogram", det vill säga "uppblåsta program som får de senaste persondatorerna att starta som en Pentium 2 med 64 MB RAM" [25] . Följande program har fått namn:
Ett bra exempel som illustrerar ökningen av kraven är systemkraven för att installera Microsofts OS. Som du kan se var deras tillväxt helt klart oproportionerlig till uppkomsten av nya möjligheter. Man bör komma ihåg att detta delvis beror på "trunkeringen" av Windows-funktioner beroende på licensen, medan huvudsystemfilerna förblir i samma antal. Minimikraven för Windows 10 förblir desamma som Windows 7, medan användare och testare noterar en faktisk ökning av minnesförbrukningen. Bevarandet av minimikraven är följaktligen i viss utsträckning av reklamkaraktär.
Nero Burning ROM [26] nämns ofta som ett exempel på omotiverad uppblåsthet . Under livscykeln fick paketet med detta program en grafik- och ljudredigerare, en ljud- och videospelare, samt en alternativ version av inspelningsprogrammet med ett förenklat gränssnitt, som alla levererades med ett speciellt skalprogram för att starta och hade komplexa grafiska designstilar .
Den raka motsatsen till uppblåsthet är KISS- principen , som förbjuder system från att bli mer komplicerade om de redan fungerar bra. Också mot uppblåsthet är den första principen i Unix-filosofin .
Under 2014 krävde Sydkorea lagligt att mjukvaruutvecklare för smartphones skulle tillhandahålla möjligheten att tvinga bort oönskad bloatware ("onödig förinstallerad bloatware"). Detta steg orsakades av det ökande bruket av förinstallation på smartphones av onödig resurskrävande programvara som inte kan tas bort med standardmetoder [27] .