Zivjo!

Ce smem malce pofilozofirati :-).

Se iz casov svojega dela pod OS/2 sem se naucila nekaj
kar je bilo jasno vsem kolikor toliko dobrim programerjem/2:

Aplikacija, ki uporablja graficni uporabniski vmesnik naj bo vecnitna.
Glavna nit naj skrbi za odziv uporabniku (user interface) ostale pa se
naj ukvarjajo s konkretnimi opravili.

Zakaj ?
Zato ker je uporabnik real-time proces, ki zahteva kratek (0.5 s)
odzivni cas, ce pa odzivni cas ne more biti kratek mora pa aplikacija
obvescati uporabnika koliko se manjka do dokoncanja opravila.

In kako to izvedes ? Z nitmi. 
Seveda obstajajo tudi select(), poll() in ostali el-cheapo
nadomestki, ki se uporabljajo ponavadi namesto niti predvsem za to,
ker je delo z nitmi pod unixi t'prava bolecina v riti. To so orodja, ki
sluzijo svojemu namenu in ne morejo nadomestiti niti, prav tako kot
niti ne morejo nadomestiti teh orodij (govorim seveda za vsak mozen
primer).

Se morda kdo vprasa zakaj netscape zmrzne ker se matra z resolvanjem
neke neobstojece domene ? Zakaj najljubsi brskalnik po novicarskih 
skupinah zmrzne med tem ko vlece dol nov seznam vseh skupin ?
Zaradi tega ker njihovi programerji se niso odkrili tople
vode^H^H^H^H^H^H^H^H^H^H dela z nitmi.

Delo z nitmi pod unixi se posebej Linuxom (zaradi mnozice hroscev,
neoptimiziranosti, nerekurzivnosti klicev) je res eno mesanje toplega
sranja; vendar je to "The Right Thing (tm)". 
Ce ne uporabljas niti pri svojih X aplikacijah po vsej verjetnosti 
izdelujes drugorazredno programje, kjer uporabnik sluzi racunalniku in
ga le-ta oskrbuje s podatki na njegovo zahtevo namesto vice-verse, da
racunalnik sluzi uporabnikovim zahtevam in zeljno ter pripravljeno caka
na nove vnose namesto da mu rece: "Buzz off... I'm busy; you sit and
watch this sand-clock cursor until I find a few CPU clocks to spare for
you".

Dovolj modrovanj h katerim me je spodbodla debata o Davidovih nitih,
pa lepe praznike in srecno vecnitno novo leto! ;-).

-- 
best regards,
Rok Papez.

Reply via email to