( hajbazer | 2010. 05. 15., szo – 13:13 )

Nagyon örülök, hogy akadt valaki, aki létrehozta ezt a topikot. Hasonlót szerettem volna én is csinálni egyszer, szóval itt most kiélhetem magam :)

A szakma szégyenének leginkább a mesterségesen fenntartott növekedést tartom. Azt a tendenciát, amikor a szoftveripar és a hardveripar egymást húzzák, szimbiózisban élnek, emiatt a ciklikusan megújuló extraprofit érdekében megvetetik az újat, kidobatják a régit. Hardverszinten ez úgy néz ki, hogy általában képtelenek lassulás nélkül kihozni egy újabb verziót minden szoftverből, erre jó példák a böngészők (Firefox, Internet Explorer) vagy a kép- és videószerkesztők (Adobe Premiere, Adobe Photoshop, Adobe After Effects), esetleg az e-mail kliensek (GMail felület, Thunderbird). Szoftverszinten pedig úgy néz ki, hogy általában a legtöbb szoftvernél képtelenek normálisan megoldani a visszafelé-kompatíbilitást. Természetesen mivel az újabb lassabb, ezért nem fog futni régebbi hardveren, ezért dobd ki a régebbi hardvert és vegyél újat, holott lehet, hogy te nem akartál semmiféle új feature-t használni. Ennek a tendenciának a végtermékei a mainstream bloatware-ek.

Az előbb leírtak miatt úgy gondolom, érdemes lenne bevezetni egy olyasmi fogalmat, mint szoftverek reálértéke. Tehát adott egy szoftver, amellyel valamennyi idő alatt el lehet végezni egy feladatot (összetett feladatról is beszélhetünk) és ehhez valameny hardvert igényel. Például egy átlagos szövegszerkesztővel megírt szöveg vagy formanyomtatvány szimplán elkészíthető a mai napig Word 6.0-val Windows 3.11 alatt 50MHz-en és 8MB RAM-mal, de elkészíthető még Office XP-vel is, ami hússzor ennyi erőforrást igényel ugyanahhoz a feladathoz. A reálérték ott kezd érdekes lenni, hogy miért kell ugyanahhoz a feladathoz sokkal több erőforrás és ezáltal sokkal több elfogyasztott energia (ami a véges energiakészletek és a jelenlegi emberiségellenes olaj- és gázalapú gazdasági berendezkedés miatt káros). Természetesen figyelembe kell venni, hogy a hardvergyártók egyre inkább ügyelnek arra, hogy az erőforrásigényt csökkentsék, ez egy olyan dolog, amire kezdettől fogva kellett volna ügyelni, ahelyett, hogy vadkapitalista piaci magatartással kiszórják a legyártott, "erőműbe" szánt procikat, amik önmagukban akár 80W-ot (ha nem többet) is felzabálnak. Mindeközben persze egyre lustulnak a fejlesztők és ugyanazt a feladatot egy adott szoftver segítségével, amit 10 évvel ezelőtt tizedennyi erőforrásfelhasználással el lehetett érni, az ma már tényleg csak a múlté.

Nos hát ezeket fogom példákon keresztül bővebben kifejteni, alább.

A GECKO alapú "gecók": Mozilla Firefox és Thunderbird

A GECKO runtime environmenthez tákolt menükezelőnél a világon nem létezik lassabb. Pentium III-on (ahol a többi böngésző mind tizedmásodperces reakcióidő alatt van), a Mozillának fél másodpercig tart lerajzolni egy Fájl menüt és közben 100% CPU-t zabál. Még a GTK is veri, sőt, a vicc az, hogy még Windowson is, pedig az is "ritka" nagy bloatware. Amíg az Internet Explorer, a Chrome és az Opera fejlesztői meg tudták oldani, hogy Windowson megpróbáják vagy a natív, Windows-resource menürendszert vagy ahhoz fogható hatékonyat (gyorsat) használni, addig a Mozilla fejlesztői nem vették a fáradságot, hogy ezt megtegyék. A pluginek is kb. javascriptben vannak írva és a kezelésük se valami hatékony.

Nemrég teszteltem a Mozilla Thunderbird legújabb verzióját (3.X) egy Pentium III 500MHz-es konfigon (192MB RAM, nVidia GF2 MX/MX400). A cold start már alap, hogy tíz másodperc fölött, aztán nagy nehezen, mikor becammogta magát a memóriába, előjön a totálisan über-bloat kezelőfelület, ahol a reakcióidő néhol már másodpercben mérhető. Gondoltam, létre is hozom az új fiókom, megnézzük milyen. Létrehoztam, aztán szerettem volna finomhangolni (tudjátok, a beállítások panelen). A beállításos panelen van egy baloldali lista, ahonnan ki lehet választani néhány dologot (szerverbeállítások, spam-beállítások, smtp stb.). No, ha oda kattintottam az egyik listaelemre, 7-8 másodpercig (!) tartott, míg jobboldalt megjelent a panel, közben természetesen 100% CPU-t zabált. Érdekes módon az Opera Mail, a Pegasus Mail, az Outlook ilyeneket nem produkál. Vajon mitől lehet? Ja, hogy vegyek új gépet a P3 helyett... Nem, tessék normálisan megírni!

Linux

Gyakorlatilag mindegyikben csalódtam, de a legnagyobbat az Ubuntuban, mint desktop. A Linux kernel eredetileg abból a célból látott napvilágot, hogy legyen egy nyílt forráskódú, UNIX-alapú, és a hardvererőforrásokat az addigiaknál sokkal jobban kihasználó rendszermag, melyre operációs rendszer épülhet. Ez a célkitűzés az, amivel egyet tudtam érteni és amíg a Linux nem terjedt el annyira, mint most, addig nagyjából ez is volt igaz rá. Ma a Linux disztribúciók legyen szó akár desktopról akár szerverről megkövetelik maguk alá a hardvert, mert a fejlesztők egyre csak lustulnak és lustulnak inkább megírják valamilyen framework-ben vagy tákolmány library-ket használva, minthogy assembly-ben optimalizálnak vagy hatékony kódot írnának. Sajnos ez igaz a gcc-re is, amit leginkább használnak a disztribek csomagjainak fordítására. Évről évre egyre inkább lassult, több memóriát eszik és a generált kódok sem követelnek meg új hardvereket.

Nyilvánvaló, hogy mely tendenciáról van szó és a hardvergyártók miért kezdték el ilyen széles körben támogatni a linux-alapú rendszereket. Azért, mert ha a Linuxban is sikerül affelé terelni a fejlesztőket, hogy azért annyira ne optimalizáljanak, azért egy új disztribúció alá kelljen már új gépet is venni, akkor ők is jól járnak (mármint a hardvergyártók), mert nem reked be a piacuk a "túl gyors" szoftverek miatt. Ez a tendencia több szempontból is káros. Egyrészt tisztességtelen a fogyasztókkal szemben, másrészt környezetkárosító, pazarló, irreális és beteges.

Ha megnézem a Linux disztribúcióit, nem találok olyat, ami mondjuk egy Pentium 3-as gépen olyan sebességgel és hatékonysággal futna, mint egy Windows XP, holott pont ez volt az alapcélkitűzés a kereskedelmi szoftverekkel szemben (melyekre szintén igaz az előbb említett tendencia, sőt). Onnantól, hogy grafikus felületet kell használni, néhány kivételtől eltekintve nem találni olyan felületet vagy megoldást ami ne lenne erőforráspocsékoló bloatware (GTK2, QT stb.). Mellesleg a Windows 7-nek erőforrásigényével és -pocsékolásával már sikerült behoznia a "lemaradását" a legtöbb Linux disztribúcióhoz képest. De nem csak a grafikus alkalmazásokkal van probléma. Van egy Pentium II-es gépem, amit routernek használok. Debian Sarge van rajta, egy évek óta kihalt disztribúció. Azért van ez rajta, mert ha frissítenék, felére lassulna a gép, a rajta lévő programok sebessége és hatékonysága (kipróbáltam már és ugyanez volt, mikor Woody-ról Sarge-ra frissítettem) drasztikusan csökkenne. Nem azért, mert az új disztribúcióból többet használnék, hanem azért, mert egyre kevésbé optimalizálják (nem gcc-vel, hanem forrásszinten) a kódokat, hiszen az úgyis jól fog majd menni azokon a gépeken, ahol van mit elpazarolni - valószínűleg ilyen gépeken fejlesztik és tesztelik. Természetesen vannak up-to-date kicsi disztribek, de abban pedig nincs benne az, ami nekem kell, meg Debianhoz vagyok szokva és meg vagyok vele elégedve.

Radikális szemléletváltásra lenne szükség a Linux disztribúciókat illetően, vissza kéne térnie annak a felfogásmódnak, hogy igenis régi hardvereken is jól fusson és igenis, ha már azzal feszengenek, hogy mennyi architektúrára jó, akkor települjön fel egy Pentium I-re is és használja ki minden lehetséges erőforrását a legoptimálisabban, ne az aktuális piaci szempontok határozzák meg, hogy mire és hogyan programoznak a fejlesztők.

Adobe Flash Player

Az Adobe (korábban Macromedia) eme "gyöngyszeme" talán a világon legtöbbet használt, legerőforráspocsékolóbb szoftver, ami létezik. Mostanság - mikor már az internetes videó- és multimédiamegosztás korát éljük, egyértelműen a Flash az, ami elén jár a tartalmak kliensoldali lejátszásában. Ez önmagában a probléma, illetve hát a Flash önmagában a probléma. Számos teszt létezik, ami megmutatja, hogy annak ellenére, hogy végülis elvileg natív kódú DLL-ek települnek fel, mint Flash Plugin, mégis a videókat kizárólag szoftveres dekódolással, kizárólag szoftveres gyorsítású megjelenítéssel képesek megjeleníteni és még ezt is legalább háromszor akkora erőforrásigénnyel, mint egy alternatíva (FFDShow, CoreAVC stb.) tenné. Tesztek és további részletek ITT.

Adobe egyéb kreatív termékei

Az utóbbi időben az Adobe iszonyatosan undorító üzletpolitikát folytat: magasról tesznek szoftvereik erőforráshatékonyságára. Érdemes összehasonlítani például egy Photoshop 7.0-t egy CS2-vel, aztán egy CS4-gyel alapfunkcionalitásukat tekintve (mert hogy abban szinte semmit nem változtak az évek során), aztán észrevesszük, hogy hoppá, minél újabb egy Adobe termék, annál lassabb (azonos hardveren persze). Erre nyilván a kapitalizmusban hívő fogyasztók tipikus válasza: Nadehát ez tartja fenn a fejlődést, az új szolgáltatásokhoz bizony újabb, erősebb hardver kell.
Ez a legnagyobb tévedés, ezt nem fejlődésnek hívják, hanem növekedésnek. Fejlődés az, amikor KEVESEBB vagy azonos mennyiségű erőforrásból TÖBBET tudnak kihozni (pl. Intel Atom a P4-hez képest fejlődés, mert közel ugyanolyan számítási teljesítményt produkál tizedannyi fogyasztással). A CS5-höz beígért 64-bites gyorsulás sem igazi fejlődés, csak egyszerűen úgy tűnik, végre szándékozzák kihasználni (így 6-7 év henyélés után) a 64-bites processzor nyújtotta lehetőségeket (és cserbenhagyni a 32-bites rendszerek felhasználóit, azt üzenve nekik: vegyetek új gépet és dobjátok ki a régit). Az Adobe szoftverek újabb verzióinak ugyanazon feladatok elvégzéséhez (melyekre a régebbi is képes volt) is már több erőforrásra van szükségük, ezért ez semmiképpen sem fejlődés, csak növekedés, annak is a rosszabbik válfaja, mely egyenes út a pocsékolás felé.

A tesztek azt mutatják mégis, hogy főleg After Effects-nél Windows 7-en nő a renderelési idő. Windows-ra meg igen van grafikus driver fasza, csaképpen a játékokon (és bocsi, a Win7 Aero-n) kívül nincs ami kihasználja. Próbálok én is örülni a renderelési idő 10%-kal való lenyesésének, de valahogy nem tudok, mert tudom, hogy ha pl. a drága Adobe kihasználná normálisan (és nem csak dísznek) az OpenGL (és nVidia CUDA) nyújtotta lehetőségeket (feltételezve, ha játszik az ember, akkor durva videókártyája van), akkor ez az idő nem 8 perc lenne, hanem 8 másodperc, ha meg nem is ilyen kevés, de egy percen belül. Azt is tudom, hogy ha ASSEMBLY-szinten optimalizálna az A-val kezdődő "barátunk", akkor csak CPU-t használva is legalább fele annyi lenne a renderelési idő. Utóbbitól pedig már nincs mi elrettentse őket, hiszen a Mac is átállt x86-ra, dehát a fejlesztői lustaság mindenekfelett. Az, hogy Windows7-en "gyorsabb" a renderelés max. annyit jelent, hogy a Windows 7 jobban ütemez és jobban kezeli a memóriát a gépen. Mellesleg megjegyzem, hogy alapjában a Windows 7 azonos hardveren sokkal erőforráspocsékolóbb rendszer, mint az XP. Elképzelhető ennek ellenére, hogy egy 7-es gyorsabban fut, mint egy XP azonos high-end, korszerű hardveren. Ez nyilván azért van, mert az XP-t már nem optimalizálják (driver- és kódszinten) erre az újabb hardverre, nem szívesen párhuzamosítják a kódot, nyilván, hogy vedd meg az újat. Érdemes olyan hardveren is kipróbálni a 7-et, amire még az XP is optimális. No, ott ki fog jönni a különbség: a Win7 bizony több memóriát és CPU-t zabál, és még lassabb is.

Az Adobe szoftverek azonos hardveren alapfunkcionalitásukat (melyben általában nem változnak verzióik során) tekintve egyre lassabbak és lassabbak, azaz több erőforrást zabálnak. Ez nyilván nem probléma azoknak, akik elvannak régebbi verziókkal és nem igényelnek több funkciót, mint amit a régi nyújt nekik. Onnantól kezd problémás lenni egy ilyen embernek a régi verzió, amikor felfedez benne néhány baromi idegesítő hibát és a termék hivtalos fórumján, udvarias kigúnyolás mellett közlik vele: vedd meg az újat. Az újhoz pedig új gép kell vagy lassabb lesz - ergo pénzkidobás, ha nem vesz új gépet is mellé, hiszen kevésbé lesz hatékonyabb, mint a régi verzói. Holott ő, a felhasználó, mikor a máig használt régit vette meg, akkor teljesértékű szoftverért fizetett és ezen felül még extraprofitot is termelt a készítőnek, aki képtelen kijavítani a hibát a régi verzióban, helyette arra utasítja fogyasztóit, vegyék meg az újat. Nyilván az átlagfelhasználó - jó birka módjára - nem fog írogatni fórumokra, blogokra, hanem megveszi az újat - Amerikában van is miből. Itt pedig bezárult az az ördögi kör, amelyet rengeteg multinacionális szoftver- és hardvergyártó cég fenntart, hogy biztosítsa magának minden évben az extraprofitját. Meg is tehetik, hiszen a távol-keleti rabszolgák és robotok örömmel összerakják nekik az új hardvert, de még az elektronikai hulladék "kezeléséről" is gondoskodnak, ha már Adobe-ék úgy gondolják, "ideje új gépet vetetni". Ennek természetesen az a hihetetlen mértékű pazarlás és millió tonna elektornikai hulladék a probléma, amelynek a kezelése nincs igazából megoldva és ha meg lenne oldva az se lenne túl biztató, hiszen rengeteg VÉGES erőforrást használnak fel eme növekedés mesterséges fenntartásához.

Végszó

Sok hasonló problémáról írtam már elszórtan a HUP-on, általában a legtöbben nem osztják a véleményem, viszont akadnak kevesek, akik megértik, amiről írok és látják ezt a (hosszútávon) világpusztító tendenciát. Nekik köszönöm, hogy elgondolkodtak rajta annyira, hogy képesek reálisan látni, mintsem megvezetni magukat a marketinghadjárat vagy a piac álelőnyeinek látszata által.

További flémelés általánosságban

Melyik Linux disztribúcióban csalódtál eddig a legnagyobbat? [998703-tól].
További informatikus-szenvedésről pedig a blogomon.