(nettipäiväkirja 15.07.2012) En tajua, miksi moniajavien graafisten käyttöjärjestelmien käyttöliittymäsuunnittelu ei ota huomioon sitä, että koneen ollessa kuormittunut (tai netti- tai oheislaiteyhteyksien ollessa hitaita) ohjelman saama syötevirta ei edusta tarkalleen käyttäjän toimien aikasarjaa. Kun kone on ylikuormittunut, tapahtuu tyypillisesti kaksi asiaa:
Perinteinen muoto tästä ongelmasta on esim. se, että poistat jotain tekstiä pitämällä delete- tai backspace-näppäintä pohjassa. Sitten kone jumittaa, jona aikana kirjaimenpoistoja kertyy jonoon, josta ne sitten purkautuvat vielä paljon sen jälkeen, kun se teksti, jonka halusit poistaa, on jo hävinnyt maan kamaralta. Tuloksena tuhoutuu tekstiä, jonka olisit halunnut säästää.
Nämä ongelmat ovat taas pahentuneet, koska kosketusnäyttökäyttöliittymät ovat yleistyneet ja niissä on valtava määrä erilaisia eletoimintoja: sipaisuja, käännöksiä, pyyhkäisyjä, lyhyitä ja pitkiä napautuksia ja niin edelleen. Kun koneet (tai kännykät) ovat kuormittuneita, nämä eleet tulkitaan toisikseen, ne osuvat vääriin toimintoihin näytöllä, tai niitä on mahdotonta tehdä. Omaa Android-kännykkääni, jossa on kuviolukitus, on melkein mahdotonta saada auki ennen ajastimen aiheuttamaa näyttölukitusta, jos se on hidas ottamaan vastaan sormen vetämistä näyttöä pitkin.
Toki ongelma on ollut ihan tarpeeksi paha myös esim. hiirten kanssa, joilla turhautunut käyttäjä ehtii saada aikaan tolkuttoman määrän napautuksia, ennen kuin kone tokenee tokkurastaan ja alkaa enemmän tai vähemmän ahkerasti toimittaa niitä, enimmäkseen vääriin osoitteisiin. Kuinka monta kertaa olet sulkenut vahingossa kaksi ikkunaa tai välilehteä yhden sijaan, koska ensimmäinen on ollut hidas sulkeutumaan?
Tähän ongelmaan on oikeasti olemassa parempia ratkaisuja. Olennaisin on se, että kaikki tapahtumat (siis tiedot siitä, että käyttäjä on tehnyt jotain) aikaleimataan ja näihin aikaleimoihin oikeasti kiinnitetään huomiota asiakasohjelmissa. Ja mitä niiden aikaleimojen perusteella pitäisi tehdä?
Syy, miksi näin ei tehdä, on todennäköisesti se, että ohjelmoijat eivät tykkää kiinnittää huomiota vaikeasti tuotettaviin ja testattaviin erityistilanteisiin, koska ne tuottavat paljon ylimääräistä työtä ja hyöty on pienehkö (eikä vaikuta esim. tuotteen myyntiin). Lisäksi, koska periaatteessa kaikki nämä ongelmat pystyy korjaamaan lisäämällä koneiden suoritustehoa, on aika kova houkutus jättää ne vain huomiotta. Ongelma on vain se, että vaikka koneet olisivat kuinka tehokkaita, yksittäinen ohjelma pystyy edelleen kuormittamaan koko koneen.