Paisunut ohjelmisto

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 17. huhtikuuta 2022 tarkistetusta versiosta . tarkastukset vaativat 2 muokkausta .

Bloatware ( eng.  bloatware, fatware, elephantware [1] ) on liian monta lisätoimintoa sisältävä ohjelma, jonka toiminta vie suhteettoman paljon järjestelmäresursseja [2] [3] , varsinkin jos näitä toimintoja ei tarvita tai vähän käyttöä työohjelmille (tällaisia ​​toimintoja kutsutaan usein " temppuiksi "  (englanniksi) , " bells and whistles "  (englanniksi) , kirjaimellisesti: "bells and whistles") [4] .

Englanninkielisellä termillä bloatware (myös englanniksi  crapware, shovelware ) on myös toinen merkitys, joka viittaa resurssiintensiivisiin esiasennettuihin ohjelmistoihin , joita käyttäjä ei tarvitse, mutta joita tietokoneiden, tablettien, älypuhelimien jne. valmistajat määräävät hänelle. [5] [6] [7]

Yleinen kuvaus

Suurin ero rakentajien ja ohjelmoijien välillä on se, että rakentajat tietävät milloin viimeinen tiili lasketaan, kun taas ohjelmoijat eivät. Jokainen ohjelman uusi versio lisää jotain vanhaan. "Baabelin torni" kasvaa harppauksin ja alkaa jossain vaiheessa kaatua.

Chris Kaspersky [8] .

Jokainen ohjelma laajenee, kunnes se pystyy lukemaan viestejä. Ohjelmat, jotka eivät voi laajentua yhtä paljon, korvataan sellaisilla, jotka voivat laajentua.

Jamie Zawinski , Netscape Communicatorin kehittäjä

Teknisesti paisuneet ohjelmistot yhdistetään useimmiten käsitteeseen " ominaisuus creep, creeping featurism/featuritis "  [ 2] , joka viittaa kehittäjien taipumukseen lisätä ohjelmistotuotteeseen yhä enemmän ominaisuuksia yrittääkseen "pitää mukana" kilpailijat", mutta itse asiassa johtaa hitaamman ja vähemmän tehokkaan tuotteen luomiseen [9] . Vuonna 2002 julkistetun tutkimustiedon mukaan vain 20-25 % ohjelmistotuotteiden toiminnoista käytettiin aina tai usein, kun taas jopa 45 % toiminnoista jäi käyttämättä ollenkaan. Martin Fowlerin mukaan useimpien hankkeiden pitäisi olla vain neljännes nykyisestä koostaan ​​[10] .

Bloat ei vaikuta vain ohjelmien suorituskykyyn: ohjelmakoodin määrän kasvu johtaa sen ylläpidon ja kehittämisen kustannusten nousuun. Lisäksi huonosti suunnitelluista lisäominaisuuksista voi tulla haavoittuvuuksia .

Toinen "ominaisuuksien paisumiseen" vaikuttava tekijä on Frederick Brooksin vuonna 1975 kuvaama "toinen järjestelmäefekti" : toista järjestelmää kehittävä ohjelmoija pyrkii lisäämään kaikki ominaisuudet, joita hän ei voinut lisätä ensimmäiseen järjestelmäänsä (ajan puutteen vuoksi). ). ), joten toinen järjestelmä on usein ylikuormitettu ominaisuuksilla.

Merkittäviä IT-ammattilaisia ​​ohjelmistojen bloatissa

Niklaus Wirth kirjoitti vuonna 1996 artikkelin "Down with "fat programmes" ja nosti esiin ohjelmien ongelman, joiden resurssitarve kasvaa enemmän kuin niiden toimivuus ja suorituskyky [11] . Hän lainasi termin " fatware " Byte-lehden vuoden 1993 artikkelista [12] .

Wirth viittasi kahteen vitsailevaan "lakiin", jotka kuitenkin kuvaavat tarkasti tilannetta:

Kaksi tekijää myötävaikuttaa siihen, että kuluttajat hyväksyvät jatkuvasti kasvavat ohjelmistokoot: nopeasti kasvava laitteiston suorituskyky ja tietämättömyys tärkeiden ominaisuuksien ja "kiva saada" ominaisuuksien välisestä perustavanlaatuisesta erosta [11] .

Nathan Myhrvold ilmaisua "ohjelmisto on kaasu" kuvaamaan seuraavaa ilmiötä: riippumatta siitä, kuinka paljon laitteistoa on parannettu, kehittäjillä on aina tapana lisätä toimintoja pakottaakseen ohjelmansa saavuttamaan suorituskyvyn rajoja [13] .

Suhde ohjelmistoon bloat

Vanhojen ohjelmien sovittaminen uusiin koneisiin tarkoittaa yleensä muutosten tekemistä, jotta uudet koneet toimivat kuten vanhat.

Alan Perlis [14] .

Käyttäjät suhtautuvat paisuneeseen ohjelmistoon negatiivisesti. Joel Spolskyn mukaan he tekevät sen turhaan [15] seuraavista syistä:

Esimerkkejä

Windowsin vähimmäisvaatimusten vertailu ( x86 - versiot )
Windows-versio prosessori Muisti Levyn koko
Windows 95 [16] 25 MHz 4 Mt ~50 MB
Windows 98 [17] 66 MHz 16 Mt ~200 Mt
Windows 2000 [18] 133 MHz 32 Mt 650 Mt
Windows XP [19] (2001) 233 MHz 64 Mt 1,5 Gt
Windows Vista [20] (2007) 800 MHz 512 Mt 15GB
Windows 7 [21] (2009) 1 GHz 1 Gt 16 Gt
Windows 8 [22] (2012) 1 GHz 1 Gt 16 Gt
Windows 10 [23] (2015) 1 GHz 1 Gt 16 Gt
Windows 11 [24] (2021) 1 GHz 4 GIGATAVUA 64 Gt

Switched Downloadsquad julkaisi esimerkkejä pahimmista ohjelmista vuonna 2008 kategoriassa "elephantware", eli "paisuneet ohjelmat, jotka saavat uusimmat henkilökohtaiset tietokoneet käynnistymään kuten Pentium 2 , jossa on 64 Mt RAM-muistia" [25] . Seuraavat ohjelmat on nimetty:

Hyvä esimerkki vaatimusten kasvusta on Microsoftin käyttöjärjestelmän asennuksen järjestelmävaatimukset. Kuten näette, niiden kasvu oli selvästi suhteetonta uusien mahdollisuuksien syntymiseen. On syytä muistaa, että tämä johtuu osittain Windows-ominaisuuksien "leikkauksesta" lisenssistä riippuen, kun taas pääjärjestelmätiedostot pysyvät samana. Windows 10:n vähimmäisvaatimukset pysyvät samoina kuin Windows 7:n, kun taas käyttäjät ja testaajat huomaavat muistin kulutuksen todellisen lisääntyneen. Näin ollen vähimmäisvaatimusten säilyttäminen on jossain määrin mainontaa.

Nero Burning ROM [26] mainitaan usein esimerkkinä perusteettomasta turvotuksesta . Tämän ohjelman paketti hankki elinkaaren aikana graafisen ja äänieditorin, ääni- ja videosoittimen sekä vaihtoehtoisen version tallennusohjelmasta yksinkertaistetulla käyttöliittymällä, jotka kaikki toimitettiin erityisellä kuoriohjelmalla käynnistämistä varten. ja sillä oli monimutkaisia ​​graafisen suunnittelun tyylejä .

Anti-bloat

Täysin bloatin vastakohta on KISS -periaate , joka estää järjestelmiä muuttumasta monimutkaisemmiksi, jos ne toimivat jo hyvin. Myös turvotusta vastaan ​​on Unix-filosofian ensimmäinen periaate .

Vuonna 2014 Etelä-Korea vaati laillisesti älypuhelimien ohjelmistokehittäjiä tarjoamaan mahdollisuuden pakottaa ei-toivotut bloatware-ohjelmat ("tarpeettomat esiasennetut bloatwaret") poistamaan. Tämä vaihe johtui lisääntyvästä käytännöstä esiasennuttaa älypuhelimiin tarpeettomia resursseja vaativia ohjelmistoja, joita ei voida poistaa tavallisin keinoin [27] .

Muistiinpanot

  1. Mikä on bloatware? // viisasmies . Haettu 20. syyskuuta 2013. Arkistoitu alkuperäisestä 21. syyskuuta 2013.
  2. 1 2 Aleksanteri Klimenkov. Lilliputit jättiläisten maassa Arkistoitu 22. syyskuuta 2013 Wayback Machinessa // Computerra, nro 4, 10.2.2008
  3. Bloatwaren määritelmä // answers.com . Haettu 12. elokuuta 2016. Arkistoitu alkuperäisestä 20. syyskuuta 2016.
  4. Mikä on bloatware // businessdictionary.com (downlink) . Haettu 20. syyskuuta 2013. Arkistoitu alkuperäisestä 21. syyskuuta 2013. 
  5. Bloatwaren määritelmä Oxford-sanakirjassa . Haettu 27. kesäkuuta 2017. Arkistoitu alkuperäisestä 15. toukokuuta 2018.
  6. Brad Chacos. Bloatware: Miksi tietokonevalmistajat täyttävät tietokoneesi roskapostilla ja kuinka päästä eroon siitä Arkistoitu 28. kesäkuuta 2017 Wayback Machinessa // PC World, 26.2.2015
  7. Eric Griffith. Crapwaren puhdistaminen uudesta tietokoneesta Arkistoitu 6. heinäkuuta 2017 Wayback Machinessa // PC World, 10.2.2017
  8. Software Evolution Arkistoitu 14. lokakuuta 2013 Wayback Machinessa // Hacker, #055 (erikoisnumero), s. 55-56
  9. Bloatware // Macmillan Dictionary . Haettu 20. syyskuuta 2013. Arkistoitu alkuperäisestä 21. syyskuuta 2013.
  10. Martin Fowler . XP 2002 -konferenssi arkistoitu 29. joulukuuta 2016 Wayback Machinessa 2. heinäkuuta 2002
  11. 1 2 3 Niklaus Wirth. Alas "rasvat" ohjelmat .
  12. Ed Perratore, Tom Thompson, Jon Udell, Rich Malloy. Fighting Fatware  // Byte. - Huhtikuu 1993. - Voi. 18, nro 4 . - s. 98-108.
  13. Guoqing Xu, Nick Mitchell jne. Ohjelmiston bloat-analyysi: suorituskykyongelmien etsiminen, poistaminen ja ehkäiseminen nykyaikaisissa laajamittaisissa olio-sovelluksissa // Proceedings of the FSE/SDP workshop on Future of Software engineering research. Sivut 421-426. Teksti  (linkki ei saatavilla) .
  14. ACM:n SIGPLAN-julkaisusta (syyskuu 1982), artikkeli "Epigrams in Programming", kirjoittanut Alan J. Perlis Yalen yliopistosta.
  15. Strategiakirje IV: Bloatware ja 80/20-myytti . Haettu 2. syyskuuta 2008. Arkistoitu alkuperäisestä 5. heinäkuuta 2008.
  16. Microsoft KB: Windows 95:n asennusvaatimukset . Haettu 22. heinäkuuta 2007. Arkistoitu alkuperäisestä 7. elokuuta 2007.
  17. Microsoft KB: Vähimmäislaitteistovaatimukset Windows 98 -asennukselle . Haettu 22. heinäkuuta 2007. Arkistoitu alkuperäisestä 4. marraskuuta 2010.
  18. Windows 2000 Server Aloitusopas: Luku 3 - Windows 2000 Server -asennuksen suunnittelu . Haettu 29. elokuuta 2007. Arkistoitu alkuperäisestä 12. syyskuuta 2007.
  19. Microsoft KB: Windows XP -käyttöjärjestelmien järjestelmävaatimukset . Haettu 22. heinäkuuta 2007. Arkistoitu alkuperäisestä 5. heinäkuuta 2006.
  20. Microsoft KB: Windows Vistan järjestelmävaatimukset . Haettu 22. heinäkuuta 2007. Arkistoitu alkuperäisestä 3. heinäkuuta 2007.
  21. Microsoft: Windows 7:n järjestelmävaatimukset . Haettu 9. lokakuuta 2009. Arkistoitu alkuperäisestä 18. kesäkuuta 2016.
  22. Windows 8 Release Esikatsele ISO-kuvia . - ""Windows 8 Release Preview toimii hyvin samalla laitteistolla, joka käyttää Windows 7:ää"". Haettu 12. elokuuta 2012. Arkistoitu alkuperäisestä 5. maaliskuuta 2012.
  23. 7 asiaa, jotka tulee muistaa, jos kokeilet Windows 10:n esikatselua . www.computerworld.com. Haettu 29. maaliskuuta 2015. Arkistoitu alkuperäisestä 18. maaliskuuta 2015.
  24. Tämä on laitteisto, jonka tarvitset Windows 11 - The Vergen käyttämiseen . Haettu 27. syyskuuta 2021. Arkistoitu alkuperäisestä 4. lokakuuta 2021.
  25. 12 Jack Schofield . Mikä on ärsyttävin ohjelmasi? Arkistoitu 15. toukokuuta 2018 Wayback Machinessa // www.theguardian.com, Software Technology -blogi 2008
  26. Cassia, Fernando 'Nero Lite' ja 'Nero Micro': pienempi joskus on parempi . The Inquirer (27. helmikuuta 2007). Haettu 7. maaliskuuta 2007. Arkistoitu alkuperäisestä 2. maaliskuuta 2007.
  27. Ryan Huang. Etelä-Korean sääntöjen mukaan puhelimeen asennettujen bloatware-ohjelmien on oltava poistettavissa . Arkistoitu 21. lokakuuta 2016 Wayback Machinessa // zdnet.com , 24. tammikuuta 2014