Uroš Mesojedec: Veter sprememb

Uroš Mesojedec: Veter sprememb
Objavljeno: 31.10.2005 15:57 | Avtor: Uroš Mesojedec | Kategorija: Mnenja | Revija: Oktober 2005

Nove okoliščine in pridobljene izkušnje spreminjajo podobo računalništva, kot ga poznamo. Prava sprememba pa se lahko zgodi le prek zahtev uporabnikov.

Na teh straneh sem se že večkrat zamislil nad stanjem računalniške industrije. Nekakšna rdeča nit mojih razmišljanj je potreba po koreniti spremembi. Pri programju, ki je vse pomembnejši del računalništva, bodo potrebne najkorenitejše spremembe. Trdno sem prepričan, da bodo zahtevale poenostavitev postopkov, učinkovite mehanizme nadzora kakovosti ter vpletenost končnega uporabnika. In to ne le zgolj na ravni izražanja želja in ocenjevanja končnega izida, temveč trajno vpletenost v proces iskanja rešitve problema. S tem ko računalništvo postaja vse bolj storitveno usmerjeno, je jasno razumevanje procesov in možnost vplivanja na njihovo odvijanje ključnega pomena za učinkovito izrabo potenciala, ki ga ponuja avtomatska obdelava podatkov.

Spremembe so potrebne že v samih temeljih. Smeri razvoja strojne opreme omogočajo programerjem, da k reševanju problemov pristopijo na vedno višjih ravneh in s čedalje obsežnejšim naborom orodij. Bram Cohen, avtor priljubljenega pripomočka za razpečevanje datotek, BitTorrent, ki je v spletni skupnosti priznan za zelo dobrega razvijalca, je v svojem spletnem dnevniku nadobudnemu 15-letniku, ki si želi postati programer, svetoval nekako takole: "Če želiš reševati probleme, se nauči pythona, če pa te zanima, kako računalnik deluje in je reševanje problemov le postranskega pomena, se nauči C (nikar pa C++)." V njegovem stavku se skriva kar nekaj resnic. Velika večina programske opreme, ki se danes razvija, ni kritično odvisna od hitrosti delovanja. Najbolj vroče področje razvoja programske opreme, spletne storitve, so večinoma razvite v visokonivojskih, neredko kar skriptnih jezikih, podloženih z bogatimi knjižnicami. Učinkovito reševanje resničnih problemov v okolju programskega jezika, kot je C, pretirano izpostavlja specifičnosti delovanja elektronike. To je za sisteme v resničnem času, ki krmilijo pristajanje letala ali, če želite, za najsodobnejšo igro, ki naj osupne že tako razvajene igričarje, cena, ki jo moramo plačati. Za veliko večino drugih problemov pa pomeni zgolj nepotrebno zapletanje. Zmogljiva in elegantna orodja, ki silijo v učinkovito programiranje, so veliko bolj priporočljiva. Python je lahko tak jezik, čeprav jih je na voljo še nekaj, ki so mu po eleganci in zmogljivostih podobni, je pa zanimiv primer, ker s pogumno odločitvijo njegovega tvorca programerje sili v preprosto, vendar silno pomembno disciplino v kodiranju: pravilno zamikanje kode. Medtem ko je v večini programskih jezikov zamikanje zgolj dogovor, ki ga lahko vsak vpleteni programer prekrši, je v pythonu to obveza. Če vrstic v kodi ne zamikamo, se koda ne bo niti prevedla. So še rigoroznejši visokonivojski jeziki. Eiffel npr. sili v še eno nadvse pomembno prakso pri učinkovitem programiranju: pisanju ustreznih testov za preizkušanje pravilnosti delovanja. Funkcije v eifflu ne moremo niti napisati, če nismo pred tem določili pogojev, ki bodo jamčili za pravilnost njenega delovanja.

Izbira pravega orodja je prva odločitev, a višje v verigi tvorcev rešitve so načrtovalci ali, z bolj priljubljenim izrazom, arhitekti sistemov. Strinjati se moram z izjavo, da je prav dober načrt in ne morda umetniški izraz v kodiranju ("koda kot poezija") ključna značilnost, ki ločuje slabo rešitev od dobre. Načrt je osnova, ki zahteva svoj čas in najbolj daljnosežno vpliva na končno kakovost izdelka, nerealni časovni roki ali nerazumevanje problematike pa pogosto potisnejo iskanje ustreznega načrta v drugi plan, to pa neredko povzroči v temelju okvarjene izdelke. Ravno slabi načrti so najbolj pereč problem današnje programske industrije. In vendar je načrtovanje, če se ga lotimo z dolžno resnostjo in potrebnim časom, verjetno eden preprostejših problemov, s katerimi bomo soočeni v celotnem procesu izdelave rešitve. Tudi tu se stvari počasi postavljajo na pravo mesto. Dokumentiranje dobrih praks načrtovanja, priljubljeni vzorci ("patterns") so vse bolj priljubljen pristop k reševanju problema, ki nam omogočijo, da problem zgrabimo za roge. Težava je le, če je tako specifičen, da ga težko vstavimo v kalup katerega od preizkušenih vzorcev. Vendar je tudi tu najbolje slediti zdravi pameti. Težava računalniške industrije je tudi silen, mnogokrat neupravičen entuziazem nad novimi pobudami in pritisk uveljavljenih igralcev, ki uporabnike silijo v rabo slabih izdelkov, zakritih za večmilijonskimi reklamnimi kampanjami. Načrtovalec rešitve specifičnega problema tem pastem ne sme nasesti. Preprosto si mora problem ogledati z ustrezne razdalje, da lahko rešitev vidi tudi v novi, še neprehojeni poti, ki s tega gledišča postane povsem očitna.

Vse lepo in prav. Denimo, da so arhitekti ubrali pravo pot in našli najboljši načrt, razvijalci pa uporabljajo ustrezna orodja na pravilen način. Vendar se ne bo nič spremenilo, dokler bodo tudi naročniki razmišljali po uveljavljenih vzorcih, ki očitno ne dajejo preveč dobrih rezultatov. Ta ovira bo za resno spremembo v računalništvu najbrž najtežja, ker vključuje skoraj celoten "ekosistem" informacijske tehnologije. Vse preveč je povezanih prodajalcev megle in predobro plačanih šefov, ki jim sedanje stanje popolnoma odgovarja. Veter sprememb je na srečo zavel tudi v teh logih. Še nedavno so bili informatiki varni v svojih slonokoščenih stolpih. Tako ali tako jih ni nihče razumel in so lahko našli izgovor za vsako polomijo. Tudi denar ni bil vprašanje, dober IT mora biti tudi drag, ni pa nujno, da zmeraj deluje. Vendar je velik interes najmogočnejših igralcev, da računalništvo ponudijo kot storitev s predvidljivo ceno in - kar je še pomembneje - z zagotovljeno kakovostjo, hud pritisk in znatno omejuje nabor izgovorov, ki jim bo uprava še naprej verjela. Po drugi stani pritiska prosta koda, ki še nedavno najdražje izdelke, ki so temelj najbolj kritičnih računalniških sistemov, izziva z najnižjo od vseh možnih cen.

In tu se krog nekako sklene. Dokler bo računalništvo in celotna informacijska tehnologija še vedno velika neznanka, razumljiva in obvladljiva le peščici izbrancev, bodo prevladovale tudi zmote v njeni rabi in neverjetne nagrade za srečneže, ki jim uspeva zablode informatike obračati sebi v prid. Moč, dana končnemu uporabniku, je cilj, ki žal ni v interesu najmogočnejših igralcev, vendar je zanesljivo sredstvo za dokončno preobrazbo industrije v zanesljivo in učinkovito storitev, ki jo bomo z veseljem uporabljali, morda celo brezplačno. No, saj kakšno od teh že najdemo v spletu, mar ne?

Moč, dana končnemu uporabniku, je cilj, ki žal ni v interesu najmogočnejših igralcev, vendar je zanesljivo sredstvo za dokončno preobrazbo industrije.

Naroči se na redna tedenska ali mesečna obvestila o novih prispevkih na naši spletni strani!
Prijava

ph

Komentirajo lahko le prijavljeni uporabniki