[Image] Detske choroby i vitazstva softveroveho priemyslu Softverove dobrodruzstva Predstavte si, ze si kupujete auto a v kupno-predajnej zmluve sa skvie varovanie: Vyrobca neruci za skody, ktore automobil sposobi nevynutenou a neocakavanou zmenou smeru, rychlosti a orientacie jazdy. Po chvili lustenia zahadnej formulky pochopite, ze vase auto si niekedy moze robit, co sa mu zachce, a vy (pripadne pozostali) nemate u koho reklamovat skody, ktore tym sposobi. Asi by ste si rozmysleli, ci si kupite vyrobok, pred ktorym by vas vyrobca takto vystrihal. Lenze v pripade softveru nemate na vyber. Podobna vystraha je vzdy sucastou licencnych podmienok. Tato vystraha neodraza len specificku pravnu kulturu USA, odkial zhodou okolnosti pochadza takmer vsetok softver. Ma svoje hlboke priciny - technologicke, komercne a napokon i pravne. Vsetky dokazuju, ze toto vyrobne odvetvie je napriek rychlemu vyvoju stale nezrele. V tomto clanku sa bude casto spominat firma Microsoft. Nie preto, ze jej zakladatel je najbohatsi muz planety. Nie pre jej obrovsku trhovu hodnotu, ktora prevysuje hodnotu niekdajsich gigantov elektrotechnickeho a automobiloveho priemyslu. Nie pre jej rozpravkovy profit, vynimocny i v ramci tohto segmentu (prevysuje kumulativny zisk v poradi dalsich 500 softverovych firiem). Microsoft posluzi ako ilustracia minulosti, pritomnosti a - vo svetle sudnych procesov proti nemu - mozno i buducnosti softveroveho priemyslu. Daju sa na nom dokumentovat vsetky detske choroby, omyly a vitazstva, ktorymi toto odvetvie prechadzalo. Microsoft, na scenu! Vznik Microsoftu je spojeny so vstupom IBM na trh osobnych pocitacov. Zhodou okolnosti mala tato firma v sedemdesiatych rokoch v akademickych kruhoch podobnu povest, aku neskor ziskal Microsoft. IBM sa vycitalo, ze brani rozvoju novych myslienok, ktore nepochadzaju z jej dielne. Na trhu sa tazko uplatnovali mensi vyrobcovia s technicky pokrokovejsimi rieseniami, ak ich produkty (diskove jednotky, tlaciarne a podobne) neboli hardverovo [Image] kompatibilne s IBM. Prvy Gatesov operacny system pre klon pocitacov, ktore sa spociatku pre rozlisenie oznacovali ako IBM-kompatibilne, bol MS DOS. Ani v dobe uvedenia nepredstavoval technicky zazrak, skor naopak. Dlhe roky bol brzdou, ked spolu s grafickymi nadstavbami (prve verzie Windows) len horko-tazko imitoval konkurencne operacne systemy. Pomahala mu vsak nova obchodna strategia IBM, ktora otvorila trh viacerym vyrobcom. Nastal rychly rozvoj i znizovanie cien. Ale IBM na to skaredo doplatila. Iniciativu vo vyvoji zakladneho hardveru a softveru prebrali firmy Intel a Microsoft. Leitmotiv kompatibility sa vinie celym vyvojom klonu IBM pocitacov. Najprv sa pozadovala kompatibilita so softverom salovych pocitacov a najma kompatibilita hardveru s IBM standardom. Bola tu jasna obchodna motivacia, ale zaroven to prinieslo zavazne technologicke obmedzenie. Stopercentnu kompatibilitu, niekedy vagne formulovanu, sa navyse nikdy nepodarilo dosiahnut, co bolo jednym zo zdrojov chyb. Tazko si predstavit, ze by bola softverova firma ochotna prebrat na seba zodpovednost za svoje produkty, ak maju spolupracovat s (takmer kompatibilnym) hardverom od stoviek inych vyrobcov. Co nam to ten Bill zase nesie? Dalsi vyvoj nesmeroval ku skompatibilneniu hardveru, ale k takemu softveru, ktory by bol od hardveru nezavisly. Prvym krokom bolo posilnenie funkcii operacneho systemu. Ten oddeloval ostatny softver od hardveru, do jeho vylucnej kompetencie sa dostala obsluha perifernych zariadeni (monitor, klavesnica, mys, tlaciarne a podobne), ale zaroven oddeloval jednotlive aplikacie, takze chyba jednej aplikacie nemala vplyvat na ostatne. Nove graficke pouzivatelske rozhranie ulahcilo pracu novej kategorii pouzivatelov - laikom. To vsetko sa vsak odrazilo na zlozitosti. Napriklad zdrojovy kod noveho operacneho systemu Windows 2000, ktory sa bombasticky oznacuje ako najzlozitejsi inziniersky projekt vsetkych cias, obsahuje takmer 20 milionov riadkov a pracuje na nom 4 000 programatorov. Zvysenu zlozitost operacnych systemov vsak nevyvazuje poznatelne zjednodusenie ostatneho softveru. Porovnatelne aplikacie (napriklad textovy editor) maju az tisickrat vacsie naroky na pamat a vykon pocitacov nez ich predchodcovia z pociatku ery osobnych pocitacov. Pritom je diskutabilne, ci maju novsie verzie v zodpovedajucom pomere vacsiu pouzivatelsku hodnotu, hoci pracuju s neporovnatelne zlozitejsimi datami (obraz, zvuk). Tento trend by nikoho netrapil, keby zaroven vyriesil otazku spolahlivosti. Operacne systemy zjednodusuju zivot tvorcom aplikacneho softveru i hardverovych komponentov. Jedni mohli na hardver (skoro) zabudnut a druhym stacilo, aby vdychli zivot svojim vyrobkom tym, ze pre ne dodali systemovu podporu (takzvane radice). Stali sa klucom k spolahlivosti a vyvoju pocitacovej techniky. Preto ta pozornost firme Microsoft. Odvetvie ako kazde ine? Postupne sa meni i technika programovania. Zavadzaju sa prvky bezne v zrelych odvetviach priemyslu: standardizacia, prefabrikacia, normalizacia, automatizacia, delba prace v priestore i case. Ale nie bez problemov. Rychlo sa rozvijajuce a bohatnuce odvetvie neprijalo myslienku priemyselnych standardov pre operacne systemy ci programovacie jazyky (UNIX, C). A vlastne standardy nezavadzala len firma Microsoft - v oblasti programovacich jazykov pre internet nastastie zatial neuspesne. Komercne motivovana poziadavka spatnej kompatibility (znama i z inych priemyselnych odvetvi), cize schopnosti novsej verzie softveru pracovat so starsimi verziami softveru alebo hardveru, bola dlho privelkou technologickou brzdou. Na vyvoji jedneho softveroveho balika sa bezne podielaju stovky navrharov z niekolkych kontinentov. Casto len rozsiruju predchadzajuce verzie, vytvorene ludmi, ktori uz vo firme nepracuju. Napriek subezne vytvaranej dokumentacii su sucasne systemy natolko zlozite, ze je spravidla jednoduchsie pridavat k starym modulom nove, nez modifikovat stare, pri ktorych uz nikto nema cas ani silu spekulovat o primarnej funkcii, vyuzivani a vedlajsich ucinkoch. To, samozrejme, neprispieva k jednoduchosti ani spolahlivosti softveru. Mozne dosledky takejto technologie vidno na priklade explozie bezposadkovej rakety Ariane 5 v juni 1996. Vybuchla po styridsiatich sekundach letu. Tato nehoda sa obcas zlomyselne oznacuje ako najdrahsi ohnostroj v dejinach ludstva (vyvoj stal 6 miliard dolarov, viac ako vydavkova cast slovenskeho statneho rozpoctu). Exploziu sposobila drobna softverova chyba, neosetrena konverzia 64-bitovych cisel na 16-bitove. Vedelo sa o nej, ale realne hodnoty, s ktorymi program pracoval, boli v takych medziach, ze nemohli sposobit problemy. A ani nesposobili - pri lete rakety Ariane 4, pre ktoru bol program navrhnuty. Pouzil sa vsak i pre jej nasledovnicku, ktorej let mal planovanu inu pociatocnu trajektoriu. Aj to sa vedelo, ale zdalo sa, ze to neprekaza, kedze spominany program poskytoval relevantne udaje len do okamihu startu. Neosetrena konverzia vsak sposobila zmatok v inom module, ktory vychylil let rakety. Exploziu - samodestrukciu - spustil treti modul, ktory fungoval uplne spravne. Novy vyrobok, novy zakaznik Specificky je aj zakaznik softveru pre osobne pocitace. Pre mnohych ludi boli pocitace dlho takou zlozitou novinkou, ze vsetky ich zlyhania pripisovali sebe. Vacsinou to ostatne bola pravda. Oblubena rada zufalemu pouzivatelovi po hodinach beznadejnych pokusov, pri ktorych bezmala prisiel o vsetky data a programy, znela: RTFM! (Read The Fucking Manual!). Ak tato uzitocna rada nepomohla, bola tu dalsia: Reinstalujte, najlepsie hned vsetko. Ale ani to nemuselo pomoct. Nie je ziadnym tajomstvom, ze vacsie softverove baliky obsahuju radovo tisice chyb, ktore su vyrobcovi zname uz v case uvadzania na trh. Zakaznika to neovplyvni. Konkurencny vyrobok, ak vobec existuje, nie je o nic lepsi. Ak ma zakaznik smolu a narazi na niektoru z chyb, univerzalna rada vyrobcu znie: Pockajte si na novu verziu, pripadne si skuste nainstalovat 'zaplatu'. Predstavte si, ze by si podobnu kulturu osvojili vyrobcovia aut a predavali by vyrobky, o ktorych by vedeli, ze maju vela pomerne viditelnych vad. Pri reklamacii by vam potom odporucili svojpomocnu opravu s pripadnym doplatkom. Aj ked zakaznik na chybu nenarazi, nove verzie (ktore nahradzaju cast starych chyb novymi) su tym najlepsim prostriedkom na tahanie penazi od zakaznikov. Aj v tomto je Gates majster. Cas pre sudcu Jacksona 5. novembra 1999 vydal sudca Thomas Penfield Jackson 207-strankovy nalez v antitrastovom procese proti Microsoftu. Oznacil ho za monopol, ktory obmedzovanim konkurencie brzdi inovacie a poskodzuje zakaznikov. Tento vyrok sa nestal len pravdepodobne najcitovanejsim vyrokom v dejinach justicie, ale mozno aj vyrokom s najvacsim ekonomickym a technologickym dosahom pre najbohatsie priemyselne odvetvie. Nie je nahoda, ze taketo zavazne rozhodnutie prichadza v zavere zlatej ery klasickych osobnych pocitacov, ktore nove globalne informacne technologie degradovali len na jeden z prostriedkov komunikacie informacii. Klucovym sa stava vyvoj softveru pre servery (pocitace, ktore uskladnuju a spravuju data pre ine pocitace) a pre internetove aplikacie, cize oblasti, v ktorych Microsoft nema zdaleka take silne postavenie. Zdanlivo paradoxne prisiel sudny vyrok v case, ked sa nielen meni technologicka strategia Microsoftu, ale objavuju sa i realni konkurenti. Pripravovany uplne novy system Windows 2000 upusta od koncepcie spatnej kompatibility, naopak, v zaujme robustnosti a stability celeho systemu vobec neumozni nainstalovat nevyhovujuce starsie verzie programov. System ma byt vhodny aj pre servery, takze ma dosahovat i primerane vysoku spolahlivost (99,999 %). Novi konkurenti vsak predstavuju hrozbu. Ponukaju casto kvalitnejsie produkty lacnejsie alebo uplne zadarmo. Napriklad konkurencny Office, ale najma Linux ako alternativny operacny system. Ten uz v sucasnosti dosiahol 17-percentny podiel na trhu so servermi. Ironiou je, ze tento system, ktory vyvijaju stovky nadsencov po celom svete a ktory sa poskytuje bezplatne aj s celym zdrojovym kodom, moze v dosledku svojej komercnej zaujimavosti stratit jednu z hlavnych vyhod. Zatial totiz existuje len jeden Linux, nie desiatky komercnych nadstavieb, ktore si uz navzajom nerozumeju. Rozhodnutie sudcu Jacksona presne zapada aj do serie rozhodnuti americkej legislativy z devatdesiatych rokov, ktorymi sa aj za cenu obmedzenia majetkovych prav rusili prirodzene i neprirodzene monopoly v oblasti sirenia informacii (telekomunikacny zakon) a distribucie energii. V zaujme zakaznika a rychlejsich inovacii. Aj tieto rozhodnutia prisli v case, ked dotknute oblasti dosiahli taku uroven, ze zasah zvonku len pomoze ich dalsiemu rozvoju. A buducnost? Nalez sam neriesi osud Microsoftu. Existuje vsak niekolko navrhov rieseni. Rozdelenie spolocnosti na niekolko mensich (Baby Bills), ktore by sa venovali napriklad vyvoju jednotlivych hlavnych aplikacii Microsoftu (Windows, Office, Word a podobne), by nepomohlo. Klucom k monopolnemu postaveniu je totiz operacny system, pomocou ktoreho moze Gates najlahsie mavat s konkurenciou. Keby bol nuteny poskytovat rozne operacne systemy, pre zakaznika i odvetvie by to bolo este horsie. Rysuje sa vsak riesenie, ktore ide priamo k podstate problemu. Spociva v prinuteni Microsoftu, aby zverejnil uplnu specifikaciu systemu Windows (application program interface, API) a zrejme aby poskytol aj licenciu na zdrojovy kod. Firmy, ktore by ju ziskali, by si konkurovali stabilitou a cenou operacnych systemov. Pre zakaznika by bolo vyhodou, ze vsetky aplikacie by boli prenosne, kedze by v podstate islo o jeden operacny system. V istom zmysle by sa zabrzdil jeho rozvoj, lebo kazda modifikacia by podliehala konsenzu vlastnikov licencii. Navrh vsak predpoklada, ze odvetvie je na takom stupni rozvoja, ze by to nepredstavovalo zavazny problem. Vysledkom by mal byt taky pokrok vo vyvoji softveru, ze sa casom mozno dockame dalsieho sudneho vyroku. Ten by vyrobcom softveru zakazoval zbavovat sa zodpovednosti za skody, ktore sposobil ich produkt. Damas Gruska Autor (1962) je informatik. [Image] [Image][Image][Image]